[EflSharp] Update Circle and efl cs files (#896)
authorjaehyun0cho <jaehyun0cho@gmail.com>
Fri, 21 Jun 2019 06:26:02 +0000 (15:26 +0900)
committerJay Cho <chojoong@gmail.com>
Fri, 21 Jun 2019 06:26:02 +0000 (15:26 +0900)
Circle and efl cs files are updated based on the latest efl.
Efl.Ui.ActiveView has been introduced.
Efl.Ui.Pager has been replaced with Efl.Ui.ActiveView.Container.

356 files changed:
internals/src/EflSharp/EflSharp/Circle/CircleSlider.cs
internals/src/EflSharp/EflSharp/Circle/Interop.Eext.RotarySelector.cs
internals/src/EflSharp/EflSharp/Circle/MoreOption.cs
internals/src/EflSharp/EflSharp/Circle/RotarySelector.cs
internals/src/EflSharp/EflSharp/Circle/RotarySelectorItem.cs [changed mode: 0644->0755]
internals/src/EflSharp/EflSharp/efl/EoWrapper.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/WrapperSupervisor.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/edje_types.eot.cs
internals/src/EflSharp/EflSharp/efl/efl_accelerate_interpolator.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_access_action.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_access_component.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_access_editable_text.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_access_object.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_access_selection.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_access_text.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_access_value.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_access_widget_action.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_access_window.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_all.cs
internals/src/EflSharp/EflSharp/efl/efl_app.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_appthread.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_boolean_model.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_bounce_interpolator.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_cached_item.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_animation.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_animation_alpha.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_animation_group.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_animation_group_parallel.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_animation_group_sequential.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_animation_player.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_animation_rotate.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_animation_scale.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_animation_translate.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_animation_types.eot.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_event_grabber.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_filter_internal.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_double_tap.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_flick.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_long_tap.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_manager.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_momentum.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_double_tap.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_flick.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_long_tap.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_momentum.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_tap.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_triple_tap.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_zoom.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_tap.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_touch.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_triple_tap.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_types.eot.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_zoom.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_group.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_image.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_image_internal.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_layout.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_layout_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_layout_part_box.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_layout_part_external.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_layout_part_swallow.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_layout_part_table.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_layout_part_text.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_object.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_pointer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_polygon.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_proxy.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_rectangle.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_scene.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_snapshot.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_surface.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_surface_tbm.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_surface_wayland.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_surface_x11.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_text.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_text_factory.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_vg_container.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_vg_gradient.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_vg_gradient_linear.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_vg_gradient_radial.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_vg_node.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_canvas_vg_object.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_canvas_vg_shape.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_class.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_composite_model.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_config.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_config_global.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_container.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_container_model.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_content.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_control.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_core_command_line.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_core_env.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_core_proc_env.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_csharp_application.cs
internals/src/EflSharp/EflSharp/efl/efl_cubic_bezier_interpolator.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_decelerate_interpolator.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_divisor_interpolator.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_duplicate.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_exe.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_file.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_file_save.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_filter_model.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_generic_model.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gesture_events.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_gfx_arrangement.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_gfx_blur.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_buffer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_color.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_color_class.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_entity.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_fill.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_filter.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_frame_controller.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_gradient.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_gradient_linear.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_gradient_radial.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_hint.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_image.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_image_load_controller.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_image_orientable.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_gfx_mapping.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_path.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_shape.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_size_class.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_stack.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_text_class.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_types.eot.cs
internals/src/EflSharp/EflSharp/efl/efl_gfx_view.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_input_device.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_input_event.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_input_focus.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_input_hold.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_input_interface.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_input_key.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_input_pointer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_input_state.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_interpolator.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_io_buffer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_io_closer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_io_positioner.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_io_queue.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_io_reader.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_io_sizer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_io_writer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_layout_calc.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_layout_group.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_layout_signal.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_linear_interpolator.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_loop.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_loop_consumer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_loop_fd.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_loop_handler.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_loop_message.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_loop_message_future.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_loop_message_future_handler.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_loop_message_handler.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_loop_model.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_loop_timer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_model.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_object.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_observable.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_observer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_orientation.eo.cs [deleted file]
internals/src/EflSharp/EflSharp/efl/efl_pack.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_pack_layout.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_pack_linear.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_pack_table.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_page_indicator.eo.cs [deleted file]
internals/src/EflSharp/EflSharp/efl/efl_page_transition.eo.cs [deleted file]
internals/src/EflSharp/EflSharp/efl/efl_page_transition_scroll.eo.cs [deleted file]
internals/src/EflSharp/EflSharp/efl/efl_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_playable.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_player.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_screen.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_select_model.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_sinusoidal_interpolator.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_spring_interpolator.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_task.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text_annotate.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text_cursor.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text_font.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text_format.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text_interactive.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text_markup.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text_markup_interactive.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text_markup_util.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text_style.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_text_types.eot.cs
internals/src/EflSharp/EflSharp/efl/efl_thread.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_threadio.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_types.eot.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_container.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_indicator.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_indicator_icon.eo.cs [moved from internals/src/EflSharp/EflSharp/efl/efl_page_indicator_icon.eo.cs with 59% similarity]
internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager_plain.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager_scroll.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager_stack.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_ui_alert_popup.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_alert_popup_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_anchor_popup.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_autorepeat.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_bg.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_box.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_box_flow.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_box_stack.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_button.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_button_legacy_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_caching_factory.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_calendar.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_calendar_item.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_check.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_check_legacy_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_clickable.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_clickable_util.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_ui_clock.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_datepicker.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_direction.eo.cs [deleted file]
internals/src/EflSharp/EflSharp/efl/efl_ui_direction_readonly.eo.cs [deleted file]
internals/src/EflSharp/EflSharp/efl/efl_ui_dnd.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_dnd_container.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_dnd_types.eot.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_drag.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_draggable.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_factory.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_factory_bind.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_flip.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_flip_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_focus_composition.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_focus_layer.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_focus_manager.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_focus_manager_calc.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_focus_manager_root_focus.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_focus_manager_sub.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_focus_manager_window_root.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_focus_object.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_focus_util.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_format.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_frame.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_grid.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_grid_default_item.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_grid_default_item_part_icon.eo.cs [deleted file]
internals/src/EflSharp/EflSharp/efl/efl_ui_grid_item.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_i18n.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_image.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_image_factory.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_image_zoomable.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_image_zoomable_pan.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_item.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_item_part_content.eo.cs [moved from internals/src/EflSharp/EflSharp/efl/efl_ui_list_default_item_part_end.eo.cs with 78% similarity]
internals/src/EflSharp/EflSharp/efl/efl_ui_item_part_extra.eo.cs [moved from internals/src/EflSharp/EflSharp/efl/efl_ui_grid_default_item_part_end.eo.cs with 78% similarity]
internals/src/EflSharp/EflSharp/efl/efl_ui_item_part_icon.eo.cs [moved from internals/src/EflSharp/EflSharp/efl/efl_ui_list_default_item_part_icon.eo.cs with 78% similarity]
internals/src/EflSharp/EflSharp/efl/efl_ui_item_part_text.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_ui_l10n.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_layout.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_base.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_factory.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_orientable.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_orientable_readonly.eo.cs [new file with mode: 0644]
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_part_bg.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_part_box.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_part_content.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_part_legacy.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_part_table.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_layout_part_text.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_legacy.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_list.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_list_default_item.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_list_item.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_list_placeholder_item.eo.cs [moved from internals/src/EflSharp/EflSharp/efl/efl_ui_list_empty_item.eo.cs with 80% similarity]
internals/src/EflSharp/EflSharp/efl/efl_ui_list_view.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_list_view_model.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_list_view_pan.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_list_view_types.eot.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_multi_selectable.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_navigation_bar.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_navigation_bar_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_navigation_bar_part_back_button.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_navigation_layout.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_nstate.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_pager.eo.cs [deleted file]
internals/src/EflSharp/EflSharp/efl/efl_ui_pan.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_panel.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_panes.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_panes_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_popup.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_popup_part_backwall.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_progressbar.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_progressbar_legacy_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_progressbar_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_property_bind.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_radio.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_radio_legacy_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_range_display.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_range_interactive.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_relative_layout.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_scroll_alert_popup.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_scroll_alert_popup_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_scroll_manager.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_scrollable.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_scrollable_interactive.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_scrollbar.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_scroller.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_selectable.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_selection.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_selection_types.eot.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_slider.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_slider_interval.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_spin.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_spin_button.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_stack.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_tab_bar.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_tab_page.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_tab_page_part_tab.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_tab_pager.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_table.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_table_static.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_tags.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_text.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_text_alert_popup.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_text_alert_popup_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_text_async.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_text_editable.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_text_factory_emoticons.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_text_factory_fallback.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_text_factory_images.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_text_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_textpath.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_textpath_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_theme.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_timepicker.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_video.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_view.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_widget.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_widget_factory.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_widget_focus_manager.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_widget_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_widget_part_bg.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_widget_part_shadow.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_win.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_win_inlined.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_win_part.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_win_socket.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_ui_zoom.eo.cs
internals/src/EflSharp/EflSharp/efl/efl_view_model.eo.cs
internals/src/EflSharp/EflSharp/efl/eina_container_common.cs
internals/src/EflSharp/EflSharp/efl/eina_types.eot.cs
internals/src/EflSharp/EflSharp/efl/elm_general.eot.cs
internals/src/EflSharp/EflSharp/efl/elm_interface_scrollable.eo.cs
internals/src/EflSharp/EflSharp/efl/iwrapper.cs
internals/src/EflSharp/EflSharp/efl/workaround.cs

index 58e6cd8..2433c88 100755 (executable)
@@ -87,7 +87,7 @@ namespace Efl
                 /// Changed will be triggered when the circle slider value changes.
                 /// </summary>
                 /// <since_tizen> 6 </since_tizen>
-                public event EventHandler Changed;
+                public event EventHandler ChangedEvt;
                 const string ChangedEventName = "value,changed";
                 private Interop.Evas.SmartCallback smartChanged;
 
@@ -117,7 +117,7 @@ namespace Efl
 
                     smartChanged = new Interop.Evas.SmartCallback((d, o, e) =>
                     {
-                        Changed?.Invoke(this, EventArgs.Empty);
+                        ChangedEvt?.Invoke(this, EventArgs.Empty);
                     });
 
                     Interop.Evas.evas_object_smart_callback_add(_handle, ChangedEventName, smartChanged, IntPtr.Zero);
index bff9cc9..90ffbb6 100755 (executable)
@@ -53,5 +53,11 @@ internal static partial class Interop
         internal static extern void eext_rotary_selector_add_item_enabled_set(IntPtr obj, bool enabled);
         [DllImport(efl.Libs.Eext)]
         internal static extern bool eext_rotary_selector_add_item_enabled_get(IntPtr obj);
+        [DllImport(efl.Libs.Eext)]
+        internal static extern void eext_rotary_selector_item_delete_enabled_set(IntPtr item, bool enabled);
+        [DllImport(efl.Libs.Eext)]
+        internal static extern bool eext_rotary_selector_item_delete_enabled_get(IntPtr item);
+        [DllImport(efl.Libs.Eext)]
+        internal static extern IntPtr eext_rotary_selector_items_get(IntPtr item);
     }
 }
\ No newline at end of file
index 3d2dbc5..f789c78 100755 (executable)
@@ -32,13 +32,13 @@ namespace Efl
                 /// Clicked will be triggered when the user selects the already selected item again or selects a selector.
                 /// </summary>
                 /// <since_tizen> 6 </since_tizen>
-                public event EventHandler<MoreOptionItemEventArgs> Clicked;
+                public event EventHandler<MoreOptionItemEventArgs> ClickedEvt;
 
                 /// <summary>
                 /// Selected will be triggered when the user selects an item.
                 /// </summary>
                 /// <since_tizen> 6 </since_tizen>
-                public event EventHandler<MoreOptionItemEventArgs> Selected;
+                public event EventHandler<MoreOptionItemEventArgs> SelectedEvt;
 
                 private Interop.Evas.SmartCallback smartClicked;
                 private Interop.Evas.SmartCallback smartSelected;
@@ -54,14 +54,14 @@ namespace Efl
                     {
                         MoreOptionItem clickedItem = FindItemByNativeHandle(e);
                         if (clickedItem != null)
-                            Clicked?.Invoke(this, new MoreOptionItemEventArgs { item = clickedItem });
+                            ClickedEvt?.Invoke(this, new MoreOptionItemEventArgs { item = clickedItem });
                     });
 
                     smartSelected = new Interop.Evas.SmartCallback((d, o, e) =>
                     {
                         MoreOptionItem selectedItem = FindItemByNativeHandle(e);
                         if (selectedItem != null)
-                            Selected?.Invoke(this, new MoreOptionItemEventArgs { item = selectedItem });
+                            SelectedEvt?.Invoke(this, new MoreOptionItemEventArgs { item = selectedItem });
                     });
 
                     Interop.Evas.evas_object_smart_callback_add(this.NativeHandle, ItemClickedEventName, smartClicked, IntPtr.Zero);
index d766af0..defa456 100755 (executable)
@@ -19,6 +19,18 @@ namespace Efl
             }
 
             /// <summary>
+            /// The event argument of Rotary Selector Reorder.
+            /// </summary>
+            /// <since_tizen> 6 </since_tizen>
+            public class RotarySelectorItemReorderedEventArgs : RotarySelectorItemEventArgs
+            {
+                public int NewIndex { get; internal set; }
+
+                public int OldIndex { get; internal set; }
+            }
+
+
+            /// <summary>
             /// The RotarySelector is a widget to display a selector and multiple items surrounding the selector.
             /// An item can be selected by the Rotary event or user item click.
             /// </summary>
@@ -31,6 +43,8 @@ namespace Efl
 
                 const string ItemSelectedEventName = "item,selected";
                 const string ItemClickedEventName = "item,clicked";
+                const string ItemDeletedEventName = "item,deleted";
+                const string ItemReorderedEventName = "item,reordered";
 
                 Image _normalBgImage;
 
@@ -40,16 +54,30 @@ namespace Efl
                 /// Clicked will be triggered when selecting again the already selected item or selecting a selector.
                 /// </summary>
                 /// <since_tizen> 6 </since_tizen>
-                public event EventHandler<RotarySelectorItemEventArgs> Clicked;
+                public event EventHandler<RotarySelectorItemEventArgs> ClickedEvt;
 
                 /// <summary>
                 /// Selected will be triggered when selecting an item.
                 /// </summary>
                 /// <since_tizen> 6 </since_tizen>
-                public event EventHandler<RotarySelectorItemEventArgs> Selected;
+                public event EventHandler<RotarySelectorItemEventArgs> SelectedEvt;
+
+                /// <summary>
+                /// Triggered when the user deleted the item
+                /// </summary>
+                /// <since_tizen> 6 </since_tizen>
+                public event EventHandler<RotarySelectorItemEventArgs> Deleted;
+
+                /// <summary>
+                /// Triggered when the user reordered the item
+                /// </summary>
+                /// <since_tizen> 6 </since_tizen>
+                public event EventHandler<RotarySelectorItemReorderedEventArgs> Reordered;
 
                 private Interop.Evas.SmartCallback smartClicked;
                 private Interop.Evas.SmartCallback smartSelected;
+                private Interop.Evas.SmartCallback smartDeleted;
+                private Interop.Evas.SmartCallback smartReordered;
 
                 /// <summary>
                 /// Creates and initializes a new instance of the RotarySelector class.
@@ -62,18 +90,45 @@ namespace Efl
                     {
                         RotarySelectorItem clickedItem = FindItemByNativeHandle(e);
                         if (clickedItem != null)
-                            Clicked?.Invoke(this, new RotarySelectorItemEventArgs { item = clickedItem});
+                            ClickedEvt?.Invoke(this, new RotarySelectorItemEventArgs { item = clickedItem});
                     });
 
                     smartSelected = new Interop.Evas.SmartCallback((d, o, e) =>
                     {
                         RotarySelectorItem selectedItem = FindItemByNativeHandle(e);
                         if (selectedItem != null)
-                            Selected.Invoke(this, new RotarySelectorItemEventArgs { item = selectedItem });
+                            SelectedEvt?.Invoke(this, new RotarySelectorItemEventArgs { item = selectedItem });
+                    });
+
+                    smartDeleted = new Interop.Evas.SmartCallback((d, o, e) =>
+                    {
+                        RotarySelectorItem deletedItem = FindItemByNativeHandle(e);
+                        if (deletedItem != null)
+                            Deleted?.Invoke(this, new RotarySelectorItemEventArgs { item = deletedItem });
+                        Items.Remove(deletedItem);
+                    });
+
+                    smartReordered = new Interop.Evas.SmartCallback((d, o, e) =>
+                    {
+                        var items_list = Interop.Eext.eext_rotary_selector_items_get(this.NativeHandle);
+                        int idx = Eina.ListNativeFunctions.eina_list_data_idx(items_list, e);
+                        RotarySelectorItem reorderedItem = FindItemByNativeHandle(e);
+                        if (reorderedItem != null)
+                            Reordered?.Invoke(this, new RotarySelectorItemReorderedEventArgs
+                            { item = reorderedItem, OldIndex = Items.IndexOf(reorderedItem), NewIndex = idx });
+                        UpdateListOrder(reorderedItem, idx);
                     });
 
                     Interop.Evas.evas_object_smart_callback_add(this.NativeHandle, ItemClickedEventName, smartClicked, IntPtr.Zero);
                     Interop.Evas.evas_object_smart_callback_add(this.NativeHandle, ItemSelectedEventName, smartSelected, IntPtr.Zero);
+                    Interop.Evas.evas_object_smart_callback_add(this.NativeHandle, ItemDeletedEventName, smartDeleted, IntPtr.Zero);
+                    Interop.Evas.evas_object_smart_callback_add(this.NativeHandle, ItemReorderedEventName, smartReordered, IntPtr.Zero);
+                }
+
+                private void UpdateListOrder(RotarySelectorItem reorderedItem, int currentIdx)
+                {
+                    Items.Remove(reorderedItem);
+                    Items.Insert(currentIdx, reorderedItem);
                 }
 
                 private RotarySelectorItem FindItemByNativeHandle(IntPtr handle)
old mode 100644 (file)
new mode 100755 (executable)
index 53aef97..21baeef
@@ -219,6 +219,19 @@ namespace Efl
                 }
 
                 /// <summary>
+                /// Sets or gets whether the item can be deleted in the edit mode or not.
+                /// </summary>
+                /// <since_tizen> 6 </since_tizen>
+                public bool IsRemovable
+                {
+                    get { return Interop.Eext.eext_rotary_selector_item_delete_enabled_get(NativeHandle); }
+                    set
+                    {
+                        Interop.Eext.eext_rotary_selector_item_delete_enabled_set(NativeHandle, value);
+                    }
+                }
+
+                /// <summary>
                 /// Sets or gets the normal icon image.
                 /// </summary>
                 /// <since_tizen> 6 </since_tizen>
diff --git a/internals/src/EflSharp/EflSharp/efl/EoWrapper.cs b/internals/src/EflSharp/EflSharp/efl/EoWrapper.cs
new file mode 100644 (file)
index 0000000..b6ea619
--- /dev/null
@@ -0,0 +1,253 @@
+using System;
+using System.Runtime.InteropServices;
+using System.Runtime.CompilerServices;
+using System.Threading;
+
+namespace Efl
+{
+
+namespace Eo
+{
+
+public abstract class EoWrapper : IWrapper, IDisposable
+{
+    protected readonly object eventLock = new object();
+    protected bool inherited = false;
+    protected System.IntPtr handle = IntPtr.Zero;
+
+    private static Efl.EventCb ownershipUniqueDelegate = new Efl.EventCb(OwnershipUniqueCallback);
+    private static Efl.EventCb ownershipSharedDelegate = new Efl.EventCb(OwnershipSharedCallback);
+
+    /// <summary>Initializes a new instance of the <see cref="Object"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected EoWrapper(System.IntPtr raw)
+    {
+        handle = raw;
+        AddWrapperSupervisor();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="Object"/> class.
+    /// Internal usage: Constructor to actually call the native library constructors. C# subclasses
+    /// must use the public constructor only.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    /// <param name="file">Name of the file from where the constructor is called.</param>
+    /// <param name="line">Number of the line from where the constructor is called.</param>
+    protected EoWrapper(IntPtr baseKlass, System.Type managedType, Efl.Object parent,
+                        [CallerFilePath] string file = null,
+                        [CallerLineNumber] int line = 0)
+    {
+        inherited = ((object)this).GetType() != managedType;
+        IntPtr actual_klass = baseKlass;
+        if (inherited)
+        {
+            actual_klass = Efl.Eo.ClassRegister.GetInheritKlassOrRegister(baseKlass, ((object)this).GetType());
+        }
+
+        // Creation of the unfinalized Eo handle
+        Eina.Log.Debug($"Instantiating from klass 0x{actual_klass.ToInt64():x}");
+        System.IntPtr parent_ptr = System.IntPtr.Zero;
+        if (parent != null)
+        {
+            parent_ptr = parent.NativeHandle;
+        }
+
+        handle = Efl.Eo.Globals._efl_add_internal_start(file, line, actual_klass, parent_ptr, 1, 0);
+        if (handle == System.IntPtr.Zero)
+        {
+            throw new Exception("Instantiation failed");
+        }
+
+        Eina.Log.Debug($"Eo instance right after internal_start 0x{handle.ToInt64():x} with refcount {Efl.Eo.Globals.efl_ref_count(handle)}");
+        Eina.Log.Debug($"Parent was 0x{parent_ptr.ToInt64()}");
+
+        // Creation of wrapper supervisor
+        AddWrapperSupervisor();
+    }
+
+    /// <summary>Destructor.</summary>
+    ~EoWrapper()
+    {
+        Dispose(false);
+    }
+
+    /// <summary>Pointer to the native instance.</summary>
+    public System.IntPtr NativeHandle
+    {
+        get { return handle; }
+    }
+
+    /// <summary>Pointer to the native class description.</summary>
+    public abstract System.IntPtr NativeClass
+    {
+        get;
+    }
+
+    /// <summary>Releases the underlying native instance.</summary>
+    protected virtual void Dispose(bool disposing)
+    {
+        if (disposing && handle != System.IntPtr.Zero)
+        {
+            IntPtr h = handle;
+            handle = IntPtr.Zero;
+            Efl.Eo.Globals.efl_mono_native_dispose(h);
+        }
+        else
+        {
+            Monitor.Enter(Efl.All.InitLock);
+            if (Efl.All.MainLoopInitialized)
+            {
+                Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(handle);
+            }
+
+            Monitor.Exit(Efl.All.InitLock);
+        }
+    }
+
+    /// <summary>Turns the native pointer into a string representation.</summary>
+    /// <returns>A string with the type and the native pointer for this object.</returns>
+    public override String ToString()
+    {
+        return $"{this.GetType().Name}@[0x{(UInt64)handle:x}]";
+    }
+
+    /// <summary>Releases the underlying native instance.</summary>
+    public void Dispose()
+    {
+        Dispose(true);
+        GC.SuppressFinalize(this);
+    }
+
+    /// <summary>Releases the underlying Eo object.
+    ///
+    /// This method is a C# counterpart to the C `efl_del` function. It removes the parent of the object
+    /// and releases the Eo reference it was holding.
+    /// </summary>
+    public void Del()
+    {
+        // FIXME Implement this
+        ((Efl.Object)this).SetParent(null);
+        Dispose();
+    }
+
+    /// <summary>Finishes instantiating this object.
+    /// Internal usage by generated code.</summary>
+    protected void FinishInstantiation()
+    {
+        Eina.Log.Debug("calling efl_add_internal_end");
+        var h = Efl.Eo.Globals._efl_add_end(handle, 1, 0);
+        Eina.Log.Debug($"efl_add_end returned eo 0x{handle.ToInt64():x}");
+
+        // if (h == IntPtr.Zero) // TODO
+        // {
+        // }
+
+        handle = h;
+    }
+
+    /// <summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
+    /// <param name="lib">The name of the native library definining the event.</param>
+    /// <param name="key">The name of the native event.</param>
+    /// <param name="evtCaller">Delegate to be called by native code on event raising.</param>
+    /// <param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
+    protected void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
+    {
+        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        var wsPtr = Efl.Eo.Globals.efl_mono_wrapper_supervisor_get(handle);
+        var ws = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(wsPtr);
+        if (ws.EoEvents.ContainsKey((desc, evtDelegate)))
+        {
+            Eina.Log.Warning($"Event proxy for event {key} already registered!");
+            return;
+        }
+
+        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
+        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, wsPtr))
+        {
+            Eina.Log.Error($"Failed to add event proxy for event {key}");
+            return;
+        }
+
+        ws.EoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
+        Eina.Error.RaiseIfUnhandledException();
+    }
+
+    /// <summary>Removes the given event handler for the given event. For internal use only.</summary>
+    /// <param name="lib">The name of the native library definining the event.</param>
+    /// <param name="key">The name of the native event.</param>
+    /// <param name="evtDelegate">The delegate to be removed.</param>
+    protected void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
+    {
+        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        var wsPtr = Efl.Eo.Globals.efl_mono_wrapper_supervisor_get(handle);
+        var ws = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(wsPtr);
+        var evtPair = (desc, evtDelegate);
+        if (ws.EoEvents.TryGetValue(evtPair, out var caller))
+        {
+            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, wsPtr))
+            {
+                Eina.Log.Error($"Failed to remove event proxy for event {key}");
+                return;
+            }
+
+            ws.EoEvents.Remove(evtPair);
+            Eina.Error.RaiseIfUnhandledException();
+        }
+        else
+        {
+            Eina.Log.Error($"Trying to remove proxy for event {key} when it is not registered.");
+        }
+    }
+
+    private static void OwnershipUniqueCallback(IntPtr data, ref Efl.Event.NativeStruct evt)
+    {
+        var ws = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data);
+        ws.MakeUnique();
+    }
+
+    private static void OwnershipSharedCallback(IntPtr data, ref Efl.Event.NativeStruct evt)
+    {
+        var ws = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data);
+        ws.MakeShared();
+    }
+
+    /// <sumary>Create and set to the internal native state a C# supervisor for this Eo wrapper. For internal use only.</sumary>
+    private void AddWrapperSupervisor()
+    {
+        var ws = new Efl.Eo.WrapperSupervisor(this);
+        Efl.Eo.Globals.SetWrapperSupervisor(handle, ws);
+        if (Efl.Eo.Globals.efl_ref_count(handle) > 1)
+        {
+            ws.MakeShared();
+        }
+
+        AddOwnershipEventHandlers();
+    }
+
+    /// <summary>Register handlers to ownership events, in order to control the object lifetime. For internal use only.</summary>
+    private void AddOwnershipEventHandlers()
+    {
+        AddNativeEventHandler("eo", "_EFL_EVENT_INVALIDATE", ownershipUniqueDelegate, ownershipUniqueDelegate);
+        AddNativeEventHandler("eo", "_EFL_EVENT_OWNERSHIP_UNIQUE", ownershipUniqueDelegate, ownershipUniqueDelegate);
+        AddNativeEventHandler("eo", "_EFL_EVENT_OWNERSHIP_SHARED", ownershipSharedDelegate, ownershipSharedDelegate);
+        Eina.Error.RaiseIfUnhandledException();
+    }
+}
+
+} // namespace Global
+
+} // namespace Efl
diff --git a/internals/src/EflSharp/EflSharp/efl/WrapperSupervisor.cs b/internals/src/EflSharp/EflSharp/efl/WrapperSupervisor.cs
new file mode 100644 (file)
index 0000000..21ef052
--- /dev/null
@@ -0,0 +1,64 @@
+using System;
+using EventDictionary = System.Collections.Generic.Dictionary<(System.IntPtr desc, object evtDelegate), (System.IntPtr evtCallerPtr, Efl.EventCb evtCaller)>;
+
+namespace Efl
+{
+
+namespace Eo
+{
+
+/// <summary>Observe the ownership state  of an Eo wrapper and control its life-cycle.</summary>
+public class WrapperSupervisor
+{
+    private System.WeakReference weakRef;
+#pragma warning disable CS0414
+    private Efl.Eo.IWrapper sharedRef;
+#pragma warning restore CS0414
+    private EventDictionary eoEvents;
+
+    /// <summary>Create a new supervisor for the given.</summary>
+    /// <param name="obj">Efl object to be supervised.</param>
+    public WrapperSupervisor(Efl.Eo.IWrapper obj)
+    {
+        weakRef = new WeakReference(obj);
+        sharedRef = null;
+        eoEvents = new EventDictionary();
+    }
+
+    /// <summary>Efl object being supervised.</summary>
+    public Efl.Eo.IWrapper Target
+    {
+        get
+        {
+            return (Efl.Eo.IWrapper) weakRef.Target;
+        }
+    }
+
+    /// <summary>Dictionary that holds the events related with the supervised object.</summary>
+    public EventDictionary EoEvents
+    {
+        get
+        {
+            return eoEvents;
+        }
+    }
+
+    /// <summary>To be called when the object is uniquely owned by C#, removing its strong reference and making it available to garbage collection.</summary>
+    public void MakeUnique()
+    {
+        sharedRef = null;
+    }
+
+    /// <summary>To be called when the object is owned in the native library too, adding a strong reference to it and making it unavailable for garbage collection.</summary>
+    public void MakeShared()
+    {
+        if (this.Target == null)
+            throw new InvalidOperationException("Tried to make a null reference shared.");
+        sharedRef = this.Target;
+    }
+}
+
+}
+
+}
+
index 37cc4f0..c118ec2 100644 (file)
@@ -61,210 +61,16 @@ Last = 18,
 
 namespace Edje {
 
-/// <summary>All available cursor states</summary>
 public enum Cursor
 {
-/// <summary>Main cursor state</summary>
 Main = 0,
-/// <summary>Selection begin cursor state</summary>
 SelectionBegin = 1,
-/// <summary>Selection end cursor state</summary>
 SelectionEnd = 2,
-/// <summary>Pre-edit start cursor state</summary>
 PreeditStart = 3,
-/// <summary>Pre-edit end cursor state</summary>
 PreeditEnd = 4,
-/// <summary>User cursor state</summary>
 User = 5,
-/// <summary>User extra cursor state</summary>
 UserExtra = 6,
 }
 
 }
 
-namespace Edje {
-
-namespace Text {
-
-/// <summary>All Text auto capital mode type values</summary>
-public enum AutocapitalType
-{
-/// <summary>None mode value</summary>
-None = 0,
-/// <summary>Word mode value</summary>
-Word = 1,
-/// <summary>Sentence mode value</summary>
-Sentence = 2,
-/// <summary>All characters mode value</summary>
-Allcharacter = 3,
-}
-
-}
-
-}
-
-namespace Edje {
-
-/// <summary>Input hints</summary>
-public enum InputHints
-{
-/// <summary>No active hints
-/// (Since EFL 1.12)</summary>
-None = 0,
-/// <summary>Suggest word auto completion
-/// (Since EFL 1.12)</summary>
-AutoComplete = 1,
-/// <summary>Typed text should not be stored.
-/// (Since EFL 1.12)</summary>
-SensitiveData = 2,
-}
-
-}
-
-namespace Edje {
-
-namespace InputPanel {
-
-/// <summary>Input panel language</summary>
-public enum Lang
-{
-/// <summary>Automatic
-/// (Since EFL 1.2)</summary>
-Automatic = 0,
-/// <summary>Alphabet
-/// (Since EFL 1.2)</summary>
-Alphabet = 1,
-}
-
-}
-
-}
-
-namespace Edje {
-
-namespace InputPanel {
-
-/// <summary>Input panel return key types</summary>
-public enum ReturnKeyType
-{
-/// <summary>Default
-/// (Since EFL 1.2)</summary>
-Default = 0,
-/// <summary>Done
-/// (Since EFL 1.2)</summary>
-Done = 1,
-/// <summary>Go
-/// (Since EFL 1.2)</summary>
-Go = 2,
-/// <summary>Join
-/// (Since EFL 1.2)</summary>
-Join = 3,
-/// <summary>Login
-/// (Since EFL 1.2)</summary>
-Login = 4,
-/// <summary>Next
-/// (Since EFL 1.2)</summary>
-Next = 5,
-/// <summary>Search or magnifier icon
-/// (Since EFL 1.2)</summary>
-Search = 6,
-/// <summary>Send
-/// (Since EFL 1.2)</summary>
-Send = 7,
-/// <summary>Sign-in
-/// (Since EFL 1.8)</summary>
-Signin = 8,
-}
-
-}
-
-}
-
-namespace Edje {
-
-namespace InputPanel {
-
-/// <summary>Input panel layout</summary>
-public enum Layout
-{
-/// <summary>Default layout</summary>
-Normal = 0,
-/// <summary>Number layout</summary>
-Number = 1,
-/// <summary>Email layout</summary>
-Email = 2,
-/// <summary>URL layout</summary>
-Url = 3,
-/// <summary>Phone Number layout</summary>
-Phonenumber = 4,
-/// <summary>IP layout</summary>
-Ip = 5,
-/// <summary>Month layout</summary>
-Month = 6,
-/// <summary>Number Only layout</summary>
-Numberonly = 7,
-/// <summary>Never use this</summary>
-Invalid = 8,
-/// <summary>Hexadecimal layout
-/// (Since EFL 1.2)</summary>
-Hex = 9,
-/// <summary>Command-line terminal layout including esc, alt, ctrl key, so on (no auto-correct, no auto-capitalization)
-/// (Since EFL 1.2)</summary>
-Terminal = 10,
-/// <summary>Like normal, but no auto-correct, no auto-capitalization etc.
-/// (Since EFL 1.2)</summary>
-Password = 11,
-/// <summary>Date and time layout
-/// (Since EFL 1.8)</summary>
-Datetime = 12,
-/// <summary>Emoticon layout
-/// (Since EFL 1.10)</summary>
-Emoticon = 13,
-/// <summary>Voice layout, but if the IME does not support voice layout, then normal layout will be shown.
-/// (Since EFL 1.19)</summary>
-Voice = 14,
-}
-
-}
-
-}
-
-namespace Edje {
-
-/// <summary>Perspective info for maps inside edje objects</summary>
-[StructLayout(LayoutKind.Sequential)]
-public struct Perspective
-{
-    ///<summary>Placeholder field</summary>
-    public IntPtr field;
-    public static implicit operator Perspective(IntPtr ptr)
-    {
-        var tmp = (Perspective.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Perspective.NativeStruct));
-        return tmp;
-    }
-
-    ///<summary>Internal wrapper for struct Perspective.</summary>
-    [StructLayout(LayoutKind.Sequential)]
-    public struct NativeStruct
-    {
-        internal IntPtr field;
-        ///<summary>Implicit conversion to the internal/marshalling representation.</summary>
-        public static implicit operator Perspective.NativeStruct(Perspective _external_struct)
-        {
-            var _internal_struct = new Perspective.NativeStruct();
-            return _internal_struct;
-        }
-
-        ///<summary>Implicit conversion to the managed representation.</summary>
-        public static implicit operator Perspective(Perspective.NativeStruct _internal_struct)
-        {
-            var _external_struct = new Perspective();
-            return _external_struct;
-        }
-
-    }
-
-}
-
-}
-
index 1c17086..071b277 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 /// <summary>Efl accelerate interpolator class
 /// output = 1 - sin(Pi / 2 + input * Pi / 2);</summary>
 [Efl.AccelerateInterpolator.NativeMethods]
-public class AccelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
+public class AccelerateInterpolator : Efl.Object, Efl.IInterpolator
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -43,7 +43,7 @@ public class AccelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AccelerateInterpolator(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AccelerateInterpolator"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -54,33 +54,6 @@ public class AccelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Factor property</summary>
     /// <returns>Factor of the interpolation function.</returns>
     virtual public double GetFactor() {
@@ -103,7 +76,7 @@ public class AccelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
                         return _ret_var;
  }
     /// <summary>Factor property</summary>
-/// <value>Factor of the interpolation function.</value>
+    /// <value>Factor of the interpolation function.</value>
     public double Factor {
         get { return GetFactor(); }
         set { SetFactor(value); }
@@ -164,7 +137,7 @@ public class AccelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
             return Efl.AccelerateInterpolator.efl_accelerate_interpolator_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_accelerate_interpolator_factor_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -177,13 +150,13 @@ public class AccelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
         private static double factor_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_accelerate_interpolator_factor_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((AccelerateInterpolator)wrapper).GetFactor();
+                    _ret_var = ((AccelerateInterpolator)ws.Target).GetFactor();
                 }
                 catch (Exception e)
                 {
@@ -213,13 +186,13 @@ public class AccelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
         private static void factor_set(System.IntPtr obj, System.IntPtr pd, double factor)
         {
             Eina.Log.Debug("function efl_accelerate_interpolator_factor_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AccelerateInterpolator)wrapper).SetFactor(factor);
+                    ((AccelerateInterpolator)ws.Target).SetFactor(factor);
                 }
                 catch (Exception e)
                 {
@@ -248,13 +221,13 @@ public class AccelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
         private static double interpolate(System.IntPtr obj, System.IntPtr pd, double progress)
         {
             Eina.Log.Debug("function efl_interpolator_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((AccelerateInterpolator)wrapper).Interpolate(progress);
+                    _ret_var = ((AccelerateInterpolator)ws.Target).Interpolate(progress);
                 }
                 catch (Exception e)
                 {
@@ -273,7 +246,7 @@ public class AccelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
 
         private static efl_interpolator_interpolate_delegate efl_interpolator_interpolate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 029f7b6..b49cbb4 100644 (file)
@@ -34,19 +34,19 @@ bool ActionDo(int id);
 /// <returns>Should be freed by the user.</returns>
 System.String GetActionKeybinding(int id);
                                 /// <summary>Get list of available widget actions</summary>
-/// <value>Contains statically allocated strings.</value>
+    /// <value>Contains statically allocated strings.</value>
     Eina.List<Efl.Access.ActionData> Actions {
         get ;
     }
 }
 /// <summary>Accessible action mixin</summary>
-sealed public class IActionConcrete : 
-
-IAction
+sealed public class IActionConcrete :
+    Efl.Eo.EoWrapper
+    , IAction
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -61,86 +61,12 @@ IAction
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_access_action_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IAction"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IActionConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IActionConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IActionConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Gets action name for given id</summary>
@@ -183,7 +109,7 @@ IAction
                         return _ret_var;
  }
     /// <summary>Get list of available widget actions</summary>
-/// <value>Contains statically allocated strings.</value>
+    /// <value>Contains statically allocated strings.</value>
     public Eina.List<Efl.Access.ActionData> Actions {
         get { return GetActions(); }
     }
@@ -262,7 +188,7 @@ IAction
             return Efl.Access.IActionConcrete.efl_access_action_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_access_action_name_get_delegate(System.IntPtr obj, System.IntPtr pd,  int id);
@@ -275,13 +201,13 @@ IAction
         private static System.String action_name_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).GetActionName(id);
+                    _ret_var = ((IActionConcrete)ws.Target).GetActionName(id);
                 }
                 catch (Exception e)
                 {
@@ -311,13 +237,13 @@ IAction
         private static System.String action_localized_name_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_localized_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).GetActionLocalizedName(id);
+                    _ret_var = ((IActionConcrete)ws.Target).GetActionLocalizedName(id);
                 }
                 catch (Exception e)
                 {
@@ -347,13 +273,13 @@ IAction
         private static System.IntPtr actions_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_action_actions_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Access.ActionData> _ret_var = default(Eina.List<Efl.Access.ActionData>);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).GetActions();
+                    _ret_var = ((IActionConcrete)ws.Target).GetActions();
                 }
                 catch (Exception e)
                 {
@@ -383,13 +309,13 @@ IAction
         private static bool action_do(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_do was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).ActionDo(id);
+                    _ret_var = ((IActionConcrete)ws.Target).ActionDo(id);
                 }
                 catch (Exception e)
                 {
@@ -419,13 +345,13 @@ IAction
         private static System.String action_keybinding_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_keybinding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).GetActionKeybinding(id);
+                    _ret_var = ((IActionConcrete)ws.Target).GetActionKeybinding(id);
                 }
                 catch (Exception e)
                 {
@@ -444,7 +370,7 @@ IAction
 
         private static efl_access_action_keybinding_get_delegate efl_access_action_keybinding_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 1a2845b..3f638c0 100644 (file)
@@ -63,19 +63,19 @@ bool GrabHighlight();
 /// @if MOBILE @since_tizen 4.0 @elseif WEARABLE @since_tizen 3.0 @endif</summary>
 bool ClearHighlight();
                                                     /// <summary>Gets the depth at which the component is shown in relation to other components in the same container.</summary>
-/// <value>Z order of component</value>
+    /// <value>Z order of component</value>
     int ZOrder {
         get ;
     }
 }
 /// <summary>AT-SPI component mixin</summary>
-sealed public class IComponentConcrete : 
-
-IComponent
+sealed public class IComponentConcrete :
+    Efl.Eo.EoWrapper
+    , IComponent
     , Efl.Gfx.IEntity, Efl.Gfx.IStack
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -90,155 +90,12 @@ IComponent
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_access_component_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IComponent"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IComponentConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IComponentConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
+    private IComponentConcrete(System.IntPtr raw) : base(raw)
     {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Object&apos;s visibility state changed, the event value is the new state.
@@ -249,14 +106,13 @@ IComponent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -312,13 +168,12 @@ IComponent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
+                        Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -376,13 +231,12 @@ IComponent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
+                        Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -440,10 +294,9 @@ IComponent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -753,75 +606,75 @@ IComponent
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Gets the depth at which the component is shown in relation to other components in the same container.</summary>
-/// <value>Z order of component</value>
+    /// <value>Z order of component</value>
     public int ZOrder {
         get { return GetZOrder(); }
     }
     /// <summary>The 2D position of a canvas object.
-/// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D coordinate in pixel units.</value>
+    /// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D coordinate in pixel units.</value>
     public Eina.Position2D Position {
         get { return GetPosition(); }
         set { SetPosition(value); }
     }
     /// <summary>The 2D size of a canvas object.
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D size in pixel units.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D size in pixel units.</value>
     public Eina.Size2D Size {
         get { return GetSize(); }
         set { SetSize(value); }
     }
     /// <summary>Rectangular geometry that combines both position and size.
-/// (Since EFL 1.22)</summary>
-/// <value>The X,Y position and W,H size, in pixels.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The X,Y position and W,H size, in pixels.</value>
     public Eina.Rect Geometry {
         get { return GetGeometry(); }
         set { SetGeometry(value); }
     }
     /// <summary>The visibility of a canvas object.
-/// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
-/// 
-/// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
+    /// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
+    /// 
+    /// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
     public bool Visible {
         get { return GetVisible(); }
         set { SetVisible(value); }
     }
     /// <summary>The scaling factor of an object.
-/// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
-/// 
-/// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
-/// (Since EFL 1.22)</summary>
-/// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
+    /// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
+    /// 
+    /// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
     public double Scale {
         get { return GetScale(); }
         set { SetScale(value); }
     }
     /// <summary>Retrieves the layer of its canvas that the given object is part of.
-/// See also <see cref="Efl.Gfx.IStack.SetLayer"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The number of the layer to place the object on. Must be between <see cref="Efl.Gfx.Constants.StackLayerMin"/> and <see cref="Efl.Gfx.Constants.StackLayerMax"/>.</value>
+    /// See also <see cref="Efl.Gfx.IStack.SetLayer"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The number of the layer to place the object on. Must be between <see cref="Efl.Gfx.Constants.StackLayerMin"/> and <see cref="Efl.Gfx.Constants.StackLayerMax"/>.</value>
     public short Layer {
         get { return GetLayer(); }
         set { SetLayer(value); }
     }
     /// <summary>Get the Evas object stacked right below <c>obj</c>
-/// This function will traverse layers in its search, if there are objects on layers below the one <c>obj</c> is placed at.
-/// 
-/// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
+    /// This function will traverse layers in its search, if there are objects on layers below the one <c>obj</c> is placed at.
+    /// 
+    /// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
     public Efl.Gfx.IStack Below {
         get { return GetBelow(); }
     }
     /// <summary>Get the Evas object stacked right above <c>obj</c>
-/// This function will traverse layers in its search, if there are objects on layers above the one <c>obj</c> is placed at.
-/// 
-/// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
+    /// This function will traverse layers in its search, if there are objects on layers above the one <c>obj</c> is placed at.
+    /// 
+    /// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
     public Efl.Gfx.IStack Above {
         get { return GetAbove(); }
     }
@@ -1150,7 +1003,7 @@ IComponent
             return Efl.Access.IComponentConcrete.efl_access_component_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_access_component_z_order_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1163,13 +1016,13 @@ IComponent
         private static int z_order_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_component_z_order_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetZOrder();
+                    _ret_var = ((IComponentConcrete)ws.Target).GetZOrder();
                 }
                 catch (Exception e)
                 {
@@ -1199,13 +1052,13 @@ IComponent
         private static Eina.Rect.NativeStruct extents_get(System.IntPtr obj, System.IntPtr pd, bool screen_coords)
         {
             Eina.Log.Debug("function efl_access_component_extents_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetExtents(screen_coords);
+                    _ret_var = ((IComponentConcrete)ws.Target).GetExtents(screen_coords);
                 }
                 catch (Exception e)
                 {
@@ -1235,14 +1088,14 @@ IComponent
         private static bool extents_set(System.IntPtr obj, System.IntPtr pd, bool screen_coords, Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_access_component_extents_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Rect _in_rect = rect;
                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).SetExtents(screen_coords, _in_rect);
+                    _ret_var = ((IComponentConcrete)ws.Target).SetExtents(screen_coords, _in_rect);
                 }
                 catch (Exception e)
                 {
@@ -1272,13 +1125,13 @@ IComponent
         private static void screen_position_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y)
         {
             Eina.Log.Debug("function efl_access_component_screen_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(int);        y = default(int);                            
                 try
                 {
-                    ((IComponentConcrete)wrapper).GetScreenPosition(out x, out y);
+                    ((IComponentConcrete)ws.Target).GetScreenPosition(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -1307,13 +1160,13 @@ IComponent
         private static bool screen_position_set(System.IntPtr obj, System.IntPtr pd, int x, int y)
         {
             Eina.Log.Debug("function efl_access_component_screen_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).SetScreenPosition(x, y);
+                    _ret_var = ((IComponentConcrete)ws.Target).SetScreenPosition(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1343,13 +1196,13 @@ IComponent
         private static void socket_offset_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y)
         {
             Eina.Log.Debug("function efl_access_component_socket_offset_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(int);        y = default(int);                            
                 try
                 {
-                    ((IComponentConcrete)wrapper).GetSocketOffset(out x, out y);
+                    ((IComponentConcrete)ws.Target).GetSocketOffset(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -1378,13 +1231,13 @@ IComponent
         private static void socket_offset_set(System.IntPtr obj, System.IntPtr pd, int x, int y)
         {
             Eina.Log.Debug("function efl_access_component_socket_offset_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IComponentConcrete)wrapper).SetSocketOffset(x, y);
+                    ((IComponentConcrete)ws.Target).SetSocketOffset(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1413,13 +1266,13 @@ IComponent
         private static bool contains(System.IntPtr obj, System.IntPtr pd, bool screen_coords, int x, int y)
         {
             Eina.Log.Debug("function efl_access_component_contains was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).Contains(screen_coords, x, y);
+                    _ret_var = ((IComponentConcrete)ws.Target).Contains(screen_coords, x, y);
                 }
                 catch (Exception e)
                 {
@@ -1449,13 +1302,13 @@ IComponent
         private static bool focus_grab(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_component_focus_grab was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GrabFocus();
+                    _ret_var = ((IComponentConcrete)ws.Target).GrabFocus();
                 }
                 catch (Exception e)
                 {
@@ -1485,13 +1338,13 @@ IComponent
         private static Efl.Object accessible_at_point_get(System.IntPtr obj, System.IntPtr pd, bool screen_coords, int x, int y)
         {
             Eina.Log.Debug("function efl_access_component_accessible_at_point_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetAccessibleAtPoint(screen_coords, x, y);
+                    _ret_var = ((IComponentConcrete)ws.Target).GetAccessibleAtPoint(screen_coords, x, y);
                 }
                 catch (Exception e)
                 {
@@ -1521,13 +1374,13 @@ IComponent
         private static bool highlight_grab(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_component_highlight_grab was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GrabHighlight();
+                    _ret_var = ((IComponentConcrete)ws.Target).GrabHighlight();
                 }
                 catch (Exception e)
                 {
@@ -1557,13 +1410,13 @@ IComponent
         private static bool highlight_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_component_highlight_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).ClearHighlight();
+                    _ret_var = ((IComponentConcrete)ws.Target).ClearHighlight();
                 }
                 catch (Exception e)
                 {
@@ -1593,13 +1446,13 @@ IComponent
         private static Eina.Position2D.NativeStruct position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetPosition();
+                    _ret_var = ((IComponentConcrete)ws.Target).GetPosition();
                 }
                 catch (Exception e)
                 {
@@ -1629,14 +1482,14 @@ IComponent
         private static void position_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((IComponentConcrete)wrapper).SetPosition(_in_pos);
+                    ((IComponentConcrete)ws.Target).SetPosition(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -1665,13 +1518,13 @@ IComponent
         private static Eina.Size2D.NativeStruct size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetSize();
+                    _ret_var = ((IComponentConcrete)ws.Target).GetSize();
                 }
                 catch (Exception e)
                 {
@@ -1701,14 +1554,14 @@ IComponent
         private static void size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((IComponentConcrete)wrapper).SetSize(_in_size);
+                    ((IComponentConcrete)ws.Target).SetSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -1737,13 +1590,13 @@ IComponent
         private static Eina.Rect.NativeStruct geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetGeometry();
+                    _ret_var = ((IComponentConcrete)ws.Target).GetGeometry();
                 }
                 catch (Exception e)
                 {
@@ -1773,14 +1626,14 @@ IComponent
         private static void geometry_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                             
                 try
                 {
-                    ((IComponentConcrete)wrapper).SetGeometry(_in_rect);
+                    ((IComponentConcrete)ws.Target).SetGeometry(_in_rect);
                 }
                 catch (Exception e)
                 {
@@ -1809,13 +1662,13 @@ IComponent
         private static bool visible_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetVisible();
+                    _ret_var = ((IComponentConcrete)ws.Target).GetVisible();
                 }
                 catch (Exception e)
                 {
@@ -1845,13 +1698,13 @@ IComponent
         private static void visible_set(System.IntPtr obj, System.IntPtr pd, bool v)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IComponentConcrete)wrapper).SetVisible(v);
+                    ((IComponentConcrete)ws.Target).SetVisible(v);
                 }
                 catch (Exception e)
                 {
@@ -1880,13 +1733,13 @@ IComponent
         private static double scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetScale();
+                    _ret_var = ((IComponentConcrete)ws.Target).GetScale();
                 }
                 catch (Exception e)
                 {
@@ -1916,13 +1769,13 @@ IComponent
         private static void scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IComponentConcrete)wrapper).SetScale(scale);
+                    ((IComponentConcrete)ws.Target).SetScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -1951,13 +1804,13 @@ IComponent
         private static short layer_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_layer_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             short _ret_var = default(short);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetLayer();
+                    _ret_var = ((IComponentConcrete)ws.Target).GetLayer();
                 }
                 catch (Exception e)
                 {
@@ -1987,13 +1840,13 @@ IComponent
         private static void layer_set(System.IntPtr obj, System.IntPtr pd, short l)
         {
             Eina.Log.Debug("function efl_gfx_stack_layer_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IComponentConcrete)wrapper).SetLayer(l);
+                    ((IComponentConcrete)ws.Target).SetLayer(l);
                 }
                 catch (Exception e)
                 {
@@ -2022,13 +1875,13 @@ IComponent
         private static Efl.Gfx.IStack below_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_below_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IStack _ret_var = default(Efl.Gfx.IStack);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetBelow();
+                    _ret_var = ((IComponentConcrete)ws.Target).GetBelow();
                 }
                 catch (Exception e)
                 {
@@ -2058,13 +1911,13 @@ IComponent
         private static Efl.Gfx.IStack above_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_above_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IStack _ret_var = default(Efl.Gfx.IStack);
                 try
                 {
-                    _ret_var = ((IComponentConcrete)wrapper).GetAbove();
+                    _ret_var = ((IComponentConcrete)ws.Target).GetAbove();
                 }
                 catch (Exception e)
                 {
@@ -2094,13 +1947,13 @@ IComponent
         private static void stack_below(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IStack below)
         {
             Eina.Log.Debug("function efl_gfx_stack_below was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IComponentConcrete)wrapper).StackBelow(below);
+                    ((IComponentConcrete)ws.Target).StackBelow(below);
                 }
                 catch (Exception e)
                 {
@@ -2129,13 +1982,13 @@ IComponent
         private static void raise_to_top(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_raise_to_top was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IComponentConcrete)wrapper).RaiseToTop();
+                    ((IComponentConcrete)ws.Target).RaiseToTop();
                 }
                 catch (Exception e)
                 {
@@ -2164,13 +2017,13 @@ IComponent
         private static void stack_above(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IStack above)
         {
             Eina.Log.Debug("function efl_gfx_stack_above was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IComponentConcrete)wrapper).StackAbove(above);
+                    ((IComponentConcrete)ws.Target).StackAbove(above);
                 }
                 catch (Exception e)
                 {
@@ -2199,13 +2052,13 @@ IComponent
         private static void lower_to_bottom(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_lower_to_bottom was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IComponentConcrete)wrapper).LowerToBottom();
+                    ((IComponentConcrete)ws.Target).LowerToBottom();
                 }
                 catch (Exception e)
                 {
@@ -2223,7 +2076,7 @@ IComponent
 
         private static efl_gfx_stack_lower_to_bottom_delegate efl_gfx_stack_lower_to_bottom_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index cda34b2..f581d97 100644 (file)
@@ -45,19 +45,19 @@ bool Delete(int start, int end);
 /// <returns><c>true</c> if paste succeeded, <c>false</c> otherwise</returns>
 bool Paste(int position);
                             /// <summary>Editable content property</summary>
-/// <value>Content</value>
+    /// <value>Content</value>
     System.String TextContent {
         set ;
     }
 }
 /// <summary>Elementary editable text interface</summary>
-sealed public class ITextConcrete : 
-
-IText
+sealed public class ITextConcrete :
+    Efl.Eo.EoWrapper
+    , IText
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -72,86 +72,12 @@ IText
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_access_editable_text_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IText"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ITextConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Editable content property</summary>
@@ -207,7 +133,7 @@ IText
                         return _ret_var;
  }
     /// <summary>Editable content property</summary>
-/// <value>Content</value>
+    /// <value>Content</value>
     public System.String TextContent {
         set { SetTextContent(value); }
     }
@@ -296,7 +222,7 @@ IText
             return Efl.Access.Editable.ITextConcrete.efl_access_editable_text_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_access_editable_text_content_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String kw_string);
@@ -309,13 +235,13 @@ IText
         private static bool text_content_set(System.IntPtr obj, System.IntPtr pd, System.String kw_string)
         {
             Eina.Log.Debug("function efl_access_editable_text_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).SetTextContent(kw_string);
+                    _ret_var = ((IText)ws.Target).SetTextContent(kw_string);
                 }
                 catch (Exception e)
                 {
@@ -345,13 +271,13 @@ IText
         private static bool insert(System.IntPtr obj, System.IntPtr pd, System.String kw_string, int position)
         {
             Eina.Log.Debug("function efl_access_editable_text_insert was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).Insert(kw_string, position);
+                    _ret_var = ((IText)ws.Target).Insert(kw_string, position);
                 }
                 catch (Exception e)
                 {
@@ -381,13 +307,13 @@ IText
         private static bool copy(System.IntPtr obj, System.IntPtr pd, int start, int end)
         {
             Eina.Log.Debug("function efl_access_editable_text_copy was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).Copy(start, end);
+                    _ret_var = ((IText)ws.Target).Copy(start, end);
                 }
                 catch (Exception e)
                 {
@@ -417,13 +343,13 @@ IText
         private static bool cut(System.IntPtr obj, System.IntPtr pd, int start, int end)
         {
             Eina.Log.Debug("function efl_access_editable_text_cut was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).Cut(start, end);
+                    _ret_var = ((IText)ws.Target).Cut(start, end);
                 }
                 catch (Exception e)
                 {
@@ -453,13 +379,13 @@ IText
         private static bool kw_delete(System.IntPtr obj, System.IntPtr pd, int start, int end)
         {
             Eina.Log.Debug("function efl_access_editable_text_delete was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).Delete(start, end);
+                    _ret_var = ((IText)ws.Target).Delete(start, end);
                 }
                 catch (Exception e)
                 {
@@ -489,13 +415,13 @@ IText
         private static bool paste(System.IntPtr obj, System.IntPtr pd, int position)
         {
             Eina.Log.Debug("function efl_access_editable_text_paste was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).Paste(position);
+                    _ret_var = ((IText)ws.Target).Paste(position);
                 }
                 catch (Exception e)
                 {
@@ -514,7 +440,7 @@ IText
 
         private static efl_access_editable_text_paste_delegate efl_access_editable_text_paste_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e72f443..3f0cca6 100644 (file)
@@ -9,17 +9,25 @@ namespace Efl {
 
 namespace Access {
 
+/// <summary>Accessibility object state set.</summary>
 public struct StateSet
 {
     private ulong payload;
-    public static implicit operator StateSet(ulong x)
+
+    /// <summary>Converts an instance of ulong to this struct.</summary>
+    /// <param name="value">The value to be converted.</param>
+    /// <returns>A struct with the given value.</returns>
+    public static implicit operator StateSet(ulong value)
     {
-        return new StateSet{payload=x};
+        return new StateSet{payload=value};
     }
 
-    public static implicit operator ulong(StateSet x)
+    /// <summary>Converts an instance of this struct to ulong.</summary>
+    /// <param name="value">The value to be converted packed in this struct.</param>
+    /// <returns>The actual value the alias is wrapping.</returns>
+    public static implicit operator ulong(StateSet value)
     {
-        return x.payload;
+        return value.payload;
     }
 
 }
@@ -32,17 +40,25 @@ namespace Efl {
 
 namespace Access {
 
+/// <summary>Elementary Accessibility relation set type</summary>
 public struct RelationSet
 {
     private Eina.List<Efl.Access.Relation> payload;
-    public static implicit operator RelationSet(Eina.List<Efl.Access.Relation> x)
+
+    /// <summary>Converts an instance of Eina.List<Efl.Access.Relation> to this struct.</summary>
+    /// <param name="value">The value to be converted.</param>
+    /// <returns>A struct with the given value.</returns>
+    public static implicit operator RelationSet(Eina.List<Efl.Access.Relation> value)
     {
-        return new RelationSet{payload=x};
+        return new RelationSet{payload=value};
     }
 
-    public static implicit operator Eina.List<Efl.Access.Relation>(RelationSet x)
+    /// <summary>Converts an instance of this struct to Eina.List<Efl.Access.Relation>.</summary>
+    /// <param name="value">The value to be converted packed in this struct.</param>
+    /// <returns>The actual value the alias is wrapping.</returns>
+    public static implicit operator Eina.List<Efl.Access.Relation>(RelationSet value)
     {
-        return x.payload;
+        return value.payload;
     }
 
 }
@@ -203,85 +219,85 @@ void StateNotify(Efl.Access.StateSet state_types_mask, bool recursive);
     event EventHandler RemovedEvt;
     event EventHandler MoveOutedEvt;
     /// <summary>Gets an localized string describing accessible object role name.</summary>
-/// <value>Localized accessible object role name</value>
+    /// <value>Localized accessible object role name</value>
     System.String LocalizedRoleName {
         get ;
     }
     /// <summary>Accessible name of the object.</summary>
-/// <value>Accessible name</value>
+    /// <value>Accessible name</value>
     System.String I18nName {
         get ;
         set ;
     }
     /// <summary>Gets an all relations between accessible object and other accessible objects.</summary>
-/// <value>Accessible relation set</value>
+    /// <value>Accessible relation set</value>
     Efl.Access.RelationSet RelationSet {
         get ;
     }
     /// <summary>The role of the object in accessibility domain.</summary>
-/// <value>Accessible role</value>
+    /// <value>Accessible role</value>
     Efl.Access.Role Role {
         get ;
         set ;
     }
     /// <summary>Gets object&apos;s accessible parent.</summary>
-/// <value>Accessible parent</value>
+    /// <value>Accessible parent</value>
     Efl.Access.IObject AccessParent {
         get ;
         set ;
     }
     /// <summary>Gets object&apos;s accessible children.</summary>
-/// <value>List of widget&apos;s children</value>
+    /// <value>List of widget&apos;s children</value>
     Eina.List<Efl.Access.IObject> AccessChildren {
         get ;
     }
     /// <summary>Gets human-readable string indentifying object accessibility role.</summary>
-/// <value>Accessible role name</value>
+    /// <value>Accessible role name</value>
     System.String RoleName {
         get ;
     }
     /// <summary>Gets key-value pairs indentifying object extra attributes. Must be free by a user.</summary>
-/// <value>List of object attributes, Must be freed by the user</value>
+    /// <value>List of object attributes, Must be freed by the user</value>
     Eina.List<Efl.Access.Attribute> Attributes {
         get ;
     }
     /// <summary>Gets reading information types of an accessible object. if no reading information is set, 0 is returned which means all four reading information types will be read on object highlight
-/// @if WEARABLE @since_tizen 3.0 @endif</summary>
-/// <value>Reading information types</value>
+    /// @if WEARABLE @since_tizen 3.0 @endif</summary>
+    /// <value>Reading information types</value>
     Efl.Access.ReadingInfoTypeMask ReadingInfoType {
         get ;
         set ;
     }
     /// <summary>Gets index of the child in parent&apos;s children list.</summary>
-/// <value>Index in children list</value>
+    /// <value>Index in children list</value>
     int IndexInParent {
         get ;
     }
     /// <summary>Gets contextual information about object.</summary>
-/// <value>Accessible contextual information</value>
+    /// <value>Accessible contextual information</value>
     System.String Description {
         get ;
         set ;
     }
     /// <summary>Gets set describing object accessible states.</summary>
-/// <value>Accessible state set</value>
+    /// <value>Accessible state set</value>
     Efl.Access.StateSet StateSet {
         get ;
     }
     /// <summary>Gets highlightable of given widget.
-/// @if WEARABLE @since_tizen 3.0 @endif</summary>
-/// <value>If @c true, the object is highlightable.</value>
+    /// @if WEARABLE @since_tizen 3.0 @endif</summary>
+    /// <value>If @c true, the object is highlightable.</value>
     bool CanHighlight {
         get ;
         set ;
     }
     /// <summary>The translation domain of &quot;name&quot; and &quot;description&quot; properties.
-/// Translation domain should be set if the application wants to support i18n for accessibility &quot;name&quot; and &quot;description&quot; properties.
-/// 
-/// When translation domain is set, values of &quot;name&quot; and &quot;description&quot; properties will be translated with the dgettext function using the current translation domain as the &quot;domainname&quot; parameter.
-/// 
-/// It is the application developer&apos;s responsibility to ensure that translation files are loaded and bound to the translation domain when accessibility is enabled.</summary>
-/// <value>Translation domain</value>
+    /// Translation domain should be set if the application wants to support i18n for accessibility &quot;name&quot; and &quot;description&quot; properties.
+    /// 
+    /// When translation domain is set, values of &quot;name&quot; and &quot;description&quot; properties will be translated with the dgettext function using the current translation domain as the &quot;domainname&quot; parameter.
+    /// 
+    /// It is the application developer&apos;s responsibility to ensure that translation files are loaded and bound to the translation domain when accessibility is enabled.</summary>
+    /// <value>Translation domain</value>
     System.String TranslationDomain {
         get ;
         set ;
@@ -313,13 +329,13 @@ public class IObjectActiveDescendantChangedEvt_Args : EventArgs {
     public Efl.Object arg { get; set; }
 }
 /// <summary>Accessibility accessible mixin</summary>
-sealed public class IObjectConcrete : 
-
-IObject
+sealed public class IObjectConcrete :
+    Efl.Eo.EoWrapper
+    , IObject
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -334,155 +350,12 @@ IObject
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_access_object_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IObject"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IObjectConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IObjectConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IObjectConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when property has changed</summary>
@@ -492,13 +365,12 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.IObjectPropertyChangedEvt_Args args = new Efl.Access.IObjectPropertyChangedEvt_Args();
+                        Efl.Access.IObjectPropertyChangedEvt_Args args = new Efl.Access.IObjectPropertyChangedEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -554,13 +426,12 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.IObjectChildrenChangedEvt_Args args = new Efl.Access.IObjectChildrenChangedEvt_Args();
+                        Efl.Access.IObjectChildrenChangedEvt_Args args = new Efl.Access.IObjectChildrenChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -617,13 +488,12 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.IObjectStateChangedEvt_Args args = new Efl.Access.IObjectStateChangedEvt_Args();
+                        Efl.Access.IObjectStateChangedEvt_Args args = new Efl.Access.IObjectStateChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -680,13 +550,12 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.IObjectBoundsChangedEvt_Args args = new Efl.Access.IObjectBoundsChangedEvt_Args();
+                        Efl.Access.IObjectBoundsChangedEvt_Args args = new Efl.Access.IObjectBoundsChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -743,10 +612,9 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -796,13 +664,12 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.IObjectActiveDescendantChangedEvt_Args args = new Efl.Access.IObjectActiveDescendantChangedEvt_Args();
+                        Efl.Access.IObjectActiveDescendantChangedEvt_Args args = new Efl.Access.IObjectActiveDescendantChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -851,10 +718,9 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -904,10 +770,9 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -956,10 +821,9 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1272,91 +1136,91 @@ IObject
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Gets an localized string describing accessible object role name.</summary>
-/// <value>Localized accessible object role name</value>
+    /// <value>Localized accessible object role name</value>
     public System.String LocalizedRoleName {
         get { return GetLocalizedRoleName(); }
     }
     /// <summary>Accessible name of the object.</summary>
-/// <value>Accessible name</value>
+    /// <value>Accessible name</value>
     public System.String I18nName {
         get { return GetI18nName(); }
         set { SetI18nName(value); }
     }
     /// <summary>Gets an all relations between accessible object and other accessible objects.</summary>
-/// <value>Accessible relation set</value>
+    /// <value>Accessible relation set</value>
     public Efl.Access.RelationSet RelationSet {
         get { return GetRelationSet(); }
     }
     /// <summary>The role of the object in accessibility domain.</summary>
-/// <value>Accessible role</value>
+    /// <value>Accessible role</value>
     public Efl.Access.Role Role {
         get { return GetRole(); }
         set { SetRole(value); }
     }
     /// <summary>Gets object&apos;s accessible parent.</summary>
-/// <value>Accessible parent</value>
+    /// <value>Accessible parent</value>
     public Efl.Access.IObject AccessParent {
         get { return GetAccessParent(); }
         set { SetAccessParent(value); }
     }
     /// <summary>Gets object&apos;s accessible children.</summary>
-/// <value>List of widget&apos;s children</value>
+    /// <value>List of widget&apos;s children</value>
     public Eina.List<Efl.Access.IObject> AccessChildren {
         get { return GetAccessChildren(); }
     }
     /// <summary>Gets human-readable string indentifying object accessibility role.</summary>
-/// <value>Accessible role name</value>
+    /// <value>Accessible role name</value>
     public System.String RoleName {
         get { return GetRoleName(); }
     }
     /// <summary>Gets key-value pairs indentifying object extra attributes. Must be free by a user.</summary>
-/// <value>List of object attributes, Must be freed by the user</value>
+    /// <value>List of object attributes, Must be freed by the user</value>
     public Eina.List<Efl.Access.Attribute> Attributes {
         get { return GetAttributes(); }
     }
     /// <summary>Gets reading information types of an accessible object. if no reading information is set, 0 is returned which means all four reading information types will be read on object highlight
-/// @if WEARABLE @since_tizen 3.0 @endif</summary>
-/// <value>Reading information types</value>
+    /// @if WEARABLE @since_tizen 3.0 @endif</summary>
+    /// <value>Reading information types</value>
     public Efl.Access.ReadingInfoTypeMask ReadingInfoType {
         get { return GetReadingInfoType(); }
         set { SetReadingInfoType(value); }
     }
     /// <summary>Gets index of the child in parent&apos;s children list.</summary>
-/// <value>Index in children list</value>
+    /// <value>Index in children list</value>
     public int IndexInParent {
         get { return GetIndexInParent(); }
     }
     /// <summary>Gets contextual information about object.</summary>
-/// <value>Accessible contextual information</value>
+    /// <value>Accessible contextual information</value>
     public System.String Description {
         get { return GetDescription(); }
         set { SetDescription(value); }
     }
     /// <summary>Gets set describing object accessible states.</summary>
-/// <value>Accessible state set</value>
+    /// <value>Accessible state set</value>
     public Efl.Access.StateSet StateSet {
         get { return GetStateSet(); }
     }
     /// <summary>Gets highlightable of given widget.
-/// @if WEARABLE @since_tizen 3.0 @endif</summary>
-/// <value>If @c true, the object is highlightable.</value>
+    /// @if WEARABLE @since_tizen 3.0 @endif</summary>
+    /// <value>If @c true, the object is highlightable.</value>
     public bool CanHighlight {
         get { return GetCanHighlight(); }
         set { SetCanHighlight(value); }
     }
     /// <summary>The translation domain of &quot;name&quot; and &quot;description&quot; properties.
-/// Translation domain should be set if the application wants to support i18n for accessibility &quot;name&quot; and &quot;description&quot; properties.
-/// 
-/// When translation domain is set, values of &quot;name&quot; and &quot;description&quot; properties will be translated with the dgettext function using the current translation domain as the &quot;domainname&quot; parameter.
-/// 
-/// It is the application developer&apos;s responsibility to ensure that translation files are loaded and bound to the translation domain when accessibility is enabled.</summary>
-/// <value>Translation domain</value>
+    /// Translation domain should be set if the application wants to support i18n for accessibility &quot;name&quot; and &quot;description&quot; properties.
+    /// 
+    /// When translation domain is set, values of &quot;name&quot; and &quot;description&quot; properties will be translated with the dgettext function using the current translation domain as the &quot;domainname&quot; parameter.
+    /// 
+    /// It is the application developer&apos;s responsibility to ensure that translation files are loaded and bound to the translation domain when accessibility is enabled.</summary>
+    /// <value>Translation domain</value>
     public System.String TranslationDomain {
         get { return GetTranslationDomain(); }
         set { SetTranslationDomain(value); }
     }
     /// <summary>Get root object of accessible object hierarchy</summary>
-/// <value>Root object</value>
+    /// <value>Root object</value>
     public static Efl.Object AccessRoot {
         get { return GetAccessRoot(); }
     }
@@ -1705,7 +1569,7 @@ IObject
             return Efl.Access.IObjectConcrete.efl_access_object_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_access_object_localized_role_name_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1718,13 +1582,13 @@ IObject
         private static System.String localized_role_name_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_localized_role_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetLocalizedRoleName();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetLocalizedRoleName();
                 }
                 catch (Exception e)
                 {
@@ -1754,13 +1618,13 @@ IObject
         private static System.String i18n_name_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_i18n_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetI18nName();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetI18nName();
                 }
                 catch (Exception e)
                 {
@@ -1790,13 +1654,13 @@ IObject
         private static void i18n_name_set(System.IntPtr obj, System.IntPtr pd, System.String i18n_name)
         {
             Eina.Log.Debug("function efl_access_object_i18n_name_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetI18nName(i18n_name);
+                    ((IObjectConcrete)ws.Target).SetI18nName(i18n_name);
                 }
                 catch (Exception e)
                 {
@@ -1825,13 +1689,13 @@ IObject
         private static void name_cb_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.ReadingInfoCb name_cb, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_access_object_name_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetNameCb(name_cb, data);
+                    ((IObjectConcrete)ws.Target).SetNameCb(name_cb, data);
                 }
                 catch (Exception e)
                 {
@@ -1860,13 +1724,13 @@ IObject
         private static Efl.Access.RelationSet relation_set_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_relation_set_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.RelationSet _ret_var = default(Efl.Access.RelationSet);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetRelationSet();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetRelationSet();
                 }
                 catch (Exception e)
                 {
@@ -1896,13 +1760,13 @@ IObject
         private static Efl.Access.Role role_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_role_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.Role _ret_var = default(Efl.Access.Role);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetRole();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetRole();
                 }
                 catch (Exception e)
                 {
@@ -1932,13 +1796,13 @@ IObject
         private static void role_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.Role role)
         {
             Eina.Log.Debug("function efl_access_object_role_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetRole(role);
+                    ((IObjectConcrete)ws.Target).SetRole(role);
                 }
                 catch (Exception e)
                 {
@@ -1967,13 +1831,13 @@ IObject
         private static Efl.Access.IObject access_parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_access_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.IObject _ret_var = default(Efl.Access.IObject);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetAccessParent();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetAccessParent();
                 }
                 catch (Exception e)
                 {
@@ -2003,13 +1867,13 @@ IObject
         private static void access_parent_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.IObject parent)
         {
             Eina.Log.Debug("function efl_access_object_access_parent_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetAccessParent(parent);
+                    ((IObjectConcrete)ws.Target).SetAccessParent(parent);
                 }
                 catch (Exception e)
                 {
@@ -2038,13 +1902,13 @@ IObject
         private static void description_cb_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.ReadingInfoCb description_cb, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_access_object_description_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetDescriptionCb(description_cb, data);
+                    ((IObjectConcrete)ws.Target).SetDescriptionCb(description_cb, data);
                 }
                 catch (Exception e)
                 {
@@ -2073,13 +1937,13 @@ IObject
         private static void gesture_cb_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.GestureCb gesture_cb, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_access_object_gesture_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetGestureCb(gesture_cb, data);
+                    ((IObjectConcrete)ws.Target).SetGestureCb(gesture_cb, data);
                 }
                 catch (Exception e)
                 {
@@ -2108,13 +1972,13 @@ IObject
         private static System.IntPtr access_children_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_access_children_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Access.IObject> _ret_var = default(Eina.List<Efl.Access.IObject>);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetAccessChildren();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetAccessChildren();
                 }
                 catch (Exception e)
                 {
@@ -2144,13 +2008,13 @@ IObject
         private static System.String role_name_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_role_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetRoleName();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetRoleName();
                 }
                 catch (Exception e)
                 {
@@ -2180,13 +2044,13 @@ IObject
         private static System.IntPtr attributes_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_attributes_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Access.Attribute> _ret_var = default(Eina.List<Efl.Access.Attribute>);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetAttributes();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetAttributes();
                 }
                 catch (Exception e)
                 {
@@ -2216,13 +2080,13 @@ IObject
         private static Efl.Access.ReadingInfoTypeMask reading_info_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_reading_info_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.ReadingInfoTypeMask _ret_var = default(Efl.Access.ReadingInfoTypeMask);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetReadingInfoType();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetReadingInfoType();
                 }
                 catch (Exception e)
                 {
@@ -2252,13 +2116,13 @@ IObject
         private static void reading_info_type_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.ReadingInfoTypeMask reading_info)
         {
             Eina.Log.Debug("function efl_access_object_reading_info_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetReadingInfoType(reading_info);
+                    ((IObjectConcrete)ws.Target).SetReadingInfoType(reading_info);
                 }
                 catch (Exception e)
                 {
@@ -2287,13 +2151,13 @@ IObject
         private static int index_in_parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_index_in_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetIndexInParent();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetIndexInParent();
                 }
                 catch (Exception e)
                 {
@@ -2323,13 +2187,13 @@ IObject
         private static System.String description_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_description_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetDescription();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetDescription();
                 }
                 catch (Exception e)
                 {
@@ -2359,13 +2223,13 @@ IObject
         private static void description_set(System.IntPtr obj, System.IntPtr pd, System.String description)
         {
             Eina.Log.Debug("function efl_access_object_description_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetDescription(description);
+                    ((IObjectConcrete)ws.Target).SetDescription(description);
                 }
                 catch (Exception e)
                 {
@@ -2394,13 +2258,13 @@ IObject
         private static Efl.Access.StateSet state_set_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_state_set_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.StateSet _ret_var = default(Efl.Access.StateSet);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetStateSet();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetStateSet();
                 }
                 catch (Exception e)
                 {
@@ -2430,13 +2294,13 @@ IObject
         private static bool can_highlight_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_can_highlight_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetCanHighlight();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetCanHighlight();
                 }
                 catch (Exception e)
                 {
@@ -2466,13 +2330,13 @@ IObject
         private static void can_highlight_set(System.IntPtr obj, System.IntPtr pd, bool can_highlight)
         {
             Eina.Log.Debug("function efl_access_object_can_highlight_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetCanHighlight(can_highlight);
+                    ((IObjectConcrete)ws.Target).SetCanHighlight(can_highlight);
                 }
                 catch (Exception e)
                 {
@@ -2501,13 +2365,13 @@ IObject
         private static System.String translation_domain_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_translation_domain_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetTranslationDomain();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetTranslationDomain();
                 }
                 catch (Exception e)
                 {
@@ -2537,13 +2401,13 @@ IObject
         private static void translation_domain_set(System.IntPtr obj, System.IntPtr pd, System.String domain)
         {
             Eina.Log.Debug("function efl_access_object_translation_domain_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetTranslationDomain(domain);
+                    ((IObjectConcrete)ws.Target).SetTranslationDomain(domain);
                 }
                 catch (Exception e)
                 {
@@ -2572,8 +2436,8 @@ IObject
         private static Efl.Object access_root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_access_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Object _ret_var = default(Efl.Object);
                 try
@@ -2606,14 +2470,14 @@ IObject
         private static bool gesture_do(System.IntPtr obj, System.IntPtr pd, Efl.Access.GestureInfo.NativeStruct gesture_info)
         {
             Eina.Log.Debug("function efl_access_object_gesture_do was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Access.GestureInfo _in_gesture_info = gesture_info;
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GestureDo(_in_gesture_info);
+                    _ret_var = ((IObjectConcrete)ws.Target).GestureDo(_in_gesture_info);
                 }
                 catch (Exception e)
                 {
@@ -2643,13 +2507,13 @@ IObject
         private static void attribute_append(System.IntPtr obj, System.IntPtr pd, System.String key, System.String value)
         {
             Eina.Log.Debug("function efl_access_object_attribute_append was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IObjectConcrete)wrapper).AppendAttribute(key, value);
+                    ((IObjectConcrete)ws.Target).AppendAttribute(key, value);
                 }
                 catch (Exception e)
                 {
@@ -2678,13 +2542,13 @@ IObject
         private static void attribute_del(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_access_object_attribute_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IObjectConcrete)wrapper).DelAttribute(key);
+                    ((IObjectConcrete)ws.Target).DelAttribute(key);
                 }
                 catch (Exception e)
                 {
@@ -2713,13 +2577,13 @@ IObject
         private static void attributes_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_attributes_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IObjectConcrete)wrapper).ClearAttributes();
+                    ((IObjectConcrete)ws.Target).ClearAttributes();
                 }
                 catch (Exception e)
                 {
@@ -2748,8 +2612,8 @@ IObject
         private static Efl.Access.Event.Handler event_handler_add(System.IntPtr obj, System.IntPtr pd, Efl.EventCb cb, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_access_object_event_handler_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Efl.Access.Event.Handler _ret_var = default(Efl.Access.Event.Handler);
                 try
@@ -2782,8 +2646,8 @@ IObject
         private static void event_handler_del(System.IntPtr obj, System.IntPtr pd, Efl.Access.Event.Handler handler)
         {
             Eina.Log.Debug("function efl_access_object_event_handler_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
@@ -2815,8 +2679,8 @@ IObject
         private static void event_emit(System.IntPtr obj, System.IntPtr pd, Efl.Access.IObject accessible, System.IntPtr kw_event, System.IntPtr event_info)
         {
             Eina.Log.Debug("function efl_access_object_event_emit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 var _in_kw_event = Eina.PrimitiveConversion.PointerToManaged<Efl.EventDescription>(kw_event);
                                                                     
@@ -2849,13 +2713,13 @@ IObject
         private static bool relationship_append(System.IntPtr obj, System.IntPtr pd, Efl.Access.RelationType type, Efl.Access.IObject relation_object)
         {
             Eina.Log.Debug("function efl_access_object_relationship_append was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).AppendRelationship(type, relation_object);
+                    _ret_var = ((IObjectConcrete)ws.Target).AppendRelationship(type, relation_object);
                 }
                 catch (Exception e)
                 {
@@ -2885,13 +2749,13 @@ IObject
         private static void relationship_remove(System.IntPtr obj, System.IntPtr pd, Efl.Access.RelationType type, Efl.Access.IObject relation_object)
         {
             Eina.Log.Debug("function efl_access_object_relationship_remove was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IObjectConcrete)wrapper).RelationshipRemove(type, relation_object);
+                    ((IObjectConcrete)ws.Target).RelationshipRemove(type, relation_object);
                 }
                 catch (Exception e)
                 {
@@ -2920,13 +2784,13 @@ IObject
         private static void relationships_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_relationships_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IObjectConcrete)wrapper).ClearRelationships();
+                    ((IObjectConcrete)ws.Target).ClearRelationships();
                 }
                 catch (Exception e)
                 {
@@ -2955,13 +2819,13 @@ IObject
         private static void state_notify(System.IntPtr obj, System.IntPtr pd, Efl.Access.StateSet state_types_mask, bool recursive)
         {
             Eina.Log.Debug("function efl_access_object_state_notify was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IObjectConcrete)wrapper).StateNotify(state_types_mask, recursive);
+                    ((IObjectConcrete)ws.Target).StateNotify(state_types_mask, recursive);
                 }
                 catch (Exception e)
                 {
@@ -2979,7 +2843,7 @@ IObject
 
         private static efl_access_object_state_notify_delegate efl_access_object_state_notify_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -3492,12 +3356,16 @@ public struct Handler
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Handler(IntPtr ptr)
     {
         var tmp = (Handler.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Handler.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Handler.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -3519,6 +3387,8 @@ public struct Handler
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -3552,12 +3422,16 @@ public struct Data
         this.New_value = New_value;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Data(IntPtr ptr)
     {
         var tmp = (Data.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Data.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Data.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -3586,6 +3460,8 @@ public struct Data
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -3629,12 +3505,16 @@ public struct Data
         this.Height = Height;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Data(IntPtr ptr)
     {
         var tmp = (Data.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Data.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Data.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -3671,6 +3551,8 @@ public struct Data
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -3706,12 +3588,16 @@ public struct Data
         this.Child = Child;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Data(IntPtr ptr)
     {
         var tmp = (Data.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Data.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Data.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -3741,6 +3627,8 @@ public struct Data
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -3772,12 +3660,16 @@ public struct Attribute
         this.Value = Value;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Attribute(IntPtr ptr)
     {
         var tmp = (Attribute.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Attribute.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Attribute.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -3806,6 +3698,8 @@ public struct Attribute
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -3833,12 +3727,16 @@ public struct Relation
         this.Objects = Objects;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Relation(IntPtr ptr)
     {
         var tmp = (Relation.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Relation.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Relation.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -3867,6 +3765,8 @@ public struct Relation
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -3913,12 +3813,16 @@ public struct GestureInfo
         this.Event_time = Event_time;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator GestureInfo(IntPtr ptr)
     {
         var tmp = (GestureInfo.NativeStruct)Marshal.PtrToStructure(ptr, typeof(GestureInfo.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct GestureInfo.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -3967,6 +3871,8 @@ public struct GestureInfo
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index e463bb9..acdbe22 100644 (file)
@@ -46,19 +46,19 @@ bool ChildDeselect(int child_index);
                                     /// <summary>Called when selection has been changed.</summary>
     event EventHandler AccessSelectionChangedEvt;
     /// <summary>Gets the number of currently selected children</summary>
-/// <value>Number of currently selected children</value>
+    /// <value>Number of currently selected children</value>
     int SelectedChildrenCount {
         get ;
     }
 }
 /// <summary>Elementary access selection interface</summary>
-sealed public class ISelectionConcrete : 
-
-ISelection
+sealed public class ISelectionConcrete :
+    Efl.Eo.EoWrapper
+    , ISelection
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -73,155 +73,12 @@ ISelection
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_access_selection_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ISelection"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ISelectionConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ISelectionConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private ISelectionConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when selection has been changed.</summary>
@@ -231,10 +88,9 @@ ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -339,7 +195,7 @@ ISelection
                         return _ret_var;
  }
     /// <summary>Gets the number of currently selected children</summary>
-/// <value>Number of currently selected children</value>
+    /// <value>Number of currently selected children</value>
     public int SelectedChildrenCount {
         get { return GetSelectedChildrenCount(); }
     }
@@ -448,7 +304,7 @@ ISelection
             return Efl.Access.ISelectionConcrete.efl_access_selection_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_access_selection_selected_children_count_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -461,13 +317,13 @@ ISelection
         private static int selected_children_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_selection_selected_children_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ISelection)wrapper).GetSelectedChildrenCount();
+                    _ret_var = ((ISelection)ws.Target).GetSelectedChildrenCount();
                 }
                 catch (Exception e)
                 {
@@ -497,13 +353,13 @@ ISelection
         private static Efl.Object selected_child_get(System.IntPtr obj, System.IntPtr pd, int selected_child_index)
         {
             Eina.Log.Debug("function efl_access_selection_selected_child_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((ISelection)wrapper).GetSelectedChild(selected_child_index);
+                    _ret_var = ((ISelection)ws.Target).GetSelectedChild(selected_child_index);
                 }
                 catch (Exception e)
                 {
@@ -533,13 +389,13 @@ ISelection
         private static bool child_select(System.IntPtr obj, System.IntPtr pd, int child_index)
         {
             Eina.Log.Debug("function efl_access_selection_child_select was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISelection)wrapper).ChildSelect(child_index);
+                    _ret_var = ((ISelection)ws.Target).ChildSelect(child_index);
                 }
                 catch (Exception e)
                 {
@@ -569,13 +425,13 @@ ISelection
         private static bool selected_child_deselect(System.IntPtr obj, System.IntPtr pd, int child_index)
         {
             Eina.Log.Debug("function efl_access_selection_selected_child_deselect was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISelection)wrapper).SelectedChildDeselect(child_index);
+                    _ret_var = ((ISelection)ws.Target).SelectedChildDeselect(child_index);
                 }
                 catch (Exception e)
                 {
@@ -605,13 +461,13 @@ ISelection
         private static bool is_child_selected(System.IntPtr obj, System.IntPtr pd, int child_index)
         {
             Eina.Log.Debug("function efl_access_selection_is_child_selected was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISelection)wrapper).IsChildSelected(child_index);
+                    _ret_var = ((ISelection)ws.Target).IsChildSelected(child_index);
                 }
                 catch (Exception e)
                 {
@@ -641,13 +497,13 @@ ISelection
         private static bool all_children_select(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_selection_all_children_select was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISelection)wrapper).AllChildrenSelect();
+                    _ret_var = ((ISelection)ws.Target).AllChildrenSelect();
                 }
                 catch (Exception e)
                 {
@@ -677,13 +533,13 @@ ISelection
         private static bool access_selection_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_selection_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISelection)wrapper).ClearAccessSelection();
+                    _ret_var = ((ISelection)ws.Target).ClearAccessSelection();
                 }
                 catch (Exception e)
                 {
@@ -713,13 +569,13 @@ ISelection
         private static bool child_deselect(System.IntPtr obj, System.IntPtr pd, int child_index)
         {
             Eina.Log.Debug("function efl_access_selection_child_deselect was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISelection)wrapper).ChildDeselect(child_index);
+                    _ret_var = ((ISelection)ws.Target).ChildDeselect(child_index);
                 }
                 catch (Exception e)
                 {
@@ -738,7 +594,7 @@ ISelection
 
         private static efl_access_selection_child_deselect_delegate efl_access_selection_child_deselect_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index db78ab3..7a88ab9 100644 (file)
@@ -112,23 +112,23 @@ bool SelectionRemove(int selection_number);
     /// <summary>Text selection has changed</summary>
     event EventHandler AccessTextSelectionChangedEvt;
     /// <summary>Caret offset property</summary>
-/// <value>Offset</value>
+    /// <value>Offset</value>
     int CaretOffset {
         get ;
         set ;
     }
     /// <summary>Default attributes</summary>
-/// <value>List of default attributes</value>
+    /// <value>List of default attributes</value>
     Eina.List<Efl.Access.TextAttribute> DefaultAttributes {
         get ;
     }
     /// <summary>Character count</summary>
-/// <value>Character count</value>
+    /// <value>Character count</value>
     int CharacterCount {
         get ;
     }
     /// <summary>Selection count property</summary>
-/// <value>Selection counter</value>
+    /// <value>Selection counter</value>
     int SelectionsCount {
         get ;
     }
@@ -144,13 +144,13 @@ public class ITextAccessTextRemovedEvt_Args : EventArgs {
     public Efl.Access.TextChangeInfo arg { get; set; }
 }
 /// <summary>Elementary accessible text interface</summary>
-sealed public class ITextConcrete : 
-
-IText
+sealed public class ITextConcrete :
+    Efl.Eo.EoWrapper
+    , IText
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -165,155 +165,12 @@ IText
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_access_text_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IText"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextConcrete()
+    private ITextConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Caret moved</summary>
@@ -323,10 +180,9 @@ IText
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -376,13 +232,12 @@ IText
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.ITextAccessTextInsertedEvt_Args args = new Efl.Access.ITextAccessTextInsertedEvt_Args();
+                        Efl.Access.ITextAccessTextInsertedEvt_Args args = new Efl.Access.ITextAccessTextInsertedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -439,13 +294,12 @@ IText
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.ITextAccessTextRemovedEvt_Args args = new Efl.Access.ITextAccessTextRemovedEvt_Args();
+                        Efl.Access.ITextAccessTextRemovedEvt_Args args = new Efl.Access.ITextAccessTextRemovedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -502,10 +356,9 @@ IText
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -720,23 +573,23 @@ IText
                         return _ret_var;
  }
     /// <summary>Caret offset property</summary>
-/// <value>Offset</value>
+    /// <value>Offset</value>
     public int CaretOffset {
         get { return GetCaretOffset(); }
         set { SetCaretOffset(value); }
     }
     /// <summary>Default attributes</summary>
-/// <value>List of default attributes</value>
+    /// <value>List of default attributes</value>
     public Eina.List<Efl.Access.TextAttribute> DefaultAttributes {
         get { return GetDefaultAttributes(); }
     }
     /// <summary>Character count</summary>
-/// <value>Character count</value>
+    /// <value>Character count</value>
     public int CharacterCount {
         get { return GetCharacterCount(); }
     }
     /// <summary>Selection count property</summary>
-/// <value>Selection counter</value>
+    /// <value>Selection counter</value>
     public int SelectionsCount {
         get { return GetSelectionsCount(); }
     }
@@ -945,7 +798,7 @@ IText
             return Efl.Access.ITextConcrete.efl_access_text_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Unicode efl_access_text_character_get_delegate(System.IntPtr obj, System.IntPtr pd,  int offset);
@@ -958,13 +811,13 @@ IText
         private static Eina.Unicode character_get(System.IntPtr obj, System.IntPtr pd, int offset)
         {
             Eina.Log.Debug("function efl_access_text_character_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Unicode _ret_var = default(Eina.Unicode);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetCharacter(offset);
+                    _ret_var = ((IText)ws.Target).GetCharacter(offset);
                 }
                 catch (Exception e)
                 {
@@ -994,15 +847,15 @@ IText
         private static System.String string_get(System.IntPtr obj, System.IntPtr pd, Efl.Access.TextGranularity granularity, System.IntPtr start_offset, System.IntPtr end_offset)
         {
             Eina.Log.Debug("function efl_access_text_string_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 var _in_start_offset = Eina.PrimitiveConversion.PointerToManaged<int>(start_offset);
         var _in_end_offset = Eina.PrimitiveConversion.PointerToManaged<int>(end_offset);
                                                             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetString(granularity, _in_start_offset, _in_end_offset);
+                    _ret_var = ((IText)ws.Target).GetString(granularity, _in_start_offset, _in_end_offset);
                 }
                 catch (Exception e)
                 {
@@ -1032,13 +885,13 @@ IText
         private static System.String access_text_get(System.IntPtr obj, System.IntPtr pd, int start_offset, int end_offset)
         {
             Eina.Log.Debug("function efl_access_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetAccessText(start_offset, end_offset);
+                    _ret_var = ((IText)ws.Target).GetAccessText(start_offset, end_offset);
                 }
                 catch (Exception e)
                 {
@@ -1068,13 +921,13 @@ IText
         private static int caret_offset_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_text_caret_offset_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetCaretOffset();
+                    _ret_var = ((IText)ws.Target).GetCaretOffset();
                 }
                 catch (Exception e)
                 {
@@ -1104,13 +957,13 @@ IText
         private static bool caret_offset_set(System.IntPtr obj, System.IntPtr pd, int offset)
         {
             Eina.Log.Debug("function efl_access_text_caret_offset_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).SetCaretOffset(offset);
+                    _ret_var = ((IText)ws.Target).SetCaretOffset(offset);
                 }
                 catch (Exception e)
                 {
@@ -1140,15 +993,15 @@ IText
         private static bool attribute_get(System.IntPtr obj, System.IntPtr pd, System.String name, System.IntPtr start_offset, System.IntPtr end_offset, out System.String value)
         {
             Eina.Log.Debug("function efl_access_text_attribute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 var _in_start_offset = Eina.PrimitiveConversion.PointerToManaged<int>(start_offset);
         var _in_end_offset = Eina.PrimitiveConversion.PointerToManaged<int>(end_offset);
                                         value = default(System.String);                                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetAttribute(name, _in_start_offset, _in_end_offset, out value);
+                    _ret_var = ((IText)ws.Target).GetAttribute(name, _in_start_offset, _in_end_offset, out value);
                 }
                 catch (Exception e)
                 {
@@ -1178,15 +1031,15 @@ IText
         private static System.IntPtr text_attributes_get(System.IntPtr obj, System.IntPtr pd, System.IntPtr start_offset, System.IntPtr end_offset)
         {
             Eina.Log.Debug("function efl_access_text_attributes_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_start_offset = Eina.PrimitiveConversion.PointerToManaged<int>(start_offset);
         var _in_end_offset = Eina.PrimitiveConversion.PointerToManaged<int>(end_offset);
                                             Eina.List<Efl.Access.TextAttribute> _ret_var = default(Eina.List<Efl.Access.TextAttribute>);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetTextAttributes(_in_start_offset, _in_end_offset);
+                    _ret_var = ((IText)ws.Target).GetTextAttributes(_in_start_offset, _in_end_offset);
                 }
                 catch (Exception e)
                 {
@@ -1216,13 +1069,13 @@ IText
         private static System.IntPtr default_attributes_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_text_default_attributes_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Access.TextAttribute> _ret_var = default(Eina.List<Efl.Access.TextAttribute>);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetDefaultAttributes();
+                    _ret_var = ((IText)ws.Target).GetDefaultAttributes();
                 }
                 catch (Exception e)
                 {
@@ -1252,14 +1105,14 @@ IText
         private static bool character_extents_get(System.IntPtr obj, System.IntPtr pd, int offset, bool screen_coords, out Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_access_text_character_extents_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                 Eina.Rect _out_rect = default(Eina.Rect);
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetCharacterExtents(offset, screen_coords, out _out_rect);
+                    _ret_var = ((IText)ws.Target).GetCharacterExtents(offset, screen_coords, out _out_rect);
                 }
                 catch (Exception e)
                 {
@@ -1290,13 +1143,13 @@ IText
         private static int character_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_text_character_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetCharacterCount();
+                    _ret_var = ((IText)ws.Target).GetCharacterCount();
                 }
                 catch (Exception e)
                 {
@@ -1326,13 +1179,13 @@ IText
         private static int offset_at_point_get(System.IntPtr obj, System.IntPtr pd, bool screen_coords, int x, int y)
         {
             Eina.Log.Debug("function efl_access_text_offset_at_point_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetOffsetAtPoint(screen_coords, x, y);
+                    _ret_var = ((IText)ws.Target).GetOffsetAtPoint(screen_coords, x, y);
                 }
                 catch (Exception e)
                 {
@@ -1362,14 +1215,14 @@ IText
         private static System.IntPtr bounded_ranges_get(System.IntPtr obj, System.IntPtr pd, bool screen_coords, Eina.Rect.NativeStruct rect, Efl.Access.TextClipType xclip, Efl.Access.TextClipType yclip)
         {
             Eina.Log.Debug("function efl_access_text_bounded_ranges_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Rect _in_rect = rect;
                                                                                             Eina.List<Efl.Access.TextRange> _ret_var = default(Eina.List<Efl.Access.TextRange>);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetBoundedRanges(screen_coords, _in_rect, xclip, yclip);
+                    _ret_var = ((IText)ws.Target).GetBoundedRanges(screen_coords, _in_rect, xclip, yclip);
                 }
                 catch (Exception e)
                 {
@@ -1399,14 +1252,14 @@ IText
         private static bool range_extents_get(System.IntPtr obj, System.IntPtr pd, bool screen_coords, int start_offset, int end_offset, out Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_access_text_range_extents_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                 Eina.Rect _out_rect = default(Eina.Rect);
                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetRangeExtents(screen_coords, start_offset, end_offset, out _out_rect);
+                    _ret_var = ((IText)ws.Target).GetRangeExtents(screen_coords, start_offset, end_offset, out _out_rect);
                 }
                 catch (Exception e)
                 {
@@ -1437,13 +1290,13 @@ IText
         private static int selections_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_text_selections_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetSelectionsCount();
+                    _ret_var = ((IText)ws.Target).GetSelectionsCount();
                 }
                 catch (Exception e)
                 {
@@ -1473,13 +1326,13 @@ IText
         private static void access_selection_get(System.IntPtr obj, System.IntPtr pd, int selection_number, out int start_offset, out int end_offset)
         {
             Eina.Log.Debug("function efl_access_text_access_selection_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         start_offset = default(int);        end_offset = default(int);                                    
                 try
                 {
-                    ((IText)wrapper).GetAccessSelection(selection_number, out start_offset, out end_offset);
+                    ((IText)ws.Target).GetAccessSelection(selection_number, out start_offset, out end_offset);
                 }
                 catch (Exception e)
                 {
@@ -1508,13 +1361,13 @@ IText
         private static bool access_selection_set(System.IntPtr obj, System.IntPtr pd, int selection_number, int start_offset, int end_offset)
         {
             Eina.Log.Debug("function efl_access_text_access_selection_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).SetAccessSelection(selection_number, start_offset, end_offset);
+                    _ret_var = ((IText)ws.Target).SetAccessSelection(selection_number, start_offset, end_offset);
                 }
                 catch (Exception e)
                 {
@@ -1544,13 +1397,13 @@ IText
         private static bool selection_add(System.IntPtr obj, System.IntPtr pd, int start_offset, int end_offset)
         {
             Eina.Log.Debug("function efl_access_text_selection_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).AddSelection(start_offset, end_offset);
+                    _ret_var = ((IText)ws.Target).AddSelection(start_offset, end_offset);
                 }
                 catch (Exception e)
                 {
@@ -1580,13 +1433,13 @@ IText
         private static bool selection_remove(System.IntPtr obj, System.IntPtr pd, int selection_number)
         {
             Eina.Log.Debug("function efl_access_text_selection_remove was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IText)wrapper).SelectionRemove(selection_number);
+                    _ret_var = ((IText)ws.Target).SelectionRemove(selection_number);
                 }
                 catch (Exception e)
                 {
@@ -1605,7 +1458,7 @@ IText
 
         private static efl_access_text_selection_remove_delegate efl_access_text_selection_remove_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -1678,12 +1531,16 @@ public struct TextAttribute
         this.Value = Value;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator TextAttribute(IntPtr ptr)
     {
         var tmp = (TextAttribute.NativeStruct)Marshal.PtrToStructure(ptr, typeof(TextAttribute.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct TextAttribute.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1712,6 +1569,8 @@ public struct TextAttribute
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -1743,12 +1602,16 @@ public struct TextRange
         this.Content = Content;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator TextRange(IntPtr ptr)
     {
         var tmp = (TextRange.NativeStruct)Marshal.PtrToStructure(ptr, typeof(TextRange.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct TextRange.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1781,6 +1644,8 @@ public struct TextRange
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -1816,12 +1681,16 @@ public struct TextChangeInfo
         this.Len = Len;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator TextChangeInfo(IntPtr ptr)
     {
         var tmp = (TextChangeInfo.NativeStruct)Marshal.PtrToStructure(ptr, typeof(TextChangeInfo.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct TextChangeInfo.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1858,6 +1727,8 @@ public struct TextChangeInfo
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index af29a34..60ac72b 100644 (file)
@@ -32,19 +32,19 @@ void GetRange(out double lower_limit, out double upper_limit, out System.String
 /// <returns>Minimal incrementation value</returns>
 double GetIncrement();
                     /// <summary>Gets an minimal incrementation value</summary>
-/// <value>Minimal incrementation value</value>
+    /// <value>Minimal incrementation value</value>
     double Increment {
         get ;
     }
 }
 /// <summary>Elementary Access value interface</summary>
-sealed public class IValueConcrete : 
-
-IValue
+sealed public class IValueConcrete :
+    Efl.Eo.EoWrapper
+    , IValue
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -59,86 +59,12 @@ IValue
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_access_value_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IValue"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IValueConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IValueConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IValueConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Gets value displayed by a accessible widget.</summary>
@@ -173,7 +99,7 @@ IValue
         return _ret_var;
  }
     /// <summary>Gets an minimal incrementation value</summary>
-/// <value>Minimal incrementation value</value>
+    /// <value>Minimal incrementation value</value>
     public double Increment {
         get { return GetIncrement(); }
     }
@@ -242,7 +168,7 @@ IValue
             return Efl.Access.IValueConcrete.efl_access_value_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_access_value_and_text_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double value, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String text);
@@ -255,14 +181,14 @@ IValue
         private static void value_and_text_get(System.IntPtr obj, System.IntPtr pd, out double value, out System.String text)
         {
             Eina.Log.Debug("function efl_access_value_and_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         value = default(double);        System.String _out_text = default(System.String);
                             
                 try
                 {
-                    ((IValue)wrapper).GetValueAndText(out value, out _out_text);
+                    ((IValue)ws.Target).GetValueAndText(out value, out _out_text);
                 }
                 catch (Exception e)
                 {
@@ -292,13 +218,13 @@ IValue
         private static bool value_and_text_set(System.IntPtr obj, System.IntPtr pd, double value, System.String text)
         {
             Eina.Log.Debug("function efl_access_value_and_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IValue)wrapper).SetValueAndText(value, text);
+                    _ret_var = ((IValue)ws.Target).SetValueAndText(value, text);
                 }
                 catch (Exception e)
                 {
@@ -328,14 +254,14 @@ IValue
         private static void range_get(System.IntPtr obj, System.IntPtr pd, out double lower_limit, out double upper_limit, out System.String description)
         {
             Eina.Log.Debug("function efl_access_value_range_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 lower_limit = default(double);        upper_limit = default(double);        System.String _out_description = default(System.String);
                                     
                 try
                 {
-                    ((IValue)wrapper).GetRange(out lower_limit, out upper_limit, out _out_description);
+                    ((IValue)ws.Target).GetRange(out lower_limit, out upper_limit, out _out_description);
                 }
                 catch (Exception e)
                 {
@@ -365,13 +291,13 @@ IValue
         private static double increment_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_value_increment_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IValue)wrapper).GetIncrement();
+                    _ret_var = ((IValue)ws.Target).GetIncrement();
                 }
                 catch (Exception e)
                 {
@@ -390,7 +316,7 @@ IValue
 
         private static efl_access_value_increment_get_delegate efl_access_value_increment_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 54cac34..af79fd5 100644 (file)
@@ -22,19 +22,19 @@ public interface IAction :
 Efl.Access.ActionData GetElmActions();
         event EventHandler ReadingStateChangedEvt;
     /// <summary>Elementary actions</summary>
-/// <value>NULL-terminated array of Efl.Access.Action_Data.</value>
+    /// <value>NULL-terminated array of Efl.Access.Action_Data.</value>
     Efl.Access.ActionData ElmActions {
         get ;
     }
 }
 /// <summary>Access widget action mixin</summary>
-sealed public class IActionConcrete : 
-
-IAction
+sealed public class IActionConcrete :
+    Efl.Eo.EoWrapper
+    , IAction
     , Efl.Access.IAction
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -49,155 +49,12 @@ IAction
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_access_widget_action_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IAction"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IActionConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IActionConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IActionConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     public event EventHandler ReadingStateChangedEvt
@@ -206,10 +63,9 @@ IAction
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -299,12 +155,12 @@ IAction
                         return _ret_var;
  }
     /// <summary>Elementary actions</summary>
-/// <value>NULL-terminated array of Efl.Access.Action_Data.</value>
+    /// <value>NULL-terminated array of Efl.Access.Action_Data.</value>
     public Efl.Access.ActionData ElmActions {
         get { return GetElmActions(); }
     }
     /// <summary>Get list of available widget actions</summary>
-/// <value>Contains statically allocated strings.</value>
+    /// <value>Contains statically allocated strings.</value>
     public Eina.List<Efl.Access.ActionData> Actions {
         get { return GetActions(); }
     }
@@ -393,7 +249,7 @@ IAction
             return Efl.Access.Widget.IActionConcrete.efl_access_widget_action_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Access.ActionData efl_access_widget_action_elm_actions_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -406,13 +262,13 @@ IAction
         private static Efl.Access.ActionData elm_actions_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_widget_action_elm_actions_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.ActionData _ret_var = default(Efl.Access.ActionData);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).GetElmActions();
+                    _ret_var = ((IActionConcrete)ws.Target).GetElmActions();
                 }
                 catch (Exception e)
                 {
@@ -442,13 +298,13 @@ IAction
         private static System.String action_name_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).GetActionName(id);
+                    _ret_var = ((IActionConcrete)ws.Target).GetActionName(id);
                 }
                 catch (Exception e)
                 {
@@ -478,13 +334,13 @@ IAction
         private static System.String action_localized_name_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_localized_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).GetActionLocalizedName(id);
+                    _ret_var = ((IActionConcrete)ws.Target).GetActionLocalizedName(id);
                 }
                 catch (Exception e)
                 {
@@ -514,13 +370,13 @@ IAction
         private static System.IntPtr actions_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_action_actions_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Access.ActionData> _ret_var = default(Eina.List<Efl.Access.ActionData>);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).GetActions();
+                    _ret_var = ((IActionConcrete)ws.Target).GetActions();
                 }
                 catch (Exception e)
                 {
@@ -550,13 +406,13 @@ IAction
         private static bool action_do(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_do was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).ActionDo(id);
+                    _ret_var = ((IActionConcrete)ws.Target).ActionDo(id);
                 }
                 catch (Exception e)
                 {
@@ -586,13 +442,13 @@ IAction
         private static System.String action_keybinding_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_keybinding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IActionConcrete)wrapper).GetActionKeybinding(id);
+                    _ret_var = ((IActionConcrete)ws.Target).GetActionKeybinding(id);
                 }
                 catch (Exception e)
                 {
@@ -611,7 +467,7 @@ IAction
 
         private static efl_access_action_keybinding_get_delegate efl_access_action_keybinding_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3604cb9..ef97aa4 100644 (file)
@@ -30,13 +30,13 @@ public interface IWindow :
     event EventHandler WindowRestoredEvt;
 }
 /// <summary>Elementary accessible window interface</summary>
-sealed public class IWindowConcrete : 
-
-IWindow
+sealed public class IWindowConcrete :
+    Efl.Eo.EoWrapper
+    , IWindow
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -51,155 +51,12 @@ IWindow
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_access_window_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IWindow"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IWindowConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IWindowConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
+    private IWindowConcrete(System.IntPtr raw) : base(raw)
     {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when new window has been created.</summary>
@@ -209,10 +66,9 @@ IWindow
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -262,10 +118,9 @@ IWindow
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -315,10 +170,9 @@ IWindow
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -368,10 +222,9 @@ IWindow
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -421,10 +274,9 @@ IWindow
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -474,10 +326,9 @@ IWindow
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -527,10 +378,9 @@ IWindow
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -595,9 +445,9 @@ IWindow
             return Efl.Access.IWindowConcrete.efl_access_window_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 7e7e9a0..ba89a83 100644 (file)
@@ -23,7 +23,6 @@ static class UnsafeNativeMethods
     private static Efl.Eo.FunctionWrapper<init_func_delegate> _evas_init;
     [DllImport(efl.Libs.Evas)] public static extern void evas_shutdown();
     [DllImport(efl.Libs.Elementary)] public static extern int elm_init(int argc, IntPtr argv);
-    [DllImport(efl.Libs.Elementary)] public static extern void elm_policy_set(int policy, int policy_detail);
     [DllImport(efl.Libs.Elementary)] public static extern void elm_shutdown();
     [DllImport(efl.Libs.Elementary)] public static extern void elm_run();
     [DllImport(efl.Libs.Elementary)] public static extern void elm_exit();
@@ -73,8 +72,12 @@ public static class All
     {
         // Try to cleanup everything before actually shutting down.
         Eina.Log.Debug("Calling GC before shutdown");
-        System.GC.Collect();
-        System.GC.WaitForPendingFinalizers();
+        for (int i = 0; i < 3; i++)
+        {
+            System.GC.Collect();
+            System.GC.WaitForPendingFinalizers();
+            Efl.App.AppMain.Iterate();
+        }
 
         Monitor.Enter(InitLock);
         MainLoopInitialized = false;
@@ -117,11 +120,12 @@ public static class Config
 #endif
         elm_init(0, IntPtr.Zero);
 
-        elm_policy_set((int)Elm.Policy.Quit, (int)Elm.PolicyQuit.LastWindowHidden);
 
         // TIZEN_ONLY(20190425) Use efl-sharp-theme.edj on EflSharp
         Efl.Ui.Theme.GetDefault().AddOverlay("/usr/share/efl-sharp/efl-sharp-theme.edj");
         //
+
+        Efl.Ui.Win.ExitOnAllWindowsClosed = new Eina.Value(0);
     }
 
     public static void Shutdown()
index 6d226b6..b86e3ed 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 /// <summary>Object representing the application itself.
 /// (Since EFL 1.22)</summary>
 [Efl.App.NativeMethods]
-public abstract class App : Efl.Loop, Efl.Eo.IWrapper,Efl.Core.ICommandLine
+public abstract class App : Efl.Loop, Efl.Core.ICommandLine
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -43,7 +43,7 @@ public abstract class App : Efl.Loop, Efl.Eo.IWrapper,Efl.Core.ICommandLine
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected App(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class AppRealized : App
@@ -61,33 +61,6 @@ public abstract class App : Efl.Loop, Efl.Eo.IWrapper,Efl.Core.ICommandLine
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when the application is not going be displayed or otherwise used by a user for some time
     /// (Since EFL 1.22)</summary>
     public event EventHandler PauseEvt
@@ -96,10 +69,9 @@ public abstract class App : Efl.Loop, Efl.Eo.IWrapper,Efl.Core.ICommandLine
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -150,10 +122,9 @@ public abstract class App : Efl.Loop, Efl.Eo.IWrapper,Efl.Core.ICommandLine
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -204,10 +175,9 @@ public abstract class App : Efl.Loop, Efl.Eo.IWrapper,Efl.Core.ICommandLine
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -258,10 +228,9 @@ public abstract class App : Efl.Loop, Efl.Eo.IWrapper,Efl.Core.ICommandLine
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -312,10 +281,9 @@ public abstract class App : Efl.Loop, Efl.Eo.IWrapper,Efl.Core.ICommandLine
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -366,10 +334,9 @@ public abstract class App : Efl.Loop, Efl.Eo.IWrapper,Efl.Core.ICommandLine
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -420,10 +387,9 @@ public abstract class App : Efl.Loop, Efl.Eo.IWrapper,Efl.Core.ICommandLine
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -538,46 +504,46 @@ array.OwnContent = false;
         return new Eina.Accessor<System.String>(_ret_var, false, false);
  }
     /// <summary>Returns the app object that is representing this process
-/// Note: This function call only works in the main loop thread of the process.
-/// (Since EFL 1.22)</summary>
-/// <value>Application for this process</value>
+    /// Note: This function call only works in the main loop thread of the process.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Application for this process</value>
     public static Efl.App AppMain {
         get { return GetAppMain(); }
     }
     /// <summary>Indicates the version of EFL with which this application was compiled against/for.
-/// This might differ from <see cref="Efl.App.GetEflVersion"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>Efl build version</value>
+    /// This might differ from <see cref="Efl.App.GetEflVersion"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Efl build version</value>
     public Efl.Version BuildEflVersion {
         get { return GetBuildEflVersion(); }
     }
     /// <summary>Indicates the currently running version of EFL.
-/// This might differ from <see cref="Efl.App.GetBuildEflVersion"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>Efl version</value>
+    /// This might differ from <see cref="Efl.App.GetBuildEflVersion"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Efl version</value>
     public Efl.Version EflVersion {
         get { return GetEflVersion(); }
     }
     /// <summary>A commandline that encodes arguments in a command string. This command is unix shell-style, thus whitespace separates arguments unless escaped. Also a semi-colon &apos;;&apos;, ampersand &apos;&amp;&apos;, pipe/bar &apos;|&apos;, hash &apos;#&apos;, bracket, square brace, brace character (&apos;(&apos;, &apos;)&apos;, &apos;[&apos;, &apos;]&apos;, &apos;{&apos;, &apos;}&apos;), exclamation mark &apos;!&apos;,  backquote &apos;`&apos;, greator or less than (&apos;&gt;&apos; &apos;&lt;&apos;) character unless escaped or in quotes would cause args_count/value to not be generated properly, because it would force complex shell interpretation which will not be supported in evaluating the arg_count/value information, but the final shell may interpret this if this is executed via a command-line shell. To not be a complex shell command, it should be simple with paths, options and variable expansions, but nothing more complex involving the above unescaped characters.
-/// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
-/// 
-/// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
-/// 
-/// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
-/// 
-/// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
+    /// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
+    /// 
+    /// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
+    /// 
+    /// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
+    /// 
+    /// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
     public System.String Command {
         get { return GetCommand(); }
     }
     /// <summary>Use an array to fill this object
-/// Every element of a string is a argument.</summary>
-/// <value>An array where every array field is an argument</value>
+    /// Every element of a string is a argument.</summary>
+    /// <value>An array where every array field is an argument</value>
     public Eina.Array<System.String> CommandArray {
         set { SetCommandArray(value); }
     }
     /// <summary>Use a string to fill this object
-/// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
-/// <value>A command in form of a string</value>
+    /// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
+    /// <value>A command in form of a string</value>
     public System.String CommandString {
         set { SetCommandString(value); }
     }
@@ -667,7 +633,7 @@ array.OwnContent = false;
             return Efl.App.efl_app_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.App efl_app_main_get_delegate();
@@ -680,8 +646,8 @@ array.OwnContent = false;
         private static Efl.App app_main_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_app_main_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.App _ret_var = default(Efl.App);
                 try
@@ -714,13 +680,13 @@ array.OwnContent = false;
         private static System.IntPtr build_efl_version_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_app_build_efl_version_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Version _ret_var = default(Efl.Version);
                 try
                 {
-                    _ret_var = ((App)wrapper).GetBuildEflVersion();
+                    _ret_var = ((App)ws.Target).GetBuildEflVersion();
                 }
                 catch (Exception e)
                 {
@@ -750,13 +716,13 @@ array.OwnContent = false;
         private static System.IntPtr efl_version_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_app_efl_version_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Version _ret_var = default(Efl.Version);
                 try
                 {
-                    _ret_var = ((App)wrapper).GetEflVersion();
+                    _ret_var = ((App)ws.Target).GetEflVersion();
                 }
                 catch (Exception e)
                 {
@@ -786,13 +752,13 @@ array.OwnContent = false;
         private static System.String command_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_command_line_command_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((App)wrapper).GetCommand();
+                    _ret_var = ((App)ws.Target).GetCommand();
                 }
                 catch (Exception e)
                 {
@@ -822,14 +788,14 @@ array.OwnContent = false;
         private static bool command_array_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr array)
         {
             Eina.Log.Debug("function efl_core_command_line_command_array_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_array = new Eina.Array<System.String>(array, true, true);
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((App)wrapper).SetCommandArray(_in_array);
+                    _ret_var = ((App)ws.Target).SetCommandArray(_in_array);
                 }
                 catch (Exception e)
                 {
@@ -859,13 +825,13 @@ array.OwnContent = false;
         private static bool command_string_set(System.IntPtr obj, System.IntPtr pd, System.String str)
         {
             Eina.Log.Debug("function efl_core_command_line_command_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((App)wrapper).SetCommandString(str);
+                    _ret_var = ((App)ws.Target).SetCommandString(str);
                 }
                 catch (Exception e)
                 {
@@ -895,13 +861,13 @@ array.OwnContent = false;
         private static System.IntPtr command_access(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_command_line_command_access was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Accessor<System.String> _ret_var = default(Eina.Accessor<System.String>);
                 try
                 {
-                    _ret_var = ((App)wrapper).CommandAccess();
+                    _ret_var = ((App)ws.Target).CommandAccess();
                 }
                 catch (Exception e)
                 {
@@ -920,7 +886,7 @@ array.OwnContent = false;
 
         private static efl_core_command_line_command_access_delegate efl_core_command_line_command_access_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 4046e20..3e9d6bb 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>No description supplied.</summary>
 [Efl.Appthread.NativeMethods]
-public class Appthread : Efl.Loop, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.ICommandLine,Efl.Io.ICloser,Efl.Io.IReader,Efl.Io.IWriter
+public class Appthread : Efl.Loop, Efl.IThreadIO, Efl.Core.ICommandLine, Efl.Io.ICloser, Efl.Io.IReader, Efl.Io.IWriter
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class Appthread : Efl.Loop, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.IComma
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Appthread(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Appthread"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class Appthread : Efl.Loop, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.IComma
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Notifies closed, when property is marked as true
     /// (Since EFL 1.22)</summary>
     public event EventHandler ClosedEvt
@@ -88,10 +61,9 @@ public class Appthread : Efl.Loop, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.IComma
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -145,14 +117,13 @@ public class Appthread : Efl.Loop, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.IComma
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -213,10 +184,9 @@ public class Appthread : Efl.Loop, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.IComma
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -270,14 +240,13 @@ public class Appthread : Efl.Loop, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.IComma
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -536,67 +505,67 @@ array.OwnContent = false;
         set { SetOutdata(value); }
     }
     /// <summary>A commandline that encodes arguments in a command string. This command is unix shell-style, thus whitespace separates arguments unless escaped. Also a semi-colon &apos;;&apos;, ampersand &apos;&amp;&apos;, pipe/bar &apos;|&apos;, hash &apos;#&apos;, bracket, square brace, brace character (&apos;(&apos;, &apos;)&apos;, &apos;[&apos;, &apos;]&apos;, &apos;{&apos;, &apos;}&apos;), exclamation mark &apos;!&apos;,  backquote &apos;`&apos;, greator or less than (&apos;&gt;&apos; &apos;&lt;&apos;) character unless escaped or in quotes would cause args_count/value to not be generated properly, because it would force complex shell interpretation which will not be supported in evaluating the arg_count/value information, but the final shell may interpret this if this is executed via a command-line shell. To not be a complex shell command, it should be simple with paths, options and variable expansions, but nothing more complex involving the above unescaped characters.
-/// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
-/// 
-/// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
-/// 
-/// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
-/// 
-/// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
+    /// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
+    /// 
+    /// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
+    /// 
+    /// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
+    /// 
+    /// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
     public System.String Command {
         get { return GetCommand(); }
     }
     /// <summary>Use an array to fill this object
-/// Every element of a string is a argument.</summary>
-/// <value>An array where every array field is an argument</value>
+    /// Every element of a string is a argument.</summary>
+    /// <value>An array where every array field is an argument</value>
     public Eina.Array<System.String> CommandArray {
         set { SetCommandArray(value); }
     }
     /// <summary>Use a string to fill this object
-/// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
-/// <value>A command in form of a string</value>
+    /// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
+    /// <value>A command in form of a string</value>
     public System.String CommandString {
         set { SetCommandString(value); }
     }
     /// <summary>If true will notify object was closed.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if closed, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if closed, <c>false</c> otherwise</value>
     public bool Closed {
         get { return GetClosed(); }
     }
     /// <summary>If true will automatically close resources on exec() calls.
-/// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
+    /// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
     public bool CloseOnExec {
         get { return GetCloseOnExec(); }
         set { SetCloseOnExec(value); }
     }
     /// <summary>If true will automatically close() on object invalidate.
-/// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
+    /// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
     public bool CloseOnInvalidate {
         get { return GetCloseOnInvalidate(); }
         set { SetCloseOnInvalidate(value); }
     }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IReader.Read"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
     public bool CanRead {
         get { return GetCanRead(); }
         set { SetCanRead(value); }
     }
     /// <summary>If <c>true</c> will notify end of stream.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
     public bool Eos {
         get { return GetEos(); }
         set { SetEos(value); }
     }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IWriter.Write"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
     public bool CanWrite {
         get { return GetCanWrite(); }
         set { SetCanWrite(value); }
@@ -867,7 +836,7 @@ array.OwnContent = false;
             return Efl.Appthread.efl_appthread_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_threadio_indata_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -880,13 +849,13 @@ array.OwnContent = false;
         private static System.IntPtr indata_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_threadio_indata_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).GetIndata();
+                    _ret_var = ((Appthread)ws.Target).GetIndata();
                 }
                 catch (Exception e)
                 {
@@ -916,13 +885,13 @@ array.OwnContent = false;
         private static void indata_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_threadio_indata_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Appthread)wrapper).SetIndata(data);
+                    ((Appthread)ws.Target).SetIndata(data);
                 }
                 catch (Exception e)
                 {
@@ -951,13 +920,13 @@ array.OwnContent = false;
         private static System.IntPtr outdata_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_threadio_outdata_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).GetOutdata();
+                    _ret_var = ((Appthread)ws.Target).GetOutdata();
                 }
                 catch (Exception e)
                 {
@@ -987,13 +956,13 @@ array.OwnContent = false;
         private static void outdata_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_threadio_outdata_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Appthread)wrapper).SetOutdata(data);
+                    ((Appthread)ws.Target).SetOutdata(data);
                 }
                 catch (Exception e)
                 {
@@ -1022,14 +991,14 @@ array.OwnContent = false;
         private static void call(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, EFlThreadIOCallInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_threadio_call was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                             EFlThreadIOCallWrapper func_wrapper = new EFlThreadIOCallWrapper(func, func_data, func_free_cb);
             
                 try
                 {
-                    ((Appthread)wrapper).Call(func_wrapper.ManagedCb);
+                    ((Appthread)ws.Target).Call(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -1058,14 +1027,14 @@ array.OwnContent = false;
         private static System.IntPtr call_sync(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, EFlThreadIOCallSyncInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_threadio_call_sync was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                             EFlThreadIOCallSyncWrapper func_wrapper = new EFlThreadIOCallSyncWrapper(func, func_data, func_free_cb);
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).CallSync(func_wrapper.ManagedCb);
+                    _ret_var = ((Appthread)ws.Target).CallSync(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -1095,13 +1064,13 @@ array.OwnContent = false;
         private static System.String command_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_command_line_command_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).GetCommand();
+                    _ret_var = ((Appthread)ws.Target).GetCommand();
                 }
                 catch (Exception e)
                 {
@@ -1131,14 +1100,14 @@ array.OwnContent = false;
         private static bool command_array_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr array)
         {
             Eina.Log.Debug("function efl_core_command_line_command_array_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_array = new Eina.Array<System.String>(array, true, true);
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).SetCommandArray(_in_array);
+                    _ret_var = ((Appthread)ws.Target).SetCommandArray(_in_array);
                 }
                 catch (Exception e)
                 {
@@ -1168,13 +1137,13 @@ array.OwnContent = false;
         private static bool command_string_set(System.IntPtr obj, System.IntPtr pd, System.String str)
         {
             Eina.Log.Debug("function efl_core_command_line_command_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).SetCommandString(str);
+                    _ret_var = ((Appthread)ws.Target).SetCommandString(str);
                 }
                 catch (Exception e)
                 {
@@ -1204,13 +1173,13 @@ array.OwnContent = false;
         private static System.IntPtr command_access(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_command_line_command_access was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Accessor<System.String> _ret_var = default(Eina.Accessor<System.String>);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).CommandAccess();
+                    _ret_var = ((Appthread)ws.Target).CommandAccess();
                 }
                 catch (Exception e)
                 {
@@ -1240,13 +1209,13 @@ array.OwnContent = false;
         private static bool closed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_closed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).GetClosed();
+                    _ret_var = ((Appthread)ws.Target).GetClosed();
                 }
                 catch (Exception e)
                 {
@@ -1276,13 +1245,13 @@ array.OwnContent = false;
         private static bool close_on_exec_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).GetCloseOnExec();
+                    _ret_var = ((Appthread)ws.Target).GetCloseOnExec();
                 }
                 catch (Exception e)
                 {
@@ -1312,13 +1281,13 @@ array.OwnContent = false;
         private static bool close_on_exec_set(System.IntPtr obj, System.IntPtr pd, bool close_on_exec)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).SetCloseOnExec(close_on_exec);
+                    _ret_var = ((Appthread)ws.Target).SetCloseOnExec(close_on_exec);
                 }
                 catch (Exception e)
                 {
@@ -1348,13 +1317,13 @@ array.OwnContent = false;
         private static bool close_on_invalidate_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).GetCloseOnInvalidate();
+                    _ret_var = ((Appthread)ws.Target).GetCloseOnInvalidate();
                 }
                 catch (Exception e)
                 {
@@ -1384,13 +1353,13 @@ array.OwnContent = false;
         private static void close_on_invalidate_set(System.IntPtr obj, System.IntPtr pd, bool close_on_invalidate)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Appthread)wrapper).SetCloseOnInvalidate(close_on_invalidate);
+                    ((Appthread)ws.Target).SetCloseOnInvalidate(close_on_invalidate);
                 }
                 catch (Exception e)
                 {
@@ -1419,13 +1388,13 @@ array.OwnContent = false;
         private static Eina.Error close(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).Close();
+                    _ret_var = ((Appthread)ws.Target).Close();
                 }
                 catch (Exception e)
                 {
@@ -1455,13 +1424,13 @@ array.OwnContent = false;
         private static bool can_read_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).GetCanRead();
+                    _ret_var = ((Appthread)ws.Target).GetCanRead();
                 }
                 catch (Exception e)
                 {
@@ -1491,13 +1460,13 @@ array.OwnContent = false;
         private static void can_read_set(System.IntPtr obj, System.IntPtr pd, bool can_read)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Appthread)wrapper).SetCanRead(can_read);
+                    ((Appthread)ws.Target).SetCanRead(can_read);
                 }
                 catch (Exception e)
                 {
@@ -1526,13 +1495,13 @@ array.OwnContent = false;
         private static bool eos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_eos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).GetEos();
+                    _ret_var = ((Appthread)ws.Target).GetEos();
                 }
                 catch (Exception e)
                 {
@@ -1562,13 +1531,13 @@ array.OwnContent = false;
         private static void eos_set(System.IntPtr obj, System.IntPtr pd, bool is_eos)
         {
             Eina.Log.Debug("function efl_io_reader_eos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Appthread)wrapper).SetEos(is_eos);
+                    ((Appthread)ws.Target).SetEos(is_eos);
                 }
                 catch (Exception e)
                 {
@@ -1597,13 +1566,13 @@ array.OwnContent = false;
         private static Eina.Error read(System.IntPtr obj, System.IntPtr pd, ref Eina.RwSlice rw_slice)
         {
             Eina.Log.Debug("function efl_io_reader_read was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).Read(ref rw_slice);
+                    _ret_var = ((Appthread)ws.Target).Read(ref rw_slice);
                 }
                 catch (Exception e)
                 {
@@ -1633,13 +1602,13 @@ array.OwnContent = false;
         private static bool can_write_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).GetCanWrite();
+                    _ret_var = ((Appthread)ws.Target).GetCanWrite();
                 }
                 catch (Exception e)
                 {
@@ -1669,13 +1638,13 @@ array.OwnContent = false;
         private static void can_write_set(System.IntPtr obj, System.IntPtr pd, bool can_write)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Appthread)wrapper).SetCanWrite(can_write);
+                    ((Appthread)ws.Target).SetCanWrite(can_write);
                 }
                 catch (Exception e)
                 {
@@ -1704,13 +1673,13 @@ array.OwnContent = false;
         private static Eina.Error write(System.IntPtr obj, System.IntPtr pd, ref Eina.Slice slice, ref Eina.Slice remaining)
         {
             Eina.Log.Debug("function efl_io_writer_write was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 remaining = default(Eina.Slice);                            Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Appthread)wrapper).Write(ref slice, ref remaining);
+                    _ret_var = ((Appthread)ws.Target).Write(ref slice, ref remaining);
                 }
                 catch (Exception e)
                 {
@@ -1729,7 +1698,7 @@ array.OwnContent = false;
 
         private static efl_io_writer_write_delegate efl_io_writer_write_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 05d097d..f44cdca 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>Efl boolean model class</summary>
 [Efl.BooleanModel.NativeMethods]
-public class BooleanModel : Efl.CompositeModel, Efl.Eo.IWrapper
+public class BooleanModel : Efl.CompositeModel
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -54,7 +54,7 @@ public class BooleanModel : Efl.CompositeModel, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected BooleanModel(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="BooleanModel"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -65,33 +65,6 @@ public class BooleanModel : Efl.CompositeModel, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Add a new named boolean property with a defined default value.</summary>
     virtual public void AddBoolean(System.String name, bool default_value) {
                                                          Efl.BooleanModel.NativeMethods.efl_boolean_model_boolean_add_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),name, default_value);
@@ -165,7 +138,7 @@ public class BooleanModel : Efl.CompositeModel, Efl.Eo.IWrapper
             return Efl.BooleanModel.efl_boolean_model_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_boolean_model_boolean_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name, [MarshalAs(UnmanagedType.U1)] bool default_value);
@@ -178,13 +151,13 @@ public class BooleanModel : Efl.CompositeModel, Efl.Eo.IWrapper
         private static void boolean_add(System.IntPtr obj, System.IntPtr pd, System.String name, bool default_value)
         {
             Eina.Log.Debug("function efl_boolean_model_boolean_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((BooleanModel)wrapper).AddBoolean(name, default_value);
+                    ((BooleanModel)ws.Target).AddBoolean(name, default_value);
                 }
                 catch (Exception e)
                 {
@@ -213,13 +186,13 @@ public class BooleanModel : Efl.CompositeModel, Efl.Eo.IWrapper
         private static void boolean_del(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_boolean_model_boolean_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((BooleanModel)wrapper).DelBoolean(name);
+                    ((BooleanModel)ws.Target).DelBoolean(name);
                 }
                 catch (Exception e)
                 {
@@ -248,13 +221,13 @@ public class BooleanModel : Efl.CompositeModel, Efl.Eo.IWrapper
         private static System.IntPtr boolean_iterator_get(System.IntPtr obj, System.IntPtr pd, System.String name, bool request)
         {
             Eina.Log.Debug("function efl_boolean_model_boolean_iterator_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Eina.Iterator<ulong> _ret_var = default(Eina.Iterator<ulong>);
                 try
                 {
-                    _ret_var = ((BooleanModel)wrapper).GetBooleanIterator(name, request);
+                    _ret_var = ((BooleanModel)ws.Target).GetBooleanIterator(name, request);
                 }
                 catch (Exception e)
                 {
@@ -273,7 +246,7 @@ public class BooleanModel : Efl.CompositeModel, Efl.Eo.IWrapper
 
         private static efl_boolean_model_boolean_iterator_get_delegate efl_boolean_model_boolean_iterator_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index d88739c..5322841 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>Efl bounce interpolator class</summary>
 [Efl.BounceInterpolator.NativeMethods]
-public class BounceInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
+public class BounceInterpolator : Efl.Object, Efl.IInterpolator
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class BounceInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected BounceInterpolator(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="BounceInterpolator"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class BounceInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Factors property</summary>
     /// <param name="factor1">First factor of the interpolation function.</param>
     /// <param name="factor2">Second factor of the interpolation function.</param>
@@ -158,7 +131,7 @@ public class BounceInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
             return Efl.BounceInterpolator.efl_bounce_interpolator_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_bounce_interpolator_factors_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double factor1,  out double factor2);
@@ -171,13 +144,13 @@ public class BounceInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
         private static void factors_get(System.IntPtr obj, System.IntPtr pd, out double factor1, out double factor2)
         {
             Eina.Log.Debug("function efl_bounce_interpolator_factors_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         factor1 = default(double);        factor2 = default(double);                            
                 try
                 {
-                    ((BounceInterpolator)wrapper).GetFactors(out factor1, out factor2);
+                    ((BounceInterpolator)ws.Target).GetFactors(out factor1, out factor2);
                 }
                 catch (Exception e)
                 {
@@ -206,13 +179,13 @@ public class BounceInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
         private static void factors_set(System.IntPtr obj, System.IntPtr pd, double factor1, double factor2)
         {
             Eina.Log.Debug("function efl_bounce_interpolator_factors_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((BounceInterpolator)wrapper).SetFactors(factor1, factor2);
+                    ((BounceInterpolator)ws.Target).SetFactors(factor1, factor2);
                 }
                 catch (Exception e)
                 {
@@ -241,13 +214,13 @@ public class BounceInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
         private static double interpolate(System.IntPtr obj, System.IntPtr pd, double progress)
         {
             Eina.Log.Debug("function efl_interpolator_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((BounceInterpolator)wrapper).Interpolate(progress);
+                    _ret_var = ((BounceInterpolator)ws.Target).Interpolate(progress);
                 }
                 catch (Exception e)
                 {
@@ -266,7 +239,7 @@ public class BounceInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
 
         private static efl_interpolator_interpolate_delegate efl_interpolator_interpolate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 03eb3df..0e54edc 100644 (file)
@@ -18,19 +18,19 @@ public interface IItem :
 /// <returns>Bytes of memory consumed by this object.</returns>
 uint GetMemorySize();
         /// <summary>Get the memory size associated with an object.</summary>
-/// <value>Bytes of memory consumed by this object.</value>
+    /// <value>Bytes of memory consumed by this object.</value>
     uint MemorySize {
         get ;
     }
 }
 /// <summary>Efl Cached Item interface</summary>
-sealed public class IItemConcrete : 
-
-IItem
+sealed public class IItemConcrete :
+    Efl.Eo.EoWrapper
+    , IItem
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -45,86 +45,12 @@ IItem
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_cached_item_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IItem"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IItemConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IItemConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IItemConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Get the memory size associated with an object.</summary>
@@ -135,7 +61,7 @@ IItem
         return _ret_var;
  }
     /// <summary>Get the memory size associated with an object.</summary>
-/// <value>Bytes of memory consumed by this object.</value>
+    /// <value>Bytes of memory consumed by this object.</value>
     public uint MemorySize {
         get { return GetMemorySize(); }
     }
@@ -174,7 +100,7 @@ IItem
             return Efl.Cached.IItemConcrete.efl_cached_item_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate uint efl_cached_item_memory_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -187,13 +113,13 @@ IItem
         private static uint memory_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_cached_item_memory_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((IItem)wrapper).GetMemorySize();
+                    _ret_var = ((IItem)ws.Target).GetMemorySize();
                 }
                 catch (Exception e)
                 {
@@ -212,7 +138,7 @@ IItem
 
         private static efl_cached_item_memory_size_get_delegate efl_cached_item_memory_size_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 38e9c31..7b6d68b 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Efl animation class</summary>
 [Efl.Canvas.Animation.NativeMethods]
-public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
+public class Animation : Efl.Object, Efl.IPlayable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Animation(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Animation"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Keep final state property</summary>
     /// <returns><c>true</c> to keep final state, <c>false</c> otherwise.</returns>
     virtual public bool GetFinalStateKeep() {
@@ -186,51 +159,51 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         return _ret_var;
  }
     /// <summary>Keep final state property</summary>
-/// <value><c>true</c> to keep final state, <c>false</c> otherwise.</value>
+    /// <value><c>true</c> to keep final state, <c>false</c> otherwise.</value>
     public bool FinalStateKeep {
         get { return GetFinalStateKeep(); }
         set { SetFinalStateKeep(value); }
     }
     /// <summary>Duration property</summary>
-/// <value>Duration value.</value>
+    /// <value>Duration value.</value>
     public double Duration {
         get { return GetDuration(); }
         set { SetDuration(value); }
     }
     /// <summary>Repeat mode property</summary>
-/// <value>Repeat mode. EFL_ANIMATION_REPEAT_MODE_RESTART restarts animation when the animation ends and EFL_ANIMATION_REPEAT_MODE_REVERSE reverses animation when the animation ends.</value>
+    /// <value>Repeat mode. EFL_ANIMATION_REPEAT_MODE_RESTART restarts animation when the animation ends and EFL_ANIMATION_REPEAT_MODE_REVERSE reverses animation when the animation ends.</value>
     public Efl.Canvas.AnimationRepeatMode RepeatMode {
         get { return GetRepeatMode(); }
         set { SetRepeatMode(value); }
     }
     /// <summary>Repeat count property</summary>
-/// <value>Repeat count. EFL_ANIMATION_REPEAT_INFINITE repeats animation infinitely.</value>
+    /// <value>Repeat count. EFL_ANIMATION_REPEAT_INFINITE repeats animation infinitely.</value>
     public int RepeatCount {
         get { return GetRepeatCount(); }
         set { SetRepeatCount(value); }
     }
     /// <summary>Start delay property</summary>
-/// <value>Delay time, in seconds, from when the animation starts until the animation is animated</value>
+    /// <value>Delay time, in seconds, from when the animation starts until the animation is animated</value>
     public double StartDelay {
         get { return GetStartDelay(); }
         set { SetStartDelay(value); }
     }
     /// <summary>Interpolator property</summary>
-/// <value>Interpolator which indicates interpolation function. Efl_Interpolator is required.</value>
+    /// <value>Interpolator which indicates interpolation function. Efl_Interpolator is required.</value>
     public Efl.IInterpolator Interpolator {
         get { return GetInterpolator(); }
         set { SetInterpolator(value); }
     }
     /// <summary>Get the length of play for the media file.</summary>
-/// <value>The length of the stream in seconds.</value>
+    /// <value>The length of the stream in seconds.</value>
     public double Length {
         get { return GetLength(); }
     }
-        public bool Playable {
+    public bool Playable {
         get { return GetPlayable(); }
     }
     /// <summary>Get whether the media file is seekable.</summary>
-/// <value><c>true</c> if seekable.</value>
+    /// <value><c>true</c> if seekable.</value>
     public bool Seekable {
         get { return GetSeekable(); }
     }
@@ -420,7 +393,7 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
             return Efl.Canvas.Animation.efl_canvas_animation_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_animation_final_state_keep_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -433,13 +406,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static bool final_state_keep_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_animation_final_state_keep_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Animation)wrapper).GetFinalStateKeep();
+                    _ret_var = ((Animation)ws.Target).GetFinalStateKeep();
                 }
                 catch (Exception e)
                 {
@@ -469,13 +442,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static void final_state_keep_set(System.IntPtr obj, System.IntPtr pd, bool keep)
         {
             Eina.Log.Debug("function efl_animation_final_state_keep_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Animation)wrapper).SetFinalStateKeep(keep);
+                    ((Animation)ws.Target).SetFinalStateKeep(keep);
                 }
                 catch (Exception e)
                 {
@@ -504,13 +477,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static double duration_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_animation_duration_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Animation)wrapper).GetDuration();
+                    _ret_var = ((Animation)ws.Target).GetDuration();
                 }
                 catch (Exception e)
                 {
@@ -540,13 +513,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static void duration_set(System.IntPtr obj, System.IntPtr pd, double sec)
         {
             Eina.Log.Debug("function efl_animation_duration_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Animation)wrapper).SetDuration(sec);
+                    ((Animation)ws.Target).SetDuration(sec);
                 }
                 catch (Exception e)
                 {
@@ -575,13 +548,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static Efl.Canvas.AnimationRepeatMode repeat_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_animation_repeat_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.AnimationRepeatMode _ret_var = default(Efl.Canvas.AnimationRepeatMode);
                 try
                 {
-                    _ret_var = ((Animation)wrapper).GetRepeatMode();
+                    _ret_var = ((Animation)ws.Target).GetRepeatMode();
                 }
                 catch (Exception e)
                 {
@@ -611,13 +584,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static void repeat_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.AnimationRepeatMode mode)
         {
             Eina.Log.Debug("function efl_animation_repeat_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Animation)wrapper).SetRepeatMode(mode);
+                    ((Animation)ws.Target).SetRepeatMode(mode);
                 }
                 catch (Exception e)
                 {
@@ -646,13 +619,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static int repeat_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_animation_repeat_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Animation)wrapper).GetRepeatCount();
+                    _ret_var = ((Animation)ws.Target).GetRepeatCount();
                 }
                 catch (Exception e)
                 {
@@ -682,13 +655,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static void repeat_count_set(System.IntPtr obj, System.IntPtr pd, int count)
         {
             Eina.Log.Debug("function efl_animation_repeat_count_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Animation)wrapper).SetRepeatCount(count);
+                    ((Animation)ws.Target).SetRepeatCount(count);
                 }
                 catch (Exception e)
                 {
@@ -717,13 +690,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static double start_delay_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_animation_start_delay_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Animation)wrapper).GetStartDelay();
+                    _ret_var = ((Animation)ws.Target).GetStartDelay();
                 }
                 catch (Exception e)
                 {
@@ -753,13 +726,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static void start_delay_set(System.IntPtr obj, System.IntPtr pd, double sec)
         {
             Eina.Log.Debug("function efl_animation_start_delay_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Animation)wrapper).SetStartDelay(sec);
+                    ((Animation)ws.Target).SetStartDelay(sec);
                 }
                 catch (Exception e)
                 {
@@ -788,13 +761,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static Efl.IInterpolator interpolator_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_animation_interpolator_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IInterpolator _ret_var = default(Efl.IInterpolator);
                 try
                 {
-                    _ret_var = ((Animation)wrapper).GetInterpolator();
+                    _ret_var = ((Animation)ws.Target).GetInterpolator();
                 }
                 catch (Exception e)
                 {
@@ -824,13 +797,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static void interpolator_set(System.IntPtr obj, System.IntPtr pd, Efl.IInterpolator interpolator)
         {
             Eina.Log.Debug("function efl_animation_interpolator_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Animation)wrapper).SetInterpolator(interpolator);
+                    ((Animation)ws.Target).SetInterpolator(interpolator);
                 }
                 catch (Exception e)
                 {
@@ -859,13 +832,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static double animation_apply(System.IntPtr obj, System.IntPtr pd, double progress, Efl.Canvas.Object target)
         {
             Eina.Log.Debug("function efl_animation_apply was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Animation)wrapper).AnimationApply(progress, target);
+                    _ret_var = ((Animation)ws.Target).AnimationApply(progress, target);
                 }
                 catch (Exception e)
                 {
@@ -895,13 +868,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static double length_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_playable_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Animation)wrapper).GetLength();
+                    _ret_var = ((Animation)ws.Target).GetLength();
                 }
                 catch (Exception e)
                 {
@@ -931,13 +904,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static bool playable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_playable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Animation)wrapper).GetPlayable();
+                    _ret_var = ((Animation)ws.Target).GetPlayable();
                 }
                 catch (Exception e)
                 {
@@ -967,13 +940,13 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
         private static bool seekable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_playable_seekable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Animation)wrapper).GetSeekable();
+                    _ret_var = ((Animation)ws.Target).GetSeekable();
                 }
                 catch (Exception e)
                 {
@@ -992,7 +965,7 @@ public class Animation : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayable
 
         private static efl_playable_seekable_get_delegate efl_playable_seekable_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 012a472..678d8a0 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Efl alpha animation class</summary>
 [Efl.Canvas.AnimationAlpha.NativeMethods]
-public class AnimationAlpha : Efl.Canvas.Animation, Efl.Eo.IWrapper
+public class AnimationAlpha : Efl.Canvas.Animation
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class AnimationAlpha : Efl.Canvas.Animation, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AnimationAlpha(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AnimationAlpha"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class AnimationAlpha : Efl.Canvas.Animation, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Alpha property</summary>
     /// <param name="from_alpha">Alpha value when animation starts</param>
     /// <param name="to_alpha">Alpha value when animation ends</param>
@@ -142,7 +115,7 @@ public class AnimationAlpha : Efl.Canvas.Animation, Efl.Eo.IWrapper
             return Efl.Canvas.AnimationAlpha.efl_canvas_animation_alpha_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_animation_alpha_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double from_alpha,  out double to_alpha);
@@ -155,13 +128,13 @@ public class AnimationAlpha : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void alpha_get(System.IntPtr obj, System.IntPtr pd, out double from_alpha, out double to_alpha)
         {
             Eina.Log.Debug("function efl_animation_alpha_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         from_alpha = default(double);        to_alpha = default(double);                            
                 try
                 {
-                    ((AnimationAlpha)wrapper).GetAlpha(out from_alpha, out to_alpha);
+                    ((AnimationAlpha)ws.Target).GetAlpha(out from_alpha, out to_alpha);
                 }
                 catch (Exception e)
                 {
@@ -190,13 +163,13 @@ public class AnimationAlpha : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void alpha_set(System.IntPtr obj, System.IntPtr pd, double from_alpha, double to_alpha)
         {
             Eina.Log.Debug("function efl_animation_alpha_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((AnimationAlpha)wrapper).SetAlpha(from_alpha, to_alpha);
+                    ((AnimationAlpha)ws.Target).SetAlpha(from_alpha, to_alpha);
                 }
                 catch (Exception e)
                 {
@@ -214,7 +187,7 @@ public class AnimationAlpha : Efl.Canvas.Animation, Efl.Eo.IWrapper
 
         private static efl_animation_alpha_set_delegate efl_animation_alpha_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 688cf6e..50ef84f 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Efl group animation abstract class</summary>
 [Efl.Canvas.AnimationGroup.NativeMethods]
-public abstract class AnimationGroup : Efl.Canvas.Animation, Efl.Eo.IWrapper
+public abstract class AnimationGroup : Efl.Canvas.Animation
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public abstract class AnimationGroup : Efl.Canvas.Animation, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AnimationGroup(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class AnimationGroupRealized : AnimationGroup
@@ -62,33 +62,6 @@ public abstract class AnimationGroup : Efl.Canvas.Animation, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Add the given animation to the animation group.</summary>
     /// <param name="animation">The animation which needs to be added to the animation group</param>
     virtual public void AddAnimation(Efl.Canvas.Animation animation) {
@@ -164,7 +137,7 @@ public abstract class AnimationGroup : Efl.Canvas.Animation, Efl.Eo.IWrapper
             return Efl.Canvas.AnimationGroup.efl_canvas_animation_group_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_animation_group_animation_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Animation animation);
@@ -177,13 +150,13 @@ public abstract class AnimationGroup : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void animation_add(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Animation animation)
         {
             Eina.Log.Debug("function efl_animation_group_animation_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnimationGroup)wrapper).AddAnimation(animation);
+                    ((AnimationGroup)ws.Target).AddAnimation(animation);
                 }
                 catch (Exception e)
                 {
@@ -212,13 +185,13 @@ public abstract class AnimationGroup : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void animation_del(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Animation animation)
         {
             Eina.Log.Debug("function efl_animation_group_animation_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnimationGroup)wrapper).DelAnimation(animation);
+                    ((AnimationGroup)ws.Target).DelAnimation(animation);
                 }
                 catch (Exception e)
                 {
@@ -247,13 +220,13 @@ public abstract class AnimationGroup : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static System.IntPtr animations_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_animation_group_animations_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Canvas.Animation> _ret_var = default(Eina.List<Efl.Canvas.Animation>);
                 try
                 {
-                    _ret_var = ((AnimationGroup)wrapper).GetAnimations();
+                    _ret_var = ((AnimationGroup)ws.Target).GetAnimations();
                 }
                 catch (Exception e)
                 {
@@ -272,7 +245,7 @@ public abstract class AnimationGroup : Efl.Canvas.Animation, Efl.Eo.IWrapper
 
         private static efl_animation_group_animations_get_delegate efl_animation_group_animations_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index fb154d3..d3ecec2 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Efl group parallel animation class</summary>
 [Efl.Canvas.AnimationGroupParallel.NativeMethods]
-public class AnimationGroupParallel : Efl.Canvas.AnimationGroup, Efl.Eo.IWrapper
+public class AnimationGroupParallel : Efl.Canvas.AnimationGroup
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class AnimationGroupParallel : Efl.Canvas.AnimationGroup, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AnimationGroupParallel(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AnimationGroupParallel"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class AnimationGroupParallel : Efl.Canvas.AnimationGroup, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Canvas.AnimationGroupParallel.efl_canvas_animation_group_parallel_class_get();
@@ -105,9 +78,9 @@ public class AnimationGroupParallel : Efl.Canvas.AnimationGroup, Efl.Eo.IWrapper
             return Efl.Canvas.AnimationGroupParallel.efl_canvas_animation_group_parallel_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 76a850c..47b9913 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Efl group sequential animation class</summary>
 [Efl.Canvas.AnimationGroupSequential.NativeMethods]
-public class AnimationGroupSequential : Efl.Canvas.AnimationGroup, Efl.Eo.IWrapper
+public class AnimationGroupSequential : Efl.Canvas.AnimationGroup
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class AnimationGroupSequential : Efl.Canvas.AnimationGroup, Efl.Eo.IWrapp
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AnimationGroupSequential(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AnimationGroupSequential"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class AnimationGroupSequential : Efl.Canvas.AnimationGroup, Efl.Eo.IWrapp
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Canvas.AnimationGroupSequential.efl_canvas_animation_group_sequential_class_get();
@@ -105,9 +78,9 @@ public class AnimationGroupSequential : Efl.Canvas.AnimationGroup, Efl.Eo.IWrapp
             return Efl.Canvas.AnimationGroupSequential.efl_canvas_animation_group_sequential_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 86e6176..4eb6f43 100644 (file)
@@ -16,7 +16,7 @@ public class AnimationPlayerRunningEvt_Args : EventArgs {
 }
 /// <summary>Efl animation object class</summary>
 [Efl.Canvas.AnimationPlayer.NativeMethods]
-public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
+public class AnimationPlayer : Efl.Object, Efl.IPlayer
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -49,7 +49,7 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AnimationPlayer(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AnimationPlayer"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -60,33 +60,6 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Animation is started.</summary>
     public event EventHandler StartedEvt
     {
@@ -94,10 +67,9 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -147,13 +119,12 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.AnimationPlayerRunningEvt_Args args = new Efl.Canvas.AnimationPlayerRunningEvt_Args();
+                        Efl.Canvas.AnimationPlayerRunningEvt_Args args = new Efl.Canvas.AnimationPlayerRunningEvt_Args();
                         args.arg = default(Efl.Canvas.ObjectAnimationEvent);
                         try
                         {
@@ -209,10 +180,9 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -401,73 +371,73 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
          Efl.IPlayerConcrete.NativeMethods.efl_player_stop_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
          }
-        public Efl.Canvas.Animation Animation {
+    public Efl.Canvas.Animation Animation {
         get { return GetAnimation(); }
         set { SetAnimation(value); }
     }
     /// <summary>Auto delete property</summary>
-/// <value><c>true</c> to delete animation object automatically when animation is finished or animation is cancelled, <c>false</c> otherwise.</value>
+    /// <value><c>true</c> to delete animation object automatically when animation is finished or animation is cancelled, <c>false</c> otherwise.</value>
     public bool AutoDel {
         get { return GetAutoDel(); }
         set { SetAutoDel(value); }
     }
     /// <summary>Target object property</summary>
-/// <value>Target object which is applied animation.</value>
+    /// <value>Target object which is applied animation.</value>
     public Efl.Canvas.Object Target {
         get { return GetTarget(); }
         set { SetTarget(value); }
     }
     /// <summary>Whether or not the playable can be played.</summary>
-/// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
     public bool Playable {
         get { return GetPlayable(); }
     }
     /// <summary>Get play/pause state of the media file.</summary>
-/// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
+    /// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
     public bool Play {
         get { return GetPlay(); }
         set { SetPlay(value); }
     }
     /// <summary>Get the position in the media file.
-/// The position is returned as the number of seconds since the beginning of the media file.</summary>
-/// <value>The position (in seconds).</value>
+    /// The position is returned as the number of seconds since the beginning of the media file.</summary>
+    /// <value>The position (in seconds).</value>
     public double Pos {
         get { return GetPos(); }
         set { SetPos(value); }
     }
     /// <summary>Get how much of the file has been played.
-/// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
-/// <value>The progress within the [0, 1] range.</value>
+    /// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
+    /// <value>The progress within the [0, 1] range.</value>
     public double Progress {
         get { return GetProgress(); }
     }
     /// <summary>Control the play speed of the media file.
-/// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
-/// <value>The play speed in the [0, infinity) range.</value>
+    /// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
+    /// <value>The play speed in the [0, infinity) range.</value>
     public double PlaySpeed {
         get { return GetPlaySpeed(); }
         set { SetPlaySpeed(value); }
     }
     /// <summary>Control the audio volume.
-/// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
-/// <value>The volume level</value>
+    /// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
+    /// <value>The volume level</value>
     public double Volume {
         get { return GetVolume(); }
         set { SetVolume(value); }
     }
     /// <summary>This property controls the audio mute state.</summary>
-/// <value>The mute state. <c>true</c> or <c>false</c>.</value>
+    /// <value>The mute state. <c>true</c> or <c>false</c>.</value>
     public bool Mute {
         get { return GetMute(); }
         set { SetMute(value); }
     }
     /// <summary>Get the length of play for the media file.</summary>
-/// <value>The length of the stream in seconds.</value>
+    /// <value>The length of the stream in seconds.</value>
     public double Length {
         get { return GetLength(); }
     }
     /// <summary>Get whether the media file is seekable.</summary>
-/// <value><c>true</c> if seekable.</value>
+    /// <value><c>true</c> if seekable.</value>
     public bool Seekable {
         get { return GetSeekable(); }
     }
@@ -717,7 +687,7 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
             return Efl.Canvas.AnimationPlayer.efl_canvas_animation_player_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Canvas.Animation efl_animation_player_animation_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -730,13 +700,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static Efl.Canvas.Animation animation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_animation_player_animation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Animation _ret_var = default(Efl.Canvas.Animation);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetAnimation();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetAnimation();
                 }
                 catch (Exception e)
                 {
@@ -766,13 +736,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static void animation_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Animation animation)
         {
             Eina.Log.Debug("function efl_animation_player_animation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnimationPlayer)wrapper).SetAnimation(animation);
+                    ((AnimationPlayer)ws.Target).SetAnimation(animation);
                 }
                 catch (Exception e)
                 {
@@ -801,13 +771,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static bool auto_del_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_animation_player_auto_del_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetAutoDel();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetAutoDel();
                 }
                 catch (Exception e)
                 {
@@ -837,13 +807,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static void auto_del_set(System.IntPtr obj, System.IntPtr pd, bool auto_del)
         {
             Eina.Log.Debug("function efl_animation_player_auto_del_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnimationPlayer)wrapper).SetAutoDel(auto_del);
+                    ((AnimationPlayer)ws.Target).SetAutoDel(auto_del);
                 }
                 catch (Exception e)
                 {
@@ -872,13 +842,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static Efl.Canvas.Object target_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_animation_player_target_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetTarget();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetTarget();
                 }
                 catch (Exception e)
                 {
@@ -908,13 +878,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static void target_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object target)
         {
             Eina.Log.Debug("function efl_animation_player_target_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnimationPlayer)wrapper).SetTarget(target);
+                    ((AnimationPlayer)ws.Target).SetTarget(target);
                 }
                 catch (Exception e)
                 {
@@ -943,13 +913,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static bool playable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_playable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetPlayable();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetPlayable();
                 }
                 catch (Exception e)
                 {
@@ -979,13 +949,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static bool play_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_play_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetPlay();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetPlay();
                 }
                 catch (Exception e)
                 {
@@ -1015,13 +985,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static void play_set(System.IntPtr obj, System.IntPtr pd, bool play)
         {
             Eina.Log.Debug("function efl_player_play_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnimationPlayer)wrapper).SetPlay(play);
+                    ((AnimationPlayer)ws.Target).SetPlay(play);
                 }
                 catch (Exception e)
                 {
@@ -1050,13 +1020,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static double pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetPos();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetPos();
                 }
                 catch (Exception e)
                 {
@@ -1086,13 +1056,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static void pos_set(System.IntPtr obj, System.IntPtr pd, double sec)
         {
             Eina.Log.Debug("function efl_player_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnimationPlayer)wrapper).SetPos(sec);
+                    ((AnimationPlayer)ws.Target).SetPos(sec);
                 }
                 catch (Exception e)
                 {
@@ -1121,13 +1091,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static double progress_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_progress_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetProgress();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetProgress();
                 }
                 catch (Exception e)
                 {
@@ -1157,13 +1127,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static double play_speed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_play_speed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetPlaySpeed();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetPlaySpeed();
                 }
                 catch (Exception e)
                 {
@@ -1193,13 +1163,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static void play_speed_set(System.IntPtr obj, System.IntPtr pd, double speed)
         {
             Eina.Log.Debug("function efl_player_play_speed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnimationPlayer)wrapper).SetPlaySpeed(speed);
+                    ((AnimationPlayer)ws.Target).SetPlaySpeed(speed);
                 }
                 catch (Exception e)
                 {
@@ -1228,13 +1198,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static double volume_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_volume_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetVolume();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetVolume();
                 }
                 catch (Exception e)
                 {
@@ -1264,13 +1234,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static void volume_set(System.IntPtr obj, System.IntPtr pd, double volume)
         {
             Eina.Log.Debug("function efl_player_volume_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnimationPlayer)wrapper).SetVolume(volume);
+                    ((AnimationPlayer)ws.Target).SetVolume(volume);
                 }
                 catch (Exception e)
                 {
@@ -1299,13 +1269,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static bool mute_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_mute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetMute();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetMute();
                 }
                 catch (Exception e)
                 {
@@ -1335,13 +1305,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static void mute_set(System.IntPtr obj, System.IntPtr pd, bool mute)
         {
             Eina.Log.Debug("function efl_player_mute_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnimationPlayer)wrapper).SetMute(mute);
+                    ((AnimationPlayer)ws.Target).SetMute(mute);
                 }
                 catch (Exception e)
                 {
@@ -1370,13 +1340,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static double length_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetLength();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetLength();
                 }
                 catch (Exception e)
                 {
@@ -1406,13 +1376,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static bool seekable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_seekable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((AnimationPlayer)wrapper).GetSeekable();
+                    _ret_var = ((AnimationPlayer)ws.Target).GetSeekable();
                 }
                 catch (Exception e)
                 {
@@ -1442,13 +1412,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static void start(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((AnimationPlayer)wrapper).Start();
+                    ((AnimationPlayer)ws.Target).Start();
                 }
                 catch (Exception e)
                 {
@@ -1477,13 +1447,13 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
         private static void stop(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_stop was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((AnimationPlayer)wrapper).Stop();
+                    ((AnimationPlayer)ws.Target).Stop();
                 }
                 catch (Exception e)
                 {
@@ -1501,7 +1471,7 @@ public class AnimationPlayer : Efl.Object, Efl.Eo.IWrapper,Efl.IPlayer
 
         private static efl_player_stop_delegate efl_player_stop_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index dd9e229..4a8a490 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Efl rotate animation class</summary>
 [Efl.Canvas.AnimationRotate.NativeMethods]
-public class AnimationRotate : Efl.Canvas.Animation, Efl.Eo.IWrapper
+public class AnimationRotate : Efl.Canvas.Animation
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class AnimationRotate : Efl.Canvas.Animation, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AnimationRotate(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AnimationRotate"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class AnimationRotate : Efl.Canvas.Animation, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Rotate property</summary>
     /// <param name="from_degree">Rotation degree when animation starts</param>
     /// <param name="to_degree">Rotation degree when animation ends</param>
@@ -186,7 +159,7 @@ public class AnimationRotate : Efl.Canvas.Animation, Efl.Eo.IWrapper
             return Efl.Canvas.AnimationRotate.efl_canvas_animation_rotate_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_animation_rotate_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double from_degree,  out double to_degree, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] out Efl.Canvas.Object pivot,  out double cx,  out double cy);
@@ -199,13 +172,13 @@ public class AnimationRotate : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void rotate_get(System.IntPtr obj, System.IntPtr pd, out double from_degree, out double to_degree, out Efl.Canvas.Object pivot, out double cx, out double cy)
         {
             Eina.Log.Debug("function efl_animation_rotate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                 from_degree = default(double);        to_degree = default(double);        pivot = default(Efl.Canvas.Object);        cx = default(double);        cy = default(double);                                                    
                 try
                 {
-                    ((AnimationRotate)wrapper).GetRotate(out from_degree, out to_degree, out pivot, out cx, out cy);
+                    ((AnimationRotate)ws.Target).GetRotate(out from_degree, out to_degree, out pivot, out cx, out cy);
                 }
                 catch (Exception e)
                 {
@@ -234,13 +207,13 @@ public class AnimationRotate : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void rotate_set(System.IntPtr obj, System.IntPtr pd, double from_degree, double to_degree, Efl.Canvas.Object pivot, double cx, double cy)
         {
             Eina.Log.Debug("function efl_animation_rotate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((AnimationRotate)wrapper).SetRotate(from_degree, to_degree, pivot, cx, cy);
+                    ((AnimationRotate)ws.Target).SetRotate(from_degree, to_degree, pivot, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -269,13 +242,13 @@ public class AnimationRotate : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void rotate_absolute_get(System.IntPtr obj, System.IntPtr pd, out double from_degree, out double to_degree, out int cx, out int cy)
         {
             Eina.Log.Debug("function efl_animation_rotate_absolute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         from_degree = default(double);        to_degree = default(double);        cx = default(int);        cy = default(int);                                            
                 try
                 {
-                    ((AnimationRotate)wrapper).GetRotateAbsolute(out from_degree, out to_degree, out cx, out cy);
+                    ((AnimationRotate)ws.Target).GetRotateAbsolute(out from_degree, out to_degree, out cx, out cy);
                 }
                 catch (Exception e)
                 {
@@ -304,13 +277,13 @@ public class AnimationRotate : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void rotate_absolute_set(System.IntPtr obj, System.IntPtr pd, double from_degree, double to_degree, int cx, int cy)
         {
             Eina.Log.Debug("function efl_animation_rotate_absolute_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((AnimationRotate)wrapper).SetRotateAbsolute(from_degree, to_degree, cx, cy);
+                    ((AnimationRotate)ws.Target).SetRotateAbsolute(from_degree, to_degree, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -328,7 +301,7 @@ public class AnimationRotate : Efl.Canvas.Animation, Efl.Eo.IWrapper
 
         private static efl_animation_rotate_absolute_set_delegate efl_animation_rotate_absolute_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 581d4bb..e31905a 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Efl scale animation class</summary>
 [Efl.Canvas.AnimationScale.NativeMethods]
-public class AnimationScale : Efl.Canvas.Animation, Efl.Eo.IWrapper
+public class AnimationScale : Efl.Canvas.Animation
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class AnimationScale : Efl.Canvas.Animation, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AnimationScale(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AnimationScale"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class AnimationScale : Efl.Canvas.Animation, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Scale property</summary>
     /// <param name="from_scale_x">Scale factor along x axis when animation starts</param>
     /// <param name="from_scale_y">Scale factor along y axis when animation starts</param>
@@ -194,7 +167,7 @@ public class AnimationScale : Efl.Canvas.Animation, Efl.Eo.IWrapper
             return Efl.Canvas.AnimationScale.efl_canvas_animation_scale_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_animation_scale_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double from_scale_x,  out double from_scale_y,  out double to_scale_x,  out double to_scale_y, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] out Efl.Canvas.Object pivot,  out double cx,  out double cy);
@@ -207,13 +180,13 @@ public class AnimationScale : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void scale_get(System.IntPtr obj, System.IntPtr pd, out double from_scale_x, out double from_scale_y, out double to_scale_x, out double to_scale_y, out Efl.Canvas.Object pivot, out double cx, out double cy)
         {
             Eina.Log.Debug("function efl_animation_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                 from_scale_x = default(double);        from_scale_y = default(double);        to_scale_x = default(double);        to_scale_y = default(double);        pivot = default(Efl.Canvas.Object);        cx = default(double);        cy = default(double);                                                                    
                 try
                 {
-                    ((AnimationScale)wrapper).GetScale(out from_scale_x, out from_scale_y, out to_scale_x, out to_scale_y, out pivot, out cx, out cy);
+                    ((AnimationScale)ws.Target).GetScale(out from_scale_x, out from_scale_y, out to_scale_x, out to_scale_y, out pivot, out cx, out cy);
                 }
                 catch (Exception e)
                 {
@@ -242,13 +215,13 @@ public class AnimationScale : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void scale_set(System.IntPtr obj, System.IntPtr pd, double from_scale_x, double from_scale_y, double to_scale_x, double to_scale_y, Efl.Canvas.Object pivot, double cx, double cy)
         {
             Eina.Log.Debug("function efl_animation_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                     
                 try
                 {
-                    ((AnimationScale)wrapper).SetScale(from_scale_x, from_scale_y, to_scale_x, to_scale_y, pivot, cx, cy);
+                    ((AnimationScale)ws.Target).SetScale(from_scale_x, from_scale_y, to_scale_x, to_scale_y, pivot, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -277,13 +250,13 @@ public class AnimationScale : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void scale_absolute_get(System.IntPtr obj, System.IntPtr pd, out double from_scale_x, out double from_scale_y, out double to_scale_x, out double to_scale_y, out int cx, out int cy)
         {
             Eina.Log.Debug("function efl_animation_scale_absolute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         from_scale_x = default(double);        from_scale_y = default(double);        to_scale_x = default(double);        to_scale_y = default(double);        cx = default(int);        cy = default(int);                                                            
                 try
                 {
-                    ((AnimationScale)wrapper).GetScaleAbsolute(out from_scale_x, out from_scale_y, out to_scale_x, out to_scale_y, out cx, out cy);
+                    ((AnimationScale)ws.Target).GetScaleAbsolute(out from_scale_x, out from_scale_y, out to_scale_x, out to_scale_y, out cx, out cy);
                 }
                 catch (Exception e)
                 {
@@ -312,13 +285,13 @@ public class AnimationScale : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void scale_absolute_set(System.IntPtr obj, System.IntPtr pd, double from_scale_x, double from_scale_y, double to_scale_x, double to_scale_y, int cx, int cy)
         {
             Eina.Log.Debug("function efl_animation_scale_absolute_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((AnimationScale)wrapper).SetScaleAbsolute(from_scale_x, from_scale_y, to_scale_x, to_scale_y, cx, cy);
+                    ((AnimationScale)ws.Target).SetScaleAbsolute(from_scale_x, from_scale_y, to_scale_x, to_scale_y, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -336,7 +309,7 @@ public class AnimationScale : Efl.Canvas.Animation, Efl.Eo.IWrapper
 
         private static efl_animation_scale_absolute_set_delegate efl_animation_scale_absolute_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index db0466d..117cc71 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Efl translate animation class</summary>
 [Efl.Canvas.AnimationTranslate.NativeMethods]
-public class AnimationTranslate : Efl.Canvas.Animation, Efl.Eo.IWrapper
+public class AnimationTranslate : Efl.Canvas.Animation
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class AnimationTranslate : Efl.Canvas.Animation, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AnimationTranslate(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AnimationTranslate"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class AnimationTranslate : Efl.Canvas.Animation, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Translate property</summary>
     /// <param name="from_x">Distance moved along x axis when animation starts</param>
     /// <param name="from_y">Distance moved along y axis when animation starts</param>
@@ -184,7 +157,7 @@ public class AnimationTranslate : Efl.Canvas.Animation, Efl.Eo.IWrapper
             return Efl.Canvas.AnimationTranslate.efl_canvas_animation_translate_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_animation_translate_get_delegate(System.IntPtr obj, System.IntPtr pd,  out int from_x,  out int from_y,  out int to_x,  out int to_y);
@@ -197,13 +170,13 @@ public class AnimationTranslate : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void translate_get(System.IntPtr obj, System.IntPtr pd, out int from_x, out int from_y, out int to_x, out int to_y)
         {
             Eina.Log.Debug("function efl_animation_translate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         from_x = default(int);        from_y = default(int);        to_x = default(int);        to_y = default(int);                                            
                 try
                 {
-                    ((AnimationTranslate)wrapper).GetTranslate(out from_x, out from_y, out to_x, out to_y);
+                    ((AnimationTranslate)ws.Target).GetTranslate(out from_x, out from_y, out to_x, out to_y);
                 }
                 catch (Exception e)
                 {
@@ -232,13 +205,13 @@ public class AnimationTranslate : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void translate_set(System.IntPtr obj, System.IntPtr pd, int from_x, int from_y, int to_x, int to_y)
         {
             Eina.Log.Debug("function efl_animation_translate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((AnimationTranslate)wrapper).SetTranslate(from_x, from_y, to_x, to_y);
+                    ((AnimationTranslate)ws.Target).SetTranslate(from_x, from_y, to_x, to_y);
                 }
                 catch (Exception e)
                 {
@@ -267,13 +240,13 @@ public class AnimationTranslate : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void translate_absolute_get(System.IntPtr obj, System.IntPtr pd, out int from_x, out int from_y, out int to_x, out int to_y)
         {
             Eina.Log.Debug("function efl_animation_translate_absolute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         from_x = default(int);        from_y = default(int);        to_x = default(int);        to_y = default(int);                                            
                 try
                 {
-                    ((AnimationTranslate)wrapper).GetTranslateAbsolute(out from_x, out from_y, out to_x, out to_y);
+                    ((AnimationTranslate)ws.Target).GetTranslateAbsolute(out from_x, out from_y, out to_x, out to_y);
                 }
                 catch (Exception e)
                 {
@@ -302,13 +275,13 @@ public class AnimationTranslate : Efl.Canvas.Animation, Efl.Eo.IWrapper
         private static void translate_absolute_set(System.IntPtr obj, System.IntPtr pd, int from_x, int from_y, int to_x, int to_y)
         {
             Eina.Log.Debug("function efl_animation_translate_absolute_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((AnimationTranslate)wrapper).SetTranslateAbsolute(from_x, from_y, to_x, to_y);
+                    ((AnimationTranslate)ws.Target).SetTranslateAbsolute(from_x, from_y, to_x, to_y);
                 }
                 catch (Exception e)
                 {
@@ -326,7 +299,7 @@ public class AnimationTranslate : Efl.Canvas.Animation, Efl.Eo.IWrapper
 
         private static efl_animation_translate_absolute_set_delegate efl_animation_translate_absolute_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index a9e0205..918303f 100644 (file)
@@ -32,12 +32,16 @@ public struct AnimationPlayerEventRunning
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator AnimationPlayerEventRunning(IntPtr ptr)
     {
         var tmp = (AnimationPlayerEventRunning.NativeStruct)Marshal.PtrToStructure(ptr, typeof(AnimationPlayerEventRunning.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct AnimationPlayerEventRunning.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -59,6 +63,8 @@ public struct AnimationPlayerEventRunning
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index b85cec0..ddc1b65 100644 (file)
@@ -18,7 +18,7 @@ namespace Canvas {
 /// 
 /// No child objects should be stacked above the event grabber parent while the grabber is visible. A critical error will be raised if this is detected.</summary>
 [Efl.Canvas.EventGrabber.NativeMethods]
-public class EventGrabber : Efl.Canvas.Group, Efl.Eo.IWrapper
+public class EventGrabber : Efl.Canvas.Group
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class EventGrabber : Efl.Canvas.Group, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected EventGrabber(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="EventGrabber"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class EventGrabber : Efl.Canvas.Group, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Stops the grabber from updating its internal stacking order while visible</summary>
     /// <returns>If <c>true</c>, stop updating</returns>
     virtual public bool GetFreezeWhenVisible() {
@@ -103,7 +76,7 @@ public class EventGrabber : Efl.Canvas.Group, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Stops the grabber from updating its internal stacking order while visible</summary>
-/// <value>If <c>true</c>, stop updating</value>
+    /// <value>If <c>true</c>, stop updating</value>
     public bool FreezeWhenVisible {
         get { return GetFreezeWhenVisible(); }
         set { SetFreezeWhenVisible(value); }
@@ -154,7 +127,7 @@ public class EventGrabber : Efl.Canvas.Group, Efl.Eo.IWrapper
             return Efl.Canvas.EventGrabber.efl_canvas_event_grabber_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_canvas_event_grabber_freeze_when_visible_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -167,13 +140,13 @@ public class EventGrabber : Efl.Canvas.Group, Efl.Eo.IWrapper
         private static bool freeze_when_visible_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_event_grabber_freeze_when_visible_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((EventGrabber)wrapper).GetFreezeWhenVisible();
+                    _ret_var = ((EventGrabber)ws.Target).GetFreezeWhenVisible();
                 }
                 catch (Exception e)
                 {
@@ -203,13 +176,13 @@ public class EventGrabber : Efl.Canvas.Group, Efl.Eo.IWrapper
         private static void freeze_when_visible_set(System.IntPtr obj, System.IntPtr pd, bool set)
         {
             Eina.Log.Debug("function efl_canvas_event_grabber_freeze_when_visible_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((EventGrabber)wrapper).SetFreezeWhenVisible(set);
+                    ((EventGrabber)ws.Target).SetFreezeWhenVisible(set);
                 }
                 catch (Exception e)
                 {
@@ -227,7 +200,7 @@ public class EventGrabber : Efl.Canvas.Group, Efl.Eo.IWrapper
 
         private static efl_canvas_event_grabber_freeze_when_visible_set_delegate efl_canvas_event_grabber_freeze_when_visible_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e3524a1..b6f8226 100644 (file)
@@ -53,30 +53,30 @@ bool FilterInputRender(System.IntPtr filter, System.IntPtr engine, System.IntPtr
 /// Virtual, to be implemented in the parent class.</summary>
 void FilterDirty();
                                 /// <summary>Marks this filter as changed.</summary>
-/// <value><c>true</c> if filter changed, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if filter changed, <c>false</c> otherwise</value>
     bool FilterChanged {
         set ;
     }
     /// <summary>Marks this filter as invalid.</summary>
-/// <value><c>true</c> if filter is invalid, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if filter is invalid, <c>false</c> otherwise</value>
     bool FilterInvalid {
         set ;
     }
     /// <summary>Retrieve cached output buffer, if any.
-/// Does not increment the reference count.</summary>
-/// <value>Output buffer</value>
+    /// Does not increment the reference count.</summary>
+    /// <value>Output buffer</value>
     System.IntPtr FilterOutputBuffer {
         get ;
     }
 }
 /// <summary>Evas internal implementation of filters.</summary>
-sealed public class IInternalConcrete : 
-
-IInternal
+sealed public class IInternalConcrete :
+    Efl.Eo.EoWrapper
+    , IInternal
     , Efl.Gfx.IFilter
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -91,86 +91,12 @@ IInternal
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
         efl_canvas_filter_internal_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IInternal"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IInternalConcrete(System.IntPtr raw)
+    private IInternalConcrete(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IInternalConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Marks this filter as changed.</summary>
@@ -328,18 +254,18 @@ IInternal
         Eina.Error.RaiseIfUnhandledException();
                                                          }
     /// <summary>Marks this filter as changed.</summary>
-/// <value><c>true</c> if filter changed, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if filter changed, <c>false</c> otherwise</value>
     public bool FilterChanged {
         set { SetFilterChanged(value); }
     }
     /// <summary>Marks this filter as invalid.</summary>
-/// <value><c>true</c> if filter is invalid, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if filter is invalid, <c>false</c> otherwise</value>
     public bool FilterInvalid {
         set { SetFilterInvalid(value); }
     }
     /// <summary>Retrieve cached output buffer, if any.
-/// Does not increment the reference count.</summary>
-/// <value>Output buffer</value>
+    /// Does not increment the reference count.</summary>
+    /// <value>Output buffer</value>
     public System.IntPtr FilterOutputBuffer {
         get { return GetFilterOutputBuffer(); }
     }
@@ -528,7 +454,7 @@ IInternal
             return Efl.Canvas.Filter.IInternalConcrete.efl_canvas_filter_internal_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void evas_filter_changed_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] bool val);
@@ -541,13 +467,13 @@ IInternal
         private static void filter_changed_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function evas_filter_changed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInternalConcrete)wrapper).SetFilterChanged(val);
+                    ((IInternalConcrete)ws.Target).SetFilterChanged(val);
                 }
                 catch (Exception e)
                 {
@@ -576,13 +502,13 @@ IInternal
         private static void filter_invalid_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function evas_filter_invalid_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInternalConcrete)wrapper).SetFilterInvalid(val);
+                    ((IInternalConcrete)ws.Target).SetFilterInvalid(val);
                 }
                 catch (Exception e)
                 {
@@ -611,13 +537,13 @@ IInternal
         private static System.IntPtr filter_output_buffer_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function evas_filter_output_buffer_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((IInternalConcrete)wrapper).GetFilterOutputBuffer();
+                    _ret_var = ((IInternalConcrete)ws.Target).GetFilterOutputBuffer();
                 }
                 catch (Exception e)
                 {
@@ -647,13 +573,13 @@ IInternal
         private static bool filter_input_alpha(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function evas_filter_input_alpha was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IInternalConcrete)wrapper).FilterInputAlpha();
+                    _ret_var = ((IInternalConcrete)ws.Target).FilterInputAlpha();
                 }
                 catch (Exception e)
                 {
@@ -683,14 +609,14 @@ IInternal
         private static void filter_state_prepare(System.IntPtr obj, System.IntPtr pd, out Efl.Canvas.Filter.State.NativeStruct state, System.IntPtr data)
         {
             Eina.Log.Debug("function evas_filter_state_prepare was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Canvas.Filter.State _out_state = default(Efl.Canvas.Filter.State);
                                     
                 try
                 {
-                    ((IInternalConcrete)wrapper).FilterStatePrepare(out _out_state, data);
+                    ((IInternalConcrete)ws.Target).FilterStatePrepare(out _out_state, data);
                 }
                 catch (Exception e)
                 {
@@ -720,13 +646,13 @@ IInternal
         private static bool filter_input_render(System.IntPtr obj, System.IntPtr pd, System.IntPtr filter, System.IntPtr engine, System.IntPtr output, System.IntPtr drawctx, System.IntPtr data, int l, int r, int t, int b, int x, int y, bool do_async)
         {
             Eina.Log.Debug("function evas_filter_input_render was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                                                                                                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IInternalConcrete)wrapper).FilterInputRender(filter, engine, output, drawctx, data, l, r, t, b, x, y, do_async);
+                    _ret_var = ((IInternalConcrete)ws.Target).FilterInputRender(filter, engine, output, drawctx, data, l, r, t, b, x, y, do_async);
                 }
                 catch (Exception e)
                 {
@@ -756,13 +682,13 @@ IInternal
         private static void filter_dirty(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function evas_filter_dirty was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IInternalConcrete)wrapper).FilterDirty();
+                    ((IInternalConcrete)ws.Target).FilterDirty();
                 }
                 catch (Exception e)
                 {
@@ -791,15 +717,15 @@ IInternal
         private static void filter_program_get(System.IntPtr obj, System.IntPtr pd, out System.String code, out System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_program_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         System.String _out_code = default(System.String);
         System.String _out_name = default(System.String);
                             
                 try
                 {
-                    ((IInternalConcrete)wrapper).GetFilterProgram(out _out_code, out _out_name);
+                    ((IInternalConcrete)ws.Target).GetFilterProgram(out _out_code, out _out_name);
                 }
                 catch (Exception e)
                 {
@@ -830,13 +756,13 @@ IInternal
         private static void filter_program_set(System.IntPtr obj, System.IntPtr pd, System.String code, System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_program_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInternalConcrete)wrapper).SetFilterProgram(code, name);
+                    ((IInternalConcrete)ws.Target).SetFilterProgram(code, name);
                 }
                 catch (Exception e)
                 {
@@ -865,15 +791,15 @@ IInternal
         private static void filter_state_get(System.IntPtr obj, System.IntPtr pd, out System.String cur_state, out double cur_val, out System.String next_state, out double next_val, out double pos)
         {
             Eina.Log.Debug("function efl_gfx_filter_state_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                 System.String _out_cur_state = default(System.String);
         cur_val = default(double);        System.String _out_next_state = default(System.String);
         next_val = default(double);        pos = default(double);                                                    
                 try
                 {
-                    ((IInternalConcrete)wrapper).GetFilterState(out _out_cur_state, out cur_val, out _out_next_state, out next_val, out pos);
+                    ((IInternalConcrete)ws.Target).GetFilterState(out _out_cur_state, out cur_val, out _out_next_state, out next_val, out pos);
                 }
                 catch (Exception e)
                 {
@@ -904,13 +830,13 @@ IInternal
         private static void filter_state_set(System.IntPtr obj, System.IntPtr pd, System.String cur_state, double cur_val, System.String next_state, double next_val, double pos)
         {
             Eina.Log.Debug("function efl_gfx_filter_state_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((IInternalConcrete)wrapper).SetFilterState(cur_state, cur_val, next_state, next_val, pos);
+                    ((IInternalConcrete)ws.Target).SetFilterState(cur_state, cur_val, next_state, next_val, pos);
                 }
                 catch (Exception e)
                 {
@@ -939,13 +865,13 @@ IInternal
         private static void filter_padding_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_filter_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((IInternalConcrete)wrapper).GetFilterPadding(out l, out r, out t, out b);
+                    ((IInternalConcrete)ws.Target).GetFilterPadding(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -974,13 +900,13 @@ IInternal
         private static Efl.Gfx.IEntity filter_source_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((IInternalConcrete)wrapper).GetFilterSource(name);
+                    _ret_var = ((IInternalConcrete)ws.Target).GetFilterSource(name);
                 }
                 catch (Exception e)
                 {
@@ -1010,13 +936,13 @@ IInternal
         private static void filter_source_set(System.IntPtr obj, System.IntPtr pd, System.String name, Efl.Gfx.IEntity source)
         {
             Eina.Log.Debug("function efl_gfx_filter_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInternalConcrete)wrapper).SetFilterSource(name, source);
+                    ((IInternalConcrete)ws.Target).SetFilterSource(name, source);
                 }
                 catch (Exception e)
                 {
@@ -1045,14 +971,14 @@ IInternal
         private static void filter_data_get(System.IntPtr obj, System.IntPtr pd, System.String name, out System.String value, out bool execute)
         {
             Eina.Log.Debug("function efl_gfx_filter_data_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         System.String _out_value = default(System.String);
         execute = default(bool);                                    
                 try
                 {
-                    ((IInternalConcrete)wrapper).GetFilterData(name, out _out_value, out execute);
+                    ((IInternalConcrete)ws.Target).GetFilterData(name, out _out_value, out execute);
                 }
                 catch (Exception e)
                 {
@@ -1082,13 +1008,13 @@ IInternal
         private static void filter_data_set(System.IntPtr obj, System.IntPtr pd, System.String name, System.String value, bool execute)
         {
             Eina.Log.Debug("function efl_gfx_filter_data_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((IInternalConcrete)wrapper).SetFilterData(name, value, execute);
+                    ((IInternalConcrete)ws.Target).SetFilterData(name, value, execute);
                 }
                 catch (Exception e)
                 {
@@ -1106,7 +1032,7 @@ IInternal
 
         private static efl_gfx_filter_data_set_delegate efl_gfx_filter_data_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -1145,12 +1071,16 @@ public struct Color32
         this.A = A;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Color32(IntPtr ptr)
     {
         var tmp = (Color32.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Color32.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Color32.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1187,6 +1117,8 @@ public struct Color32
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -1216,12 +1148,16 @@ public struct StateName
         this.Value = Value;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator StateName(IntPtr ptr)
     {
         var tmp = (StateName.NativeStruct)Marshal.PtrToStructure(ptr, typeof(StateName.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct StateName.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1250,6 +1186,8 @@ public struct StateName
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -1289,12 +1227,16 @@ public struct StateText
         this.Glow2 = Glow2;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator StateText(IntPtr ptr)
     {
         var tmp = (StateText.NativeStruct)Marshal.PtrToStructure(ptr, typeof(StateText.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct StateText.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1331,6 +1273,8 @@ public struct StateText
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -1386,12 +1330,16 @@ public struct State
         this.Pos = Pos;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator State(IntPtr ptr)
     {
         var tmp = (State.NativeStruct)Marshal.PtrToStructure(ptr, typeof(State.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct State.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1444,6 +1392,8 @@ public struct State
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 081d310..da88612 100644 (file)
@@ -9,9 +9,12 @@ namespace Efl {
 
 namespace Canvas {
 
-/// <summary>EFL Gesture abstract class</summary>
+/// <summary>EFL Gesture abstract class
+/// A gesture class defines a method that spcific gesture event and privides information about the gesture&apos;s type, state, and associated pointer information.
+/// 
+/// For cetain gesture types, additional methods are defined to provide meaningful gesture information to the user.</summary>
 [Efl.Canvas.Gesture.NativeMethods]
-public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
+public abstract class Gesture : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +47,7 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Gesture(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class GestureRealized : Gesture
@@ -62,42 +65,6 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>This property holds the type of the gesture.</summary>
-    /// <returns>gesture type</returns>
-    virtual public Efl.EventDescription GetGestureType() {
-         var _ret_var = Efl.Canvas.Gesture.NativeMethods.efl_gesture_type_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        var __ret_tmp = Eina.PrimitiveConversion.PointerToManaged<Efl.EventDescription>(_ret_var);
-        
-        return __ret_tmp;
- }
     /// <summary>This property holds the current state of the gesture.</summary>
     /// <returns>gesture state</returns>
     virtual public Efl.Canvas.GestureState GetState() {
@@ -113,35 +80,49 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
                          }
     /// <summary>This property holds the hotspot of the current gesture.</summary>
     /// <returns>hotspot co-ordinate</returns>
-    virtual public Eina.Vector2 GetHotspot() {
+    virtual public Eina.Position2D GetHotspot() {
          var _ret_var = Efl.Canvas.Gesture.NativeMethods.efl_gesture_hotspot_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
     /// <summary>This property holds the hotspot of the current gesture.</summary>
     /// <param name="hotspot">hotspot co-ordinate</param>
-    virtual public void SetHotspot(Eina.Vector2 hotspot) {
-         Eina.Vector2.NativeStruct _in_hotspot = hotspot;
+    virtual public void SetHotspot(Eina.Position2D hotspot) {
+         Eina.Position2D.NativeStruct _in_hotspot = hotspot;
                         Efl.Canvas.Gesture.NativeMethods.efl_gesture_hotspot_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),_in_hotspot);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>This property holds the type of the gesture.</summary>
-/// <value>gesture type</value>
-    public Efl.EventDescription GestureType {
-        get { return GetGestureType(); }
-    }
+    /// <summary>This property holds the timestamp of the current gesture.</summary>
+    /// <returns>The timestamp</returns>
+    virtual public uint GetTimestamp() {
+         var _ret_var = Efl.Canvas.Gesture.NativeMethods.efl_gesture_timestamp_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>This property holds the timestamp of the current gesture.</summary>
+    /// <param name="timestamp">The timestamp</param>
+    virtual public void SetTimestamp(uint timestamp) {
+                                 Efl.Canvas.Gesture.NativeMethods.efl_gesture_timestamp_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),timestamp);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>This property holds the current state of the gesture.</summary>
-/// <value>gesture state</value>
+    /// <value>gesture state</value>
     public Efl.Canvas.GestureState State {
         get { return GetState(); }
         set { SetState(value); }
     }
     /// <summary>This property holds the hotspot of the current gesture.</summary>
-/// <value>hotspot co-ordinate</value>
-    public Eina.Vector2 Hotspot {
+    /// <value>hotspot co-ordinate</value>
+    public Eina.Position2D Hotspot {
         get { return GetHotspot(); }
         set { SetHotspot(value); }
     }
+    /// <summary>This property holds the timestamp of the current gesture.</summary>
+    /// <value>The timestamp</value>
+    public uint Timestamp {
+        get { return GetTimestamp(); }
+        set { SetTimestamp(value); }
+    }
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Canvas.Gesture.efl_canvas_gesture_class_get();
@@ -158,16 +139,6 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
             var descs = new System.Collections.Generic.List<Efl_Op_Description>();
             var methods = Efl.Eo.Globals.GetUserMethods(type);
 
-            if (efl_gesture_type_get_static_delegate == null)
-            {
-                efl_gesture_type_get_static_delegate = new efl_gesture_type_get_delegate(type_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetGestureType") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_type_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_type_get_static_delegate) });
-            }
-
             if (efl_gesture_state_get_static_delegate == null)
             {
                 efl_gesture_state_get_static_delegate = new efl_gesture_state_get_delegate(state_get);
@@ -208,6 +179,26 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_hotspot_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_hotspot_set_static_delegate) });
             }
 
+            if (efl_gesture_timestamp_get_static_delegate == null)
+            {
+                efl_gesture_timestamp_get_static_delegate = new efl_gesture_timestamp_get_delegate(timestamp_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetTimestamp") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_timestamp_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_timestamp_get_static_delegate) });
+            }
+
+            if (efl_gesture_timestamp_set_static_delegate == null)
+            {
+                efl_gesture_timestamp_set_static_delegate = new efl_gesture_timestamp_set_delegate(timestamp_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetTimestamp") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_timestamp_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_timestamp_set_static_delegate) });
+            }
+
             descs.AddRange(base.GetEoOps(type));
             return descs;
         }
@@ -218,43 +209,7 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
             return Efl.Canvas.Gesture.efl_canvas_gesture_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        
-        private delegate System.IntPtr efl_gesture_type_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate System.IntPtr efl_gesture_type_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_gesture_type_get_api_delegate> efl_gesture_type_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_type_get_api_delegate>(Module, "efl_gesture_type_get");
-
-        private static System.IntPtr type_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_gesture_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.EventDescription _ret_var = default(Efl.EventDescription);
-                try
-                {
-                    _ret_var = ((Gesture)wrapper).GetGestureType();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return Eina.PrimitiveConversion.ManagedToPointerAlloc(_ret_var);
-
-            }
-            else
-            {
-                return efl_gesture_type_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_gesture_type_get_delegate efl_gesture_type_get_static_delegate;
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Canvas.GestureState efl_gesture_state_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -267,13 +222,13 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
         private static Efl.Canvas.GestureState state_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gesture_state_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.GestureState _ret_var = default(Efl.Canvas.GestureState);
                 try
                 {
-                    _ret_var = ((Gesture)wrapper).GetState();
+                    _ret_var = ((Gesture)ws.Target).GetState();
                 }
                 catch (Exception e)
                 {
@@ -303,13 +258,13 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
         private static void state_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.GestureState state)
         {
             Eina.Log.Debug("function efl_gesture_state_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Gesture)wrapper).SetState(state);
+                    ((Gesture)ws.Target).SetState(state);
                 }
                 catch (Exception e)
                 {
@@ -328,23 +283,23 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
         private static efl_gesture_state_set_delegate efl_gesture_state_set_static_delegate;
 
         
-        private delegate Eina.Vector2.NativeStruct efl_gesture_hotspot_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate Eina.Position2D.NativeStruct efl_gesture_hotspot_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate Eina.Vector2.NativeStruct efl_gesture_hotspot_get_api_delegate(System.IntPtr obj);
+        public delegate Eina.Position2D.NativeStruct efl_gesture_hotspot_get_api_delegate(System.IntPtr obj);
 
         public static Efl.Eo.FunctionWrapper<efl_gesture_hotspot_get_api_delegate> efl_gesture_hotspot_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_hotspot_get_api_delegate>(Module, "efl_gesture_hotspot_get");
 
-        private static Eina.Vector2.NativeStruct hotspot_get(System.IntPtr obj, System.IntPtr pd)
+        private static Eina.Position2D.NativeStruct hotspot_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gesture_hotspot_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Eina.Vector2 _ret_var = default(Eina.Vector2);
+            Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Gesture)wrapper).GetHotspot();
+                    _ret_var = ((Gesture)ws.Target).GetHotspot();
                 }
                 catch (Exception e)
                 {
@@ -364,24 +319,24 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
         private static efl_gesture_hotspot_get_delegate efl_gesture_hotspot_get_static_delegate;
 
         
-        private delegate void efl_gesture_hotspot_set_delegate(System.IntPtr obj, System.IntPtr pd,  Eina.Vector2.NativeStruct hotspot);
+        private delegate void efl_gesture_hotspot_set_delegate(System.IntPtr obj, System.IntPtr pd,  Eina.Position2D.NativeStruct hotspot);
 
         
-        public delegate void efl_gesture_hotspot_set_api_delegate(System.IntPtr obj,  Eina.Vector2.NativeStruct hotspot);
+        public delegate void efl_gesture_hotspot_set_api_delegate(System.IntPtr obj,  Eina.Position2D.NativeStruct hotspot);
 
         public static Efl.Eo.FunctionWrapper<efl_gesture_hotspot_set_api_delegate> efl_gesture_hotspot_set_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_hotspot_set_api_delegate>(Module, "efl_gesture_hotspot_set");
 
-        private static void hotspot_set(System.IntPtr obj, System.IntPtr pd, Eina.Vector2.NativeStruct hotspot)
+        private static void hotspot_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct hotspot)
         {
             Eina.Log.Debug("function efl_gesture_hotspot_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-        Eina.Vector2 _in_hotspot = hotspot;
+        Eina.Position2D _in_hotspot = hotspot;
                             
                 try
                 {
-                    ((Gesture)wrapper).SetHotspot(_in_hotspot);
+                    ((Gesture)ws.Target).SetHotspot(_in_hotspot);
                 }
                 catch (Exception e)
                 {
@@ -399,7 +354,78 @@ public abstract class Gesture : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_gesture_hotspot_set_delegate efl_gesture_hotspot_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        
+        private delegate uint efl_gesture_timestamp_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate uint efl_gesture_timestamp_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_timestamp_get_api_delegate> efl_gesture_timestamp_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_timestamp_get_api_delegate>(Module, "efl_gesture_timestamp_get");
+
+        private static uint timestamp_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_timestamp_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            uint _ret_var = default(uint);
+                try
+                {
+                    _ret_var = ((Gesture)ws.Target).GetTimestamp();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_timestamp_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_timestamp_get_delegate efl_gesture_timestamp_get_static_delegate;
+
+        
+        private delegate void efl_gesture_timestamp_set_delegate(System.IntPtr obj, System.IntPtr pd,  uint timestamp);
+
+        
+        public delegate void efl_gesture_timestamp_set_api_delegate(System.IntPtr obj,  uint timestamp);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_timestamp_set_api_delegate> efl_gesture_timestamp_set_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_timestamp_set_api_delegate>(Module, "efl_gesture_timestamp_set");
+
+        private static void timestamp_set(System.IntPtr obj, System.IntPtr pd, uint timestamp)
+        {
+            Eina.Log.Debug("function efl_gesture_timestamp_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Gesture)ws.Target).SetTimestamp(timestamp);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_gesture_timestamp_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), timestamp);
+            }
+        }
+
+        private static efl_gesture_timestamp_set_delegate efl_gesture_timestamp_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_double_tap.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_double_tap.eo.cs
new file mode 100644 (file)
index 0000000..416b6d1
--- /dev/null
@@ -0,0 +1,90 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Double Tap class</summary>
+[Efl.Canvas.GestureDoubleTap.NativeMethods]
+public class GestureDoubleTap : Efl.Canvas.Gesture
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureDoubleTap))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_double_tap_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureDoubleTap"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureDoubleTap(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_double_tap_class_get(), typeof(GestureDoubleTap), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureDoubleTap"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureDoubleTap(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureDoubleTap"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureDoubleTap(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureDoubleTap.efl_canvas_gesture_double_tap_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.Gesture.NativeMethods
+    {
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureDoubleTap.efl_canvas_gesture_double_tap_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_flick.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_flick.eo.cs
new file mode 100644 (file)
index 0000000..7c0fbde
--- /dev/null
@@ -0,0 +1,199 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Flick class</summary>
+[Efl.Canvas.GestureFlick.NativeMethods]
+public class GestureFlick : Efl.Canvas.Gesture
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureFlick))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_flick_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureFlick"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureFlick(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_flick_class_get(), typeof(GestureFlick), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureFlick"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureFlick(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureFlick"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureFlick(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Gets flick gesture momentum value</summary>
+    /// <returns>The momentum vector</returns>
+    virtual public Eina.Vector2 GetMomentum() {
+         var _ret_var = Efl.Canvas.GestureFlick.NativeMethods.efl_gesture_flick_momentum_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Gets flick direction angle</summary>
+    /// <returns>The angle value</returns>
+    virtual public double GetAngle() {
+         var _ret_var = Efl.Canvas.GestureFlick.NativeMethods.efl_gesture_flick_angle_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureFlick.efl_canvas_gesture_flick_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.Gesture.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Evas);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_gesture_flick_momentum_get_static_delegate == null)
+            {
+                efl_gesture_flick_momentum_get_static_delegate = new efl_gesture_flick_momentum_get_delegate(momentum_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetMomentum") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_flick_momentum_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_flick_momentum_get_static_delegate) });
+            }
+
+            if (efl_gesture_flick_angle_get_static_delegate == null)
+            {
+                efl_gesture_flick_angle_get_static_delegate = new efl_gesture_flick_angle_get_delegate(angle_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetAngle") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_flick_angle_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_flick_angle_get_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureFlick.efl_canvas_gesture_flick_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate Eina.Vector2.NativeStruct efl_gesture_flick_momentum_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Eina.Vector2.NativeStruct efl_gesture_flick_momentum_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_flick_momentum_get_api_delegate> efl_gesture_flick_momentum_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_flick_momentum_get_api_delegate>(Module, "efl_gesture_flick_momentum_get");
+
+        private static Eina.Vector2.NativeStruct momentum_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_flick_momentum_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Eina.Vector2 _ret_var = default(Eina.Vector2);
+                try
+                {
+                    _ret_var = ((GestureFlick)ws.Target).GetMomentum();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_flick_momentum_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_flick_momentum_get_delegate efl_gesture_flick_momentum_get_static_delegate;
+
+        
+        private delegate double efl_gesture_flick_angle_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_gesture_flick_angle_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_flick_angle_get_api_delegate> efl_gesture_flick_angle_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_flick_angle_get_api_delegate>(Module, "efl_gesture_flick_angle_get");
+
+        private static double angle_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_flick_angle_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((GestureFlick)ws.Target).GetAngle();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_flick_angle_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_flick_angle_get_delegate efl_gesture_flick_angle_get_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
index 43a7ad5..d5aa1ad 100644 (file)
@@ -9,14 +9,9 @@ namespace Efl {
 
 namespace Canvas {
 
-///<summary>Event argument wrapper for event <see cref="Efl.Canvas.GestureLongTap.GestureLongTapEvt"/>.</summary>
-public class GestureLongTapGestureLongTapEvt_Args : EventArgs {
-    ///<summary>Actual event payload.</summary>
-    public Efl.Canvas.Gesture arg { get; set; }
-}
 /// <summary>EFL Gesture Long Tap class</summary>
 [Efl.Canvas.GestureLongTap.NativeMethods]
-public class GestureLongTap : Efl.Canvas.Gesture, Efl.Eo.IWrapper
+public class GestureLongTap : Efl.Canvas.Gesture
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -49,7 +44,7 @@ public class GestureLongTap : Efl.Canvas.Gesture, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected GestureLongTap(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="GestureLongTap"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -60,88 +55,6 @@ public class GestureLongTap : Efl.Canvas.Gesture, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Event for tap gesture</summary>
-    public event EventHandler<Efl.Canvas.GestureLongTapGestureLongTapEvt_Args> GestureLongTapEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Canvas.GestureLongTapGestureLongTapEvt_Args args = new Efl.Canvas.GestureLongTapGestureLongTapEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.Gesture);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_EVENT_GESTURE_LONG_TAP";
-                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_EVENT_GESTURE_LONG_TAP";
-                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event GestureLongTapEvt.</summary>
-    public void OnGestureLongTapEvt(Efl.Canvas.GestureLongTapGestureLongTapEvt_Args e)
-    {
-        var key = "_EFL_EVENT_GESTURE_LONG_TAP";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Canvas.GestureLongTap.efl_canvas_gesture_long_tap_class_get();
@@ -165,9 +78,9 @@ public class GestureLongTap : Efl.Canvas.Gesture, Efl.Eo.IWrapper
             return Efl.Canvas.GestureLongTap.efl_canvas_gesture_long_tap_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 1c973b9..51c4045 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>EFL Gesture Manager class</summary>
 [Efl.Canvas.GestureManager.NativeMethods]
-public class GestureManager : Efl.Object, Efl.Eo.IWrapper
+public class GestureManager : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected GestureManager(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="GestureManager"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>This property holds the config value for the recognizer</summary>
     /// <param name="name">propery name</param>
     /// <returns>value of the property</returns>
@@ -99,20 +72,24 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
                                          }
     /// <summary>This function is called to register a new Efl.Canvas.Gesture_Recognizer</summary>
     /// <param name="recognizer">The gesture recognizer object</param>
-    /// <returns>Returns the Efl.Event_Description type the recognizer supports</returns>
-    virtual public Efl.EventDescription RecognizerRegister(Efl.Canvas.GestureRecognizer recognizer) {
-                                 var _ret_var = Efl.Canvas.GestureManager.NativeMethods.efl_gesture_manager_recognizer_register_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),recognizer);
+    virtual public void RecognizerRegister(Efl.Canvas.GestureRecognizer recognizer) {
+                                 Efl.Canvas.GestureManager.NativeMethods.efl_gesture_manager_recognizer_register_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),recognizer);
         Eina.Error.RaiseIfUnhandledException();
-                        var __ret_tmp = Eina.PrimitiveConversion.PointerToManaged<Efl.EventDescription>(_ret_var);
-        
-        return __ret_tmp;
- }
+                         }
     /// <summary>This function is called to unregister a Efl.Canvas.Gesture_Recognizer</summary>
     /// <param name="recognizer">The gesture recognizer object</param>
     virtual public void RecognizerUnregister(Efl.Canvas.GestureRecognizer recognizer) {
                                  Efl.Canvas.GestureManager.NativeMethods.efl_gesture_manager_recognizer_unregister_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),recognizer);
         Eina.Error.RaiseIfUnhandledException();
                          }
+    /// <summary>Gets event type&apos;s recognizer</summary>
+    /// <param name="gesture_type">The gesture type</param>
+    /// <returns>The gesture recognizer</returns>
+    virtual public Efl.Canvas.GestureRecognizer GetRecognizer(Efl.Canvas.GestureRecognizerType gesture_type) {
+                                 var _ret_var = Efl.Canvas.GestureManager.NativeMethods.efl_gesture_manager_recognizer_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),gesture_type);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Canvas.GestureManager.efl_canvas_gesture_manager_class_get();
@@ -169,6 +146,16 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_manager_recognizer_unregister"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_manager_recognizer_unregister_static_delegate) });
             }
 
+            if (efl_gesture_manager_recognizer_get_static_delegate == null)
+            {
+                efl_gesture_manager_recognizer_get_static_delegate = new efl_gesture_manager_recognizer_get_delegate(recognizer_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetRecognizer") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_manager_recognizer_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_manager_recognizer_get_static_delegate) });
+            }
+
             descs.AddRange(base.GetEoOps(type));
             return descs;
         }
@@ -179,7 +166,7 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
             return Efl.Canvas.GestureManager.efl_canvas_gesture_manager_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Eina.ValueMarshaler))]
         private delegate Eina.Value efl_gesture_manager_config_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
@@ -192,13 +179,13 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
         private static Eina.Value config_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_gesture_manager_config_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Value _ret_var = default(Eina.Value);
                 try
                 {
-                    _ret_var = ((GestureManager)wrapper).GetConfig(name);
+                    _ret_var = ((GestureManager)ws.Target).GetConfig(name);
                 }
                 catch (Exception e)
                 {
@@ -228,13 +215,13 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
         private static void config_set(System.IntPtr obj, System.IntPtr pd, System.String name, Eina.Value value)
         {
             Eina.Log.Debug("function efl_gesture_manager_config_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((GestureManager)wrapper).SetConfig(name, value);
+                    ((GestureManager)ws.Target).SetConfig(name, value);
                 }
                 catch (Exception e)
                 {
@@ -253,23 +240,23 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
         private static efl_gesture_manager_config_set_delegate efl_gesture_manager_config_set_static_delegate;
 
         
-        private delegate System.IntPtr efl_gesture_manager_recognizer_register_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.GestureRecognizer recognizer);
+        private delegate void efl_gesture_manager_recognizer_register_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.GestureRecognizer recognizer);
 
         
-        public delegate System.IntPtr efl_gesture_manager_recognizer_register_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.GestureRecognizer recognizer);
+        public delegate void efl_gesture_manager_recognizer_register_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.GestureRecognizer recognizer);
 
         public static Efl.Eo.FunctionWrapper<efl_gesture_manager_recognizer_register_api_delegate> efl_gesture_manager_recognizer_register_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_manager_recognizer_register_api_delegate>(Module, "efl_gesture_manager_recognizer_register");
 
-        private static System.IntPtr recognizer_register(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.GestureRecognizer recognizer)
+        private static void recognizer_register(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.GestureRecognizer recognizer)
         {
             Eina.Log.Debug("function efl_gesture_manager_recognizer_register was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-                                    Efl.EventDescription _ret_var = default(Efl.EventDescription);
+                                    
                 try
                 {
-                    _ret_var = ((GestureManager)wrapper).RecognizerRegister(recognizer);
+                    ((GestureManager)ws.Target).RecognizerRegister(recognizer);
                 }
                 catch (Exception e)
                 {
@@ -277,12 +264,11 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-                        return Eina.PrimitiveConversion.ManagedToPointerAlloc(_ret_var);
-
+                        
             }
             else
             {
-                return efl_gesture_manager_recognizer_register_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), recognizer);
+                efl_gesture_manager_recognizer_register_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), recognizer);
             }
         }
 
@@ -299,13 +285,13 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
         private static void recognizer_unregister(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.GestureRecognizer recognizer)
         {
             Eina.Log.Debug("function efl_gesture_manager_recognizer_unregister was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((GestureManager)wrapper).RecognizerUnregister(recognizer);
+                    ((GestureManager)ws.Target).RecognizerUnregister(recognizer);
                 }
                 catch (Exception e)
                 {
@@ -323,7 +309,43 @@ public class GestureManager : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_gesture_manager_recognizer_unregister_delegate efl_gesture_manager_recognizer_unregister_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        private delegate Efl.Canvas.GestureRecognizer efl_gesture_manager_recognizer_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Canvas.GestureRecognizerType gesture_type);
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        public delegate Efl.Canvas.GestureRecognizer efl_gesture_manager_recognizer_get_api_delegate(System.IntPtr obj,  Efl.Canvas.GestureRecognizerType gesture_type);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_manager_recognizer_get_api_delegate> efl_gesture_manager_recognizer_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_manager_recognizer_get_api_delegate>(Module, "efl_gesture_manager_recognizer_get");
+
+        private static Efl.Canvas.GestureRecognizer recognizer_get(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.GestureRecognizerType gesture_type)
+        {
+            Eina.Log.Debug("function efl_gesture_manager_recognizer_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    Efl.Canvas.GestureRecognizer _ret_var = default(Efl.Canvas.GestureRecognizer);
+                try
+                {
+                    _ret_var = ((GestureManager)ws.Target).GetRecognizer(gesture_type);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_manager_recognizer_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), gesture_type);
+            }
+        }
+
+        private static efl_gesture_manager_recognizer_get_delegate efl_gesture_manager_recognizer_get_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_momentum.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_momentum.eo.cs
new file mode 100644 (file)
index 0000000..131478a
--- /dev/null
@@ -0,0 +1,146 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Momentum class</summary>
+[Efl.Canvas.GestureMomentum.NativeMethods]
+public class GestureMomentum : Efl.Canvas.Gesture
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureMomentum))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_momentum_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureMomentum"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureMomentum(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_momentum_class_get(), typeof(GestureMomentum), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureMomentum"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureMomentum(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureMomentum"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureMomentum(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Gets momentum value</summary>
+    /// <returns>The momentum vector</returns>
+    virtual public Eina.Vector2 GetMomentum() {
+         var _ret_var = Efl.Canvas.GestureMomentum.NativeMethods.efl_gesture_momentum_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureMomentum.efl_canvas_gesture_momentum_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.Gesture.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Evas);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_gesture_momentum_get_static_delegate == null)
+            {
+                efl_gesture_momentum_get_static_delegate = new efl_gesture_momentum_get_delegate(momentum_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetMomentum") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_momentum_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_momentum_get_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureMomentum.efl_canvas_gesture_momentum_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate Eina.Vector2.NativeStruct efl_gesture_momentum_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Eina.Vector2.NativeStruct efl_gesture_momentum_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_momentum_get_api_delegate> efl_gesture_momentum_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_momentum_get_api_delegate>(Module, "efl_gesture_momentum_get");
+
+        private static Eina.Vector2.NativeStruct momentum_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_momentum_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Eina.Vector2 _ret_var = default(Eina.Vector2);
+                try
+                {
+                    _ret_var = ((GestureMomentum)ws.Target).GetMomentum();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_momentum_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_momentum_get_delegate efl_gesture_momentum_get_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
index 2410e8d..c36ba93 100644 (file)
@@ -9,9 +9,14 @@ namespace Efl {
 
 namespace Canvas {
 
-/// <summary>EFL Gesture Recognizer abstract class</summary>
+/// <summary>EFL Gesture Recognizer abstract class
+/// The gesture recognizer class grabs events that occur on the target object that user register to see if a particluar gesture has occurred.
+/// 
+/// Uesr can adjust the config value involved in gesture recognition through the method provided by the gesture recognizer.
+/// 
+/// The default config values follow the system default config value.</summary>
 [Efl.Canvas.GestureRecognizer.NativeMethods]
-public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
+public abstract class GestureRecognizer : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -29,7 +34,7 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
         }
     }
 
-    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas\r)] internal static extern System.IntPtr
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
         efl_canvas_gesture_recognizer_class_get();
     /// <summary>Initializes a new instance of the <see cref="GestureRecognizer"/> class.</summary>
     /// <param name="parent">Parent instance.</param>
@@ -44,7 +49,7 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected GestureRecognizer(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class GestureRecognizerRealized : GestureRecognizer
@@ -62,33 +67,6 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>This property holds the config value for the recognizer</summary>
     /// <param name="name">propery name</param>
     /// <returns>value of the property</returns>
@@ -100,8 +78,8 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
     /// <summary>This function is called to create a new Efl.Canvas.Gesture object for the given target</summary>
     /// <param name="target">The target widget</param>
     /// <returns>Returns the Efl.Canvas.Gesture event object</returns>
-    virtual public Efl.Canvas.Gesture Create(Efl.Object target) {
-                                 var _ret_var = Efl.Canvas.GestureRecognizer.NativeMethods.efl_gesture_recognizer_create_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),target);
+    virtual public Efl.Canvas.Gesture Add(Efl.Object target) {
+                                 var _ret_var = Efl.Canvas.GestureRecognizer.NativeMethods.efl_gesture_recognizer_add_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),target);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
@@ -130,7 +108,7 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
     /// For internal use by generated code only.</summary>
     public new class NativeMethods : Efl.Object.NativeMethods
     {
-        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Evas\r);
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Evas);
         /// <summary>Gets the list of Eo operations to override.</summary>
         /// <returns>The list of Eo operations to be overload.</returns>
         public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
@@ -148,14 +126,14 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_recognizer_config_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_recognizer_config_get_static_delegate) });
             }
 
-            if (efl_gesture_recognizer_create_static_delegate == null)
+            if (efl_gesture_recognizer_add_static_delegate == null)
             {
-                efl_gesture_recognizer_create_static_delegate = new efl_gesture_recognizer_create_delegate(create);
+                efl_gesture_recognizer_add_static_delegate = new efl_gesture_recognizer_add_delegate(add);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "Create") != null)
+            if (methods.FirstOrDefault(m => m.Name == "Add") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_recognizer_create"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_recognizer_create_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_recognizer_add"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_recognizer_add_static_delegate) });
             }
 
             if (efl_gesture_recognizer_recognize_static_delegate == null)
@@ -188,7 +166,7 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
             return Efl.Canvas.GestureRecognizer.efl_canvas_gesture_recognizer_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Eina.ValueMarshaler))]
         private delegate Eina.Value efl_gesture_recognizer_config_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
@@ -201,13 +179,13 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
         private static Eina.Value config_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_gesture_recognizer_config_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Value _ret_var = default(Eina.Value);
                 try
                 {
-                    _ret_var = ((GestureRecognizer)wrapper).GetConfig(name);
+                    _ret_var = ((GestureRecognizer)ws.Target).GetConfig(name);
                 }
                 catch (Exception e)
                 {
@@ -227,23 +205,23 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
         private static efl_gesture_recognizer_config_get_delegate efl_gesture_recognizer_config_get_static_delegate;
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        private delegate Efl.Canvas.Gesture efl_gesture_recognizer_create_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object target);
+        private delegate Efl.Canvas.Gesture efl_gesture_recognizer_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object target);
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        public delegate Efl.Canvas.Gesture efl_gesture_recognizer_create_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object target);
+        public delegate Efl.Canvas.Gesture efl_gesture_recognizer_add_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object target);
 
-        public static Efl.Eo.FunctionWrapper<efl_gesture_recognizer_create_api_delegate> efl_gesture_recognizer_create_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_recognizer_create_api_delegate>(Module, "efl_gesture_recognizer_create");
+        public static Efl.Eo.FunctionWrapper<efl_gesture_recognizer_add_api_delegate> efl_gesture_recognizer_add_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_recognizer_add_api_delegate>(Module, "efl_gesture_recognizer_add");
 
-        private static Efl.Canvas.Gesture create(System.IntPtr obj, System.IntPtr pd, Efl.Object target)
+        private static Efl.Canvas.Gesture add(System.IntPtr obj, System.IntPtr pd, Efl.Object target)
         {
-            Eina.Log.Debug("function efl_gesture_recognizer_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_gesture_recognizer_add was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Canvas.Gesture _ret_var = default(Efl.Canvas.Gesture);
                 try
                 {
-                    _ret_var = ((GestureRecognizer)wrapper).Create(target);
+                    _ret_var = ((GestureRecognizer)ws.Target).Add(target);
                 }
                 catch (Exception e)
                 {
@@ -256,11 +234,11 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
             }
             else
             {
-                return efl_gesture_recognizer_create_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), target);
+                return efl_gesture_recognizer_add_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), target);
             }
         }
 
-        private static efl_gesture_recognizer_create_delegate efl_gesture_recognizer_create_static_delegate;
+        private static efl_gesture_recognizer_add_delegate efl_gesture_recognizer_add_static_delegate;
 
         
         private delegate Efl.Canvas.GestureRecognizerResult efl_gesture_recognizer_recognize_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Gesture gesture, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object watched, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.GestureTouch kw_event);
@@ -273,13 +251,13 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
         private static Efl.Canvas.GestureRecognizerResult recognize(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Gesture gesture, Efl.Object watched, Efl.Canvas.GestureTouch kw_event)
         {
             Eina.Log.Debug("function efl_gesture_recognizer_recognize was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Canvas.GestureRecognizerResult _ret_var = default(Efl.Canvas.GestureRecognizerResult);
                 try
                 {
-                    _ret_var = ((GestureRecognizer)wrapper).Recognize(gesture, watched, kw_event);
+                    _ret_var = ((GestureRecognizer)ws.Target).Recognize(gesture, watched, kw_event);
                 }
                 catch (Exception e)
                 {
@@ -309,13 +287,13 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
         private static void reset(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Gesture gesture)
         {
             Eina.Log.Debug("function efl_gesture_recognizer_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((GestureRecognizer)wrapper).Reset(gesture);
+                    ((GestureRecognizer)ws.Target).Reset(gesture);
                 }
                 catch (Exception e)
                 {
@@ -333,7 +311,7 @@ public abstract class GestureRecognizer : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_gesture_recognizer_reset_delegate efl_gesture_recognizer_reset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_double_tap.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_double_tap.eo.cs
new file mode 100644 (file)
index 0000000..3ed8384
--- /dev/null
@@ -0,0 +1,203 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Recognizer Double Tap class</summary>
+[Efl.Canvas.GestureRecognizerDoubleTap.NativeMethods]
+public class GestureRecognizerDoubleTap : Efl.Canvas.GestureRecognizer
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureRecognizerDoubleTap))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_recognizer_double_tap_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerDoubleTap"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureRecognizerDoubleTap(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_recognizer_double_tap_class_get(), typeof(GestureRecognizerDoubleTap), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerDoubleTap"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureRecognizerDoubleTap(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerDoubleTap"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureRecognizerDoubleTap(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Sets the time between taps to be recognized as a double tap</summary>
+    /// <returns>Allowed time gap value</returns>
+    virtual public double GetTimeout() {
+         var _ret_var = Efl.Canvas.GestureRecognizerDoubleTap.NativeMethods.efl_gesture_recognizer_double_tap_timeout_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Sets the time between taps to be recognized as a double tap</summary>
+    /// <param name="time">Allowed time gap value</param>
+    virtual public void SetTimeout(double time) {
+                                 Efl.Canvas.GestureRecognizerDoubleTap.NativeMethods.efl_gesture_recognizer_double_tap_timeout_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),time);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Sets the time between taps to be recognized as a double tap</summary>
+    /// <value>Allowed time gap value</value>
+    public double Timeout {
+        get { return GetTimeout(); }
+        set { SetTimeout(value); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureRecognizerDoubleTap.efl_canvas_gesture_recognizer_double_tap_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.GestureRecognizer.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Evas);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_gesture_recognizer_double_tap_timeout_get_static_delegate == null)
+            {
+                efl_gesture_recognizer_double_tap_timeout_get_static_delegate = new efl_gesture_recognizer_double_tap_timeout_get_delegate(timeout_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetTimeout") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_recognizer_double_tap_timeout_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_recognizer_double_tap_timeout_get_static_delegate) });
+            }
+
+            if (efl_gesture_recognizer_double_tap_timeout_set_static_delegate == null)
+            {
+                efl_gesture_recognizer_double_tap_timeout_set_static_delegate = new efl_gesture_recognizer_double_tap_timeout_set_delegate(timeout_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetTimeout") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_recognizer_double_tap_timeout_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_recognizer_double_tap_timeout_set_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureRecognizerDoubleTap.efl_canvas_gesture_recognizer_double_tap_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate double efl_gesture_recognizer_double_tap_timeout_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_gesture_recognizer_double_tap_timeout_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_recognizer_double_tap_timeout_get_api_delegate> efl_gesture_recognizer_double_tap_timeout_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_recognizer_double_tap_timeout_get_api_delegate>(Module, "efl_gesture_recognizer_double_tap_timeout_get");
+
+        private static double timeout_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_recognizer_double_tap_timeout_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((GestureRecognizerDoubleTap)ws.Target).GetTimeout();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_recognizer_double_tap_timeout_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_recognizer_double_tap_timeout_get_delegate efl_gesture_recognizer_double_tap_timeout_get_static_delegate;
+
+        
+        private delegate void efl_gesture_recognizer_double_tap_timeout_set_delegate(System.IntPtr obj, System.IntPtr pd,  double time);
+
+        
+        public delegate void efl_gesture_recognizer_double_tap_timeout_set_api_delegate(System.IntPtr obj,  double time);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_recognizer_double_tap_timeout_set_api_delegate> efl_gesture_recognizer_double_tap_timeout_set_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_recognizer_double_tap_timeout_set_api_delegate>(Module, "efl_gesture_recognizer_double_tap_timeout_set");
+
+        private static void timeout_set(System.IntPtr obj, System.IntPtr pd, double time)
+        {
+            Eina.Log.Debug("function efl_gesture_recognizer_double_tap_timeout_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((GestureRecognizerDoubleTap)ws.Target).SetTimeout(time);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_gesture_recognizer_double_tap_timeout_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), time);
+            }
+        }
+
+        private static efl_gesture_recognizer_double_tap_timeout_set_delegate efl_gesture_recognizer_double_tap_timeout_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_flick.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_flick.eo.cs
new file mode 100644 (file)
index 0000000..f5e63f3
--- /dev/null
@@ -0,0 +1,90 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Recognizer Flick Class</summary>
+[Efl.Canvas.GestureRecognizerFlick.NativeMethods]
+public class GestureRecognizerFlick : Efl.Canvas.GestureRecognizer
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureRecognizerFlick))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_recognizer_flick_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerFlick"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureRecognizerFlick(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_recognizer_flick_class_get(), typeof(GestureRecognizerFlick), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerFlick"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureRecognizerFlick(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerFlick"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureRecognizerFlick(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureRecognizerFlick.efl_canvas_gesture_recognizer_flick_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.GestureRecognizer.NativeMethods
+    {
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureRecognizerFlick.efl_canvas_gesture_recognizer_flick_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_long_tap.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_long_tap.eo.cs
new file mode 100644 (file)
index 0000000..6276c9a
--- /dev/null
@@ -0,0 +1,203 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Recognizer Long Tap class</summary>
+[Efl.Canvas.GestureRecognizerLongTap.NativeMethods]
+public class GestureRecognizerLongTap : Efl.Canvas.GestureRecognizer
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureRecognizerLongTap))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_recognizer_long_tap_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerLongTap"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureRecognizerLongTap(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_recognizer_long_tap_class_get(), typeof(GestureRecognizerLongTap), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerLongTap"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureRecognizerLongTap(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerLongTap"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureRecognizerLongTap(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Sets the holding time to be recognized as a long tap.</summary>
+    /// <returns>Allowed time gap value</returns>
+    virtual public double GetTimeout() {
+         var _ret_var = Efl.Canvas.GestureRecognizerLongTap.NativeMethods.efl_gesture_recognizer_long_tap_timeout_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Sets the holding time to be recognized as a long tap.</summary>
+    /// <param name="time">Allowed time gap value</param>
+    virtual public void SetTimeout(double time) {
+                                 Efl.Canvas.GestureRecognizerLongTap.NativeMethods.efl_gesture_recognizer_long_tap_timeout_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),time);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Sets the holding time to be recognized as a long tap.</summary>
+    /// <value>Allowed time gap value</value>
+    public double Timeout {
+        get { return GetTimeout(); }
+        set { SetTimeout(value); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureRecognizerLongTap.efl_canvas_gesture_recognizer_long_tap_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.GestureRecognizer.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Evas);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_gesture_recognizer_long_tap_timeout_get_static_delegate == null)
+            {
+                efl_gesture_recognizer_long_tap_timeout_get_static_delegate = new efl_gesture_recognizer_long_tap_timeout_get_delegate(timeout_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetTimeout") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_recognizer_long_tap_timeout_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_recognizer_long_tap_timeout_get_static_delegate) });
+            }
+
+            if (efl_gesture_recognizer_long_tap_timeout_set_static_delegate == null)
+            {
+                efl_gesture_recognizer_long_tap_timeout_set_static_delegate = new efl_gesture_recognizer_long_tap_timeout_set_delegate(timeout_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetTimeout") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_recognizer_long_tap_timeout_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_recognizer_long_tap_timeout_set_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureRecognizerLongTap.efl_canvas_gesture_recognizer_long_tap_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate double efl_gesture_recognizer_long_tap_timeout_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_gesture_recognizer_long_tap_timeout_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_recognizer_long_tap_timeout_get_api_delegate> efl_gesture_recognizer_long_tap_timeout_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_recognizer_long_tap_timeout_get_api_delegate>(Module, "efl_gesture_recognizer_long_tap_timeout_get");
+
+        private static double timeout_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_recognizer_long_tap_timeout_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((GestureRecognizerLongTap)ws.Target).GetTimeout();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_recognizer_long_tap_timeout_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_recognizer_long_tap_timeout_get_delegate efl_gesture_recognizer_long_tap_timeout_get_static_delegate;
+
+        
+        private delegate void efl_gesture_recognizer_long_tap_timeout_set_delegate(System.IntPtr obj, System.IntPtr pd,  double time);
+
+        
+        public delegate void efl_gesture_recognizer_long_tap_timeout_set_api_delegate(System.IntPtr obj,  double time);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_recognizer_long_tap_timeout_set_api_delegate> efl_gesture_recognizer_long_tap_timeout_set_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_recognizer_long_tap_timeout_set_api_delegate>(Module, "efl_gesture_recognizer_long_tap_timeout_set");
+
+        private static void timeout_set(System.IntPtr obj, System.IntPtr pd, double time)
+        {
+            Eina.Log.Debug("function efl_gesture_recognizer_long_tap_timeout_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((GestureRecognizerLongTap)ws.Target).SetTimeout(time);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_gesture_recognizer_long_tap_timeout_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), time);
+            }
+        }
+
+        private static efl_gesture_recognizer_long_tap_timeout_set_delegate efl_gesture_recognizer_long_tap_timeout_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_momentum.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_momentum.eo.cs
new file mode 100644 (file)
index 0000000..086bd91
--- /dev/null
@@ -0,0 +1,90 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Recognizer Momentum class</summary>
+[Efl.Canvas.GestureRecognizerMomentum.NativeMethods]
+public class GestureRecognizerMomentum : Efl.Canvas.GestureRecognizer
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureRecognizerMomentum))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_recognizer_momentum_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerMomentum"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureRecognizerMomentum(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_recognizer_momentum_class_get(), typeof(GestureRecognizerMomentum), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerMomentum"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureRecognizerMomentum(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerMomentum"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureRecognizerMomentum(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureRecognizerMomentum.efl_canvas_gesture_recognizer_momentum_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.GestureRecognizer.NativeMethods
+    {
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureRecognizerMomentum.efl_canvas_gesture_recognizer_momentum_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_tap.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_tap.eo.cs
new file mode 100644 (file)
index 0000000..ac04b9b
--- /dev/null
@@ -0,0 +1,90 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Recognizer Tap class</summary>
+[Efl.Canvas.GestureRecognizerTap.NativeMethods]
+public class GestureRecognizerTap : Efl.Canvas.GestureRecognizer
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureRecognizerTap))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_recognizer_tap_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerTap"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureRecognizerTap(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_recognizer_tap_class_get(), typeof(GestureRecognizerTap), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerTap"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureRecognizerTap(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerTap"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureRecognizerTap(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureRecognizerTap.efl_canvas_gesture_recognizer_tap_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.GestureRecognizer.NativeMethods
+    {
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureRecognizerTap.efl_canvas_gesture_recognizer_tap_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_triple_tap.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_triple_tap.eo.cs
new file mode 100644 (file)
index 0000000..88c1519
--- /dev/null
@@ -0,0 +1,203 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Recognizer Triple Tap class</summary>
+[Efl.Canvas.GestureRecognizerTripleTap.NativeMethods]
+public class GestureRecognizerTripleTap : Efl.Canvas.GestureRecognizer
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureRecognizerTripleTap))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_recognizer_triple_tap_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerTripleTap"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureRecognizerTripleTap(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_recognizer_triple_tap_class_get(), typeof(GestureRecognizerTripleTap), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerTripleTap"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureRecognizerTripleTap(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerTripleTap"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureRecognizerTripleTap(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Sets the time between taps to be recognized as a double tap.</summary>
+    /// <returns>Time value.</returns>
+    virtual public double GetTimeout() {
+         var _ret_var = Efl.Canvas.GestureRecognizerTripleTap.NativeMethods.efl_gesture_recognizer_triple_tap_timeout_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Sets the time between taps to be recognized as a double tap.</summary>
+    /// <param name="time">Time value.</param>
+    virtual public void SetTimeout(double time) {
+                                 Efl.Canvas.GestureRecognizerTripleTap.NativeMethods.efl_gesture_recognizer_triple_tap_timeout_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),time);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Sets the time between taps to be recognized as a double tap.</summary>
+    /// <value>Time value.</value>
+    public double Timeout {
+        get { return GetTimeout(); }
+        set { SetTimeout(value); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureRecognizerTripleTap.efl_canvas_gesture_recognizer_triple_tap_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.GestureRecognizer.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Evas);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_gesture_recognizer_triple_tap_timeout_get_static_delegate == null)
+            {
+                efl_gesture_recognizer_triple_tap_timeout_get_static_delegate = new efl_gesture_recognizer_triple_tap_timeout_get_delegate(timeout_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetTimeout") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_recognizer_triple_tap_timeout_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_recognizer_triple_tap_timeout_get_static_delegate) });
+            }
+
+            if (efl_gesture_recognizer_triple_tap_timeout_set_static_delegate == null)
+            {
+                efl_gesture_recognizer_triple_tap_timeout_set_static_delegate = new efl_gesture_recognizer_triple_tap_timeout_set_delegate(timeout_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetTimeout") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_recognizer_triple_tap_timeout_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_recognizer_triple_tap_timeout_set_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureRecognizerTripleTap.efl_canvas_gesture_recognizer_triple_tap_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate double efl_gesture_recognizer_triple_tap_timeout_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_gesture_recognizer_triple_tap_timeout_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_recognizer_triple_tap_timeout_get_api_delegate> efl_gesture_recognizer_triple_tap_timeout_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_recognizer_triple_tap_timeout_get_api_delegate>(Module, "efl_gesture_recognizer_triple_tap_timeout_get");
+
+        private static double timeout_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_recognizer_triple_tap_timeout_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((GestureRecognizerTripleTap)ws.Target).GetTimeout();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_recognizer_triple_tap_timeout_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_recognizer_triple_tap_timeout_get_delegate efl_gesture_recognizer_triple_tap_timeout_get_static_delegate;
+
+        
+        private delegate void efl_gesture_recognizer_triple_tap_timeout_set_delegate(System.IntPtr obj, System.IntPtr pd,  double time);
+
+        
+        public delegate void efl_gesture_recognizer_triple_tap_timeout_set_api_delegate(System.IntPtr obj,  double time);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_recognizer_triple_tap_timeout_set_api_delegate> efl_gesture_recognizer_triple_tap_timeout_set_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_recognizer_triple_tap_timeout_set_api_delegate>(Module, "efl_gesture_recognizer_triple_tap_timeout_set");
+
+        private static void timeout_set(System.IntPtr obj, System.IntPtr pd, double time)
+        {
+            Eina.Log.Debug("function efl_gesture_recognizer_triple_tap_timeout_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((GestureRecognizerTripleTap)ws.Target).SetTimeout(time);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_gesture_recognizer_triple_tap_timeout_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), time);
+            }
+        }
+
+        private static efl_gesture_recognizer_triple_tap_timeout_set_delegate efl_gesture_recognizer_triple_tap_timeout_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_zoom.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_recognizer_zoom.eo.cs
new file mode 100644 (file)
index 0000000..d645817
--- /dev/null
@@ -0,0 +1,90 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Recognizer Zoom class</summary>
+[Efl.Canvas.GestureRecognizerZoom.NativeMethods]
+public class GestureRecognizerZoom : Efl.Canvas.GestureRecognizer
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureRecognizerZoom))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_recognizer_zoom_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerZoom"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureRecognizerZoom(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_recognizer_zoom_class_get(), typeof(GestureRecognizerZoom), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerZoom"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureRecognizerZoom(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureRecognizerZoom"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureRecognizerZoom(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureRecognizerZoom.efl_canvas_gesture_recognizer_zoom_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.GestureRecognizer.NativeMethods
+    {
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureRecognizerZoom.efl_canvas_gesture_recognizer_zoom_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
index b7d1496..304ce18 100644 (file)
@@ -9,14 +9,9 @@ namespace Efl {
 
 namespace Canvas {
 
-///<summary>Event argument wrapper for event <see cref="Efl.Canvas.GestureTap.GestureTapEvt"/>.</summary>
-public class GestureTapGestureTapEvt_Args : EventArgs {
-    ///<summary>Actual event payload.</summary>
-    public Efl.Canvas.Gesture arg { get; set; }
-}
 /// <summary>EFL Gesture Tap class</summary>
 [Efl.Canvas.GestureTap.NativeMethods]
-public class GestureTap : Efl.Canvas.Gesture, Efl.Eo.IWrapper
+public class GestureTap : Efl.Canvas.Gesture
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -49,7 +44,7 @@ public class GestureTap : Efl.Canvas.Gesture, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected GestureTap(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="GestureTap"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -60,88 +55,6 @@ public class GestureTap : Efl.Canvas.Gesture, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Event for tap gesture</summary>
-    public event EventHandler<Efl.Canvas.GestureTapGestureTapEvt_Args> GestureTapEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Canvas.GestureTapGestureTapEvt_Args args = new Efl.Canvas.GestureTapGestureTapEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.Gesture);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_EVENT_GESTURE_TAP";
-                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_EVENT_GESTURE_TAP";
-                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event GestureTapEvt.</summary>
-    public void OnGestureTapEvt(Efl.Canvas.GestureTapGestureTapEvt_Args e)
-    {
-        var key = "_EFL_EVENT_GESTURE_TAP";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Canvas.GestureTap.efl_canvas_gesture_tap_class_get();
@@ -165,9 +78,9 @@ public class GestureTap : Efl.Canvas.Gesture, Efl.Eo.IWrapper
             return Efl.Canvas.GestureTap.efl_canvas_gesture_tap_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 4f6f05b..b2e6910 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>EFL Gesture Touch class</summary>
 [Efl.Canvas.GestureTouch.NativeMethods]
-public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
+public class GestureTouch : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected GestureTouch(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="GestureTouch"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,40 +55,27 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Returns the first touch point.</summary>
     /// <returns>The start position.</returns>
-    virtual public Eina.Vector2 GetStartPoint() {
+    virtual public Eina.Position2D GetStartPoint() {
          var _ret_var = Efl.Canvas.GestureTouch.NativeMethods.efl_gesture_touch_start_point_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
+    /// <summary>Returns the current touch point.</summary>
+    /// <returns>The current position.</returns>
+    virtual public Eina.Position2D GetCurPoint() {
+         var _ret_var = Efl.Canvas.GestureTouch.NativeMethods.efl_gesture_touch_cur_point_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Returns the timestamp.</summary>
+    /// <returns>The timestamp.</returns>
+    virtual public uint GetCurTimestamp() {
+         var _ret_var = Efl.Canvas.GestureTouch.NativeMethods.efl_gesture_touch_cur_timestamp_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
     /// <summary>This property tells if the event is multi touch.</summary>
     /// <returns>returns <c>true</c> if its a multi touch</returns>
     virtual public bool GetMultiTouch() {
@@ -108,7 +95,7 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
     /// <param name="pos">Position of the event</param>
     /// <param name="timestamp">The timestamp of the event</param>
     /// <param name="action">action of the event</param>
-    virtual public void PointRecord(int tool, Eina.Vector2 pos, double timestamp, Efl.Pointer.Action action) {
+    virtual public void PointRecord(int tool, Eina.Vector2 pos, uint timestamp, Efl.Pointer.Action action) {
                  Eina.Vector2.NativeStruct _in_pos = pos;
                                                                                         Efl.Canvas.GestureTouch.NativeMethods.efl_gesture_touch_point_record_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),tool, _in_pos, timestamp, action);
         Eina.Error.RaiseIfUnhandledException();
@@ -130,17 +117,27 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
                         return _ret_var;
  }
     /// <summary>Returns the first touch point.</summary>
-/// <value>The start position.</value>
-    public Eina.Vector2 StartPoint {
+    /// <value>The start position.</value>
+    public Eina.Position2D StartPoint {
         get { return GetStartPoint(); }
     }
+    /// <summary>Returns the current touch point.</summary>
+    /// <value>The current position.</value>
+    public Eina.Position2D CurPoint {
+        get { return GetCurPoint(); }
+    }
+    /// <summary>Returns the timestamp.</summary>
+    /// <value>The timestamp.</value>
+    public uint CurTimestamp {
+        get { return GetCurTimestamp(); }
+    }
     /// <summary>This property tells if the event is multi touch.</summary>
-/// <value>returns <c>true</c> if its a multi touch</value>
+    /// <value>returns <c>true</c> if its a multi touch</value>
     public bool MultiTouch {
         get { return GetMultiTouch(); }
     }
     /// <summary>This property holds the state of the touch event.</summary>
-/// <value>touch event state</value>
+    /// <value>touch event state</value>
     public Efl.Canvas.GestureTouchState State {
         get { return GetState(); }
     }
@@ -170,6 +167,26 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_touch_start_point_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_touch_start_point_get_static_delegate) });
             }
 
+            if (efl_gesture_touch_cur_point_get_static_delegate == null)
+            {
+                efl_gesture_touch_cur_point_get_static_delegate = new efl_gesture_touch_cur_point_get_delegate(cur_point_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetCurPoint") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_touch_cur_point_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_touch_cur_point_get_static_delegate) });
+            }
+
+            if (efl_gesture_touch_cur_timestamp_get_static_delegate == null)
+            {
+                efl_gesture_touch_cur_timestamp_get_static_delegate = new efl_gesture_touch_cur_timestamp_get_delegate(cur_timestamp_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetCurTimestamp") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_touch_cur_timestamp_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_touch_cur_timestamp_get_static_delegate) });
+            }
+
             if (efl_gesture_touch_multi_touch_get_static_delegate == null)
             {
                 efl_gesture_touch_multi_touch_get_static_delegate = new efl_gesture_touch_multi_touch_get_delegate(multi_touch_get);
@@ -230,26 +247,26 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
             return Efl.Canvas.GestureTouch.efl_canvas_gesture_touch_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
-        private delegate Eina.Vector2.NativeStruct efl_gesture_touch_start_point_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate Eina.Position2D.NativeStruct efl_gesture_touch_start_point_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate Eina.Vector2.NativeStruct efl_gesture_touch_start_point_get_api_delegate(System.IntPtr obj);
+        public delegate Eina.Position2D.NativeStruct efl_gesture_touch_start_point_get_api_delegate(System.IntPtr obj);
 
         public static Efl.Eo.FunctionWrapper<efl_gesture_touch_start_point_get_api_delegate> efl_gesture_touch_start_point_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_touch_start_point_get_api_delegate>(Module, "efl_gesture_touch_start_point_get");
 
-        private static Eina.Vector2.NativeStruct start_point_get(System.IntPtr obj, System.IntPtr pd)
+        private static Eina.Position2D.NativeStruct start_point_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gesture_touch_start_point_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Eina.Vector2 _ret_var = default(Eina.Vector2);
+            Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((GestureTouch)wrapper).GetStartPoint();
+                    _ret_var = ((GestureTouch)ws.Target).GetStartPoint();
                 }
                 catch (Exception e)
                 {
@@ -268,6 +285,78 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_gesture_touch_start_point_get_delegate efl_gesture_touch_start_point_get_static_delegate;
 
+        
+        private delegate Eina.Position2D.NativeStruct efl_gesture_touch_cur_point_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Eina.Position2D.NativeStruct efl_gesture_touch_cur_point_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_touch_cur_point_get_api_delegate> efl_gesture_touch_cur_point_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_touch_cur_point_get_api_delegate>(Module, "efl_gesture_touch_cur_point_get");
+
+        private static Eina.Position2D.NativeStruct cur_point_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_touch_cur_point_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Eina.Position2D _ret_var = default(Eina.Position2D);
+                try
+                {
+                    _ret_var = ((GestureTouch)ws.Target).GetCurPoint();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_touch_cur_point_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_touch_cur_point_get_delegate efl_gesture_touch_cur_point_get_static_delegate;
+
+        
+        private delegate uint efl_gesture_touch_cur_timestamp_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate uint efl_gesture_touch_cur_timestamp_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_touch_cur_timestamp_get_api_delegate> efl_gesture_touch_cur_timestamp_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_touch_cur_timestamp_get_api_delegate>(Module, "efl_gesture_touch_cur_timestamp_get");
+
+        private static uint cur_timestamp_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_touch_cur_timestamp_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            uint _ret_var = default(uint);
+                try
+                {
+                    _ret_var = ((GestureTouch)ws.Target).GetCurTimestamp();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_touch_cur_timestamp_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_touch_cur_timestamp_get_delegate efl_gesture_touch_cur_timestamp_get_static_delegate;
+
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_gesture_touch_multi_touch_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -279,13 +368,13 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
         private static bool multi_touch_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gesture_touch_multi_touch_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((GestureTouch)wrapper).GetMultiTouch();
+                    _ret_var = ((GestureTouch)ws.Target).GetMultiTouch();
                 }
                 catch (Exception e)
                 {
@@ -315,13 +404,13 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
         private static Efl.Canvas.GestureTouchState state_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gesture_touch_state_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.GestureTouchState _ret_var = default(Efl.Canvas.GestureTouchState);
                 try
                 {
-                    _ret_var = ((GestureTouch)wrapper).GetState();
+                    _ret_var = ((GestureTouch)ws.Target).GetState();
                 }
                 catch (Exception e)
                 {
@@ -341,24 +430,24 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
         private static efl_gesture_touch_state_get_delegate efl_gesture_touch_state_get_static_delegate;
 
         
-        private delegate void efl_gesture_touch_point_record_delegate(System.IntPtr obj, System.IntPtr pd,  int tool,  Eina.Vector2.NativeStruct pos,  double timestamp,  Efl.Pointer.Action action);
+        private delegate void efl_gesture_touch_point_record_delegate(System.IntPtr obj, System.IntPtr pd,  int tool,  Eina.Vector2.NativeStruct pos,  uint timestamp,  Efl.Pointer.Action action);
 
         
-        public delegate void efl_gesture_touch_point_record_api_delegate(System.IntPtr obj,  int tool,  Eina.Vector2.NativeStruct pos,  double timestamp,  Efl.Pointer.Action action);
+        public delegate void efl_gesture_touch_point_record_api_delegate(System.IntPtr obj,  int tool,  Eina.Vector2.NativeStruct pos,  uint timestamp,  Efl.Pointer.Action action);
 
         public static Efl.Eo.FunctionWrapper<efl_gesture_touch_point_record_api_delegate> efl_gesture_touch_point_record_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_touch_point_record_api_delegate>(Module, "efl_gesture_touch_point_record");
 
-        private static void point_record(System.IntPtr obj, System.IntPtr pd, int tool, Eina.Vector2.NativeStruct pos, double timestamp, Efl.Pointer.Action action)
+        private static void point_record(System.IntPtr obj, System.IntPtr pd, int tool, Eina.Vector2.NativeStruct pos, uint timestamp, Efl.Pointer.Action action)
         {
             Eina.Log.Debug("function efl_gesture_touch_point_record was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Vector2 _in_pos = pos;
                                                                                             
                 try
                 {
-                    ((GestureTouch)wrapper).PointRecord(tool, _in_pos, timestamp, action);
+                    ((GestureTouch)ws.Target).PointRecord(tool, _in_pos, timestamp, action);
                 }
                 catch (Exception e)
                 {
@@ -387,13 +476,13 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
         private static Eina.Vector2.NativeStruct delta(System.IntPtr obj, System.IntPtr pd, int tool)
         {
             Eina.Log.Debug("function efl_gesture_touch_delta was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Vector2 _ret_var = default(Eina.Vector2);
                 try
                 {
-                    _ret_var = ((GestureTouch)wrapper).Delta(tool);
+                    _ret_var = ((GestureTouch)ws.Target).Delta(tool);
                 }
                 catch (Exception e)
                 {
@@ -423,13 +512,13 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
         private static Eina.Vector2.NativeStruct distance(System.IntPtr obj, System.IntPtr pd, int tool)
         {
             Eina.Log.Debug("function efl_gesture_touch_distance was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Vector2 _ret_var = default(Eina.Vector2);
                 try
                 {
-                    _ret_var = ((GestureTouch)wrapper).Distance(tool);
+                    _ret_var = ((GestureTouch)ws.Target).Distance(tool);
                 }
                 catch (Exception e)
                 {
@@ -448,7 +537,7 @@ public class GestureTouch : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_gesture_touch_distance_delegate efl_gesture_touch_distance_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_triple_tap.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_triple_tap.eo.cs
new file mode 100644 (file)
index 0000000..d88366c
--- /dev/null
@@ -0,0 +1,90 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Triple Tap class</summary>
+[Efl.Canvas.GestureTripleTap.NativeMethods]
+public class GestureTripleTap : Efl.Canvas.Gesture
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureTripleTap))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas\r)] internal static extern System.IntPtr
+        efl_canvas_gesture_triple_tap_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureTripleTap"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureTripleTap(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_triple_tap_class_get(), typeof(GestureTripleTap), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureTripleTap"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureTripleTap(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureTripleTap"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureTripleTap(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureTripleTap.efl_canvas_gesture_triple_tap_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.Gesture.NativeMethods
+    {
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureTripleTap.efl_canvas_gesture_triple_tap_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
index 8c20bcb..4c3ce81 100644 (file)
@@ -74,3 +74,23 @@ ResultMask = 255,
 
 }
 
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>This enum type describes the state of a touch event.</summary>
+public enum GestureRecognizerType
+{
+Tap = 0,
+DoubleTap = 1,
+TripleTap = 2,
+LongTap = 3,
+Momentum = 4,
+Flick = 5,
+Zoom = 6,
+}
+
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_zoom.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_gesture_zoom.eo.cs
new file mode 100644 (file)
index 0000000..cde35ee
--- /dev/null
@@ -0,0 +1,199 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL Gesture Zoom class</summary>
+[Efl.Canvas.GestureZoom.NativeMethods]
+public class GestureZoom : Efl.Canvas.Gesture
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(GestureZoom))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_gesture_zoom_class_get();
+    /// <summary>Initializes a new instance of the <see cref="GestureZoom"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public GestureZoom(Efl.Object parent= null
+            ) : base(efl_canvas_gesture_zoom_class_get(), typeof(GestureZoom), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureZoom"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected GestureZoom(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="GestureZoom"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected GestureZoom(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Gets zoom center point reported to user</summary>
+    /// <returns>The radius value</returns>
+    virtual public double GetRadius() {
+         var _ret_var = Efl.Canvas.GestureZoom.NativeMethods.efl_gesture_zoom_radius_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Gets zoom value. (1.0 means no zoom)</summary>
+    /// <returns>The zoom value</returns>
+    virtual public double GetZoom() {
+         var _ret_var = Efl.Canvas.GestureZoom.NativeMethods.efl_gesture_zoom_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.GestureZoom.efl_canvas_gesture_zoom_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.Gesture.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Evas);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_gesture_zoom_radius_get_static_delegate == null)
+            {
+                efl_gesture_zoom_radius_get_static_delegate = new efl_gesture_zoom_radius_get_delegate(radius_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetRadius") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_zoom_radius_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_zoom_radius_get_static_delegate) });
+            }
+
+            if (efl_gesture_zoom_get_static_delegate == null)
+            {
+                efl_gesture_zoom_get_static_delegate = new efl_gesture_zoom_get_delegate(zoom_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetZoom") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gesture_zoom_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gesture_zoom_get_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.GestureZoom.efl_canvas_gesture_zoom_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate double efl_gesture_zoom_radius_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_gesture_zoom_radius_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_zoom_radius_get_api_delegate> efl_gesture_zoom_radius_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_zoom_radius_get_api_delegate>(Module, "efl_gesture_zoom_radius_get");
+
+        private static double radius_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_zoom_radius_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((GestureZoom)ws.Target).GetRadius();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_zoom_radius_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_zoom_radius_get_delegate efl_gesture_zoom_radius_get_static_delegate;
+
+        
+        private delegate double efl_gesture_zoom_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_gesture_zoom_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gesture_zoom_get_api_delegate> efl_gesture_zoom_get_ptr = new Efl.Eo.FunctionWrapper<efl_gesture_zoom_get_api_delegate>(Module, "efl_gesture_zoom_get");
+
+        private static double zoom_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gesture_zoom_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((GestureZoom)ws.Target).GetZoom();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gesture_zoom_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gesture_zoom_get_delegate efl_gesture_zoom_get_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
index 12e11ba..3d2c5fc 100644 (file)
@@ -23,7 +23,7 @@ public class GroupMemberRemovedEvt_Args : EventArgs {
 /// A group is not necessarily a container (see <see cref="Efl.IContainer"/>) in the sense that a standard widget may not have any empty slots for content. However it&apos;s still a group of low-level canvas objects (clipper, raw objects, etc.).
 /// (Since EFL 1.22)</summary>
 [Efl.Canvas.Group.NativeMethods]
-public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
+public class Group : Efl.Canvas.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -56,7 +56,7 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Group(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Group"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -67,33 +67,6 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when a member is added to the group.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.Canvas.GroupMemberAddedEvt_Args> MemberAddedEvt
@@ -102,13 +75,12 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.GroupMemberAddedEvt_Args args = new Efl.Canvas.GroupMemberAddedEvt_Args();
+                        Efl.Canvas.GroupMemberAddedEvt_Args args = new Efl.Canvas.GroupMemberAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -158,13 +130,12 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.GroupMemberRemovedEvt_Args args = new Efl.Canvas.GroupMemberRemovedEvt_Args();
+                        Efl.Canvas.GroupMemberRemovedEvt_Args args = new Efl.Canvas.GroupMemberRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -294,21 +265,21 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
                         return _ret_var;
  }
     /// <summary>Indicates that the group&apos;s layout needs to be recalculated.
-/// If this flag is set, then the <see cref="Efl.Canvas.Group.CalculateGroup"/> function will be called, during rendering phase of the canvas. After that, this flag will be automatically unset.
-/// 
-/// Note: setting this flag alone will not make the canvas&apos; whole scene dirty. Using evas_render() will have no effect. To force this, use <see cref="Efl.Canvas.Group.GroupChange"/>, which will also call this function automatically, with the parameter set to <c>true</c>.
-/// 
-/// See also <see cref="Efl.Canvas.Group.CalculateGroup"/>.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the group layout needs to be recalculated, <c>false</c> otherwise</value>
+    /// If this flag is set, then the <see cref="Efl.Canvas.Group.CalculateGroup"/> function will be called, during rendering phase of the canvas. After that, this flag will be automatically unset.
+    /// 
+    /// Note: setting this flag alone will not make the canvas&apos; whole scene dirty. Using evas_render() will have no effect. To force this, use <see cref="Efl.Canvas.Group.GroupChange"/>, which will also call this function automatically, with the parameter set to <c>true</c>.
+    /// 
+    /// See also <see cref="Efl.Canvas.Group.CalculateGroup"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the group layout needs to be recalculated, <c>false</c> otherwise</value>
     public bool GroupNeedRecalculate {
         get { return GetGroupNeedRecalculate(); }
         set { SetGroupNeedRecalculate(value); }
     }
     /// <summary>The internal clipper object used by this group.
-/// This is the object clipping all the child objects. Do not delete or otherwise modify this clipper!
-/// (Since EFL 1.22)</summary>
-/// <value>A clipper rectangle.</value>
+    /// This is the object clipping all the child objects. Do not delete or otherwise modify this clipper!
+    /// (Since EFL 1.22)</summary>
+    /// <value>A clipper rectangle.</value>
     public Efl.Canvas.Object GroupClipper {
         get { return GetGroupClipper(); }
     }
@@ -428,7 +399,7 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
             return Efl.Canvas.Group.efl_canvas_group_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_canvas_group_need_recalculate_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -441,13 +412,13 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static bool group_need_recalculate_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_group_need_recalculate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Group)wrapper).GetGroupNeedRecalculate();
+                    _ret_var = ((Group)ws.Target).GetGroupNeedRecalculate();
                 }
                 catch (Exception e)
                 {
@@ -477,13 +448,13 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static void group_need_recalculate_set(System.IntPtr obj, System.IntPtr pd, bool value)
         {
             Eina.Log.Debug("function efl_canvas_group_need_recalculate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Group)wrapper).SetGroupNeedRecalculate(value);
+                    ((Group)ws.Target).SetGroupNeedRecalculate(value);
                 }
                 catch (Exception e)
                 {
@@ -512,13 +483,13 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static Efl.Canvas.Object group_clipper_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_group_clipper_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Group)wrapper).GetGroupClipper();
+                    _ret_var = ((Group)ws.Target).GetGroupClipper();
                 }
                 catch (Exception e)
                 {
@@ -548,13 +519,13 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static void group_change(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_group_change was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Group)wrapper).GroupChange();
+                    ((Group)ws.Target).GroupChange();
                 }
                 catch (Exception e)
                 {
@@ -583,13 +554,13 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static void group_calculate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_group_calculate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Group)wrapper).CalculateGroup();
+                    ((Group)ws.Target).CalculateGroup();
                 }
                 catch (Exception e)
                 {
@@ -618,13 +589,13 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static System.IntPtr group_members_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_group_members_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Canvas.Object> _ret_var = default(Eina.Iterator<Efl.Canvas.Object>);
                 try
                 {
-                    _ret_var = ((Group)wrapper).GroupMembersIterate();
+                    _ret_var = ((Group)ws.Target).GroupMembersIterate();
                 }
                 catch (Exception e)
                 {
@@ -654,13 +625,13 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static void group_member_add(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object sub_obj)
         {
             Eina.Log.Debug("function efl_canvas_group_member_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Group)wrapper).AddGroupMember(sub_obj);
+                    ((Group)ws.Target).AddGroupMember(sub_obj);
                 }
                 catch (Exception e)
                 {
@@ -689,13 +660,13 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static void group_member_remove(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object sub_obj)
         {
             Eina.Log.Debug("function efl_canvas_group_member_remove was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Group)wrapper).GroupMemberRemove(sub_obj);
+                    ((Group)ws.Target).GroupMemberRemove(sub_obj);
                 }
                 catch (Exception e)
                 {
@@ -724,13 +695,13 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static bool group_member_is(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object sub_obj)
         {
             Eina.Log.Debug("function efl_canvas_group_member_is was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Group)wrapper).IsGroupMember(sub_obj);
+                    _ret_var = ((Group)ws.Target).IsGroupMember(sub_obj);
                 }
                 catch (Exception e)
                 {
@@ -749,7 +720,7 @@ public class Group : Efl.Canvas.Object, Efl.Eo.IWrapper
 
         private static efl_canvas_group_member_is_delegate efl_canvas_group_member_is_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index eea1a12..ac132e1 100644 (file)
@@ -12,7 +12,7 @@ namespace Canvas {
 /// <summary>Low-level Image object.
 /// This replaces the legacy Evas Object Image, with only image-related interfaces: file and data images only. This object does not implement any special features such as proxy, snapshot or GL.</summary>
 [Efl.Canvas.Image.NativeMethods]
-public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IFrameController,Efl.Gfx.IImageLoadController
+public class Image : Efl.Canvas.ImageInternal, Efl.IFile, Efl.Gfx.IFrameController, Efl.Gfx.IImageLoadController
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Image(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Image"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,33 +56,6 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when he image was loaded</summary>
     public event EventHandler LoadDoneEvt
     {
@@ -90,10 +63,9 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -143,13 +115,12 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args args = new Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args();
+                        Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args args = new Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args();
                         args.arg = (Eina.Error)Marshal.PtrToStructure(evt.Info, typeof(Eina.Error));
                         try
                         {
@@ -464,123 +435,123 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
     /// <summary>Check if an object can be animated (has multiple frames).
-/// This will be <c>true</c> for animated object for instance but <c>false</c> for a single frame object.</summary>
-/// <value><c>true</c> if the object is animated</value>
+    /// This will be <c>true</c> for animated object for instance but <c>false</c> for a single frame object.</summary>
+    /// <value><c>true</c> if the object is animated</value>
     public bool Animated {
         get { return GetAnimated(); }
     }
     /// <summary>Index of the current frame of an animated object.
-/// Ranges from 1 to <see cref="Efl.Gfx.IFrameController.GetFrameCount"/>. Valid only if <see cref="Efl.Gfx.IFrameController.GetAnimated"/>.</summary>
-/// <value>The index of current frame.</value>
+    /// Ranges from 1 to <see cref="Efl.Gfx.IFrameController.GetFrameCount"/>. Valid only if <see cref="Efl.Gfx.IFrameController.GetAnimated"/>.</summary>
+    /// <value>The index of current frame.</value>
     public int Frame {
         get { return GetFrame(); }
         set { SetFrame(value); }
     }
     /// <summary>Get the total number of frames of the object, if animated.
-/// Returns -1 if not animated.</summary>
-/// <value>The number of frames in the animated object.</value>
+    /// Returns -1 if not animated.</summary>
+    /// <value>The number of frames in the animated object.</value>
     public int FrameCount {
         get { return GetFrameCount(); }
     }
     /// <summary>Get the kind of looping the animated object does.
-/// This returns the kind of looping the animated object wants to do.
-/// 
-/// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>, you should display frames in a sequence like: 1-&gt;2-&gt;3-&gt;1-&gt;2-&gt;3-&gt;1...
-/// 
-/// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Pingpong"/>, it is better to display frames in a sequence like: 1-&gt;2-&gt;3-&gt;2-&gt;1-&gt;2-&gt;3-&gt;1...
-/// 
-/// The default type is <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>.</summary>
-/// <value>Loop type of the animated object.</value>
+    /// This returns the kind of looping the animated object wants to do.
+    /// 
+    /// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>, you should display frames in a sequence like: 1-&gt;2-&gt;3-&gt;1-&gt;2-&gt;3-&gt;1...
+    /// 
+    /// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Pingpong"/>, it is better to display frames in a sequence like: 1-&gt;2-&gt;3-&gt;2-&gt;1-&gt;2-&gt;3-&gt;1...
+    /// 
+    /// The default type is <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>.</summary>
+    /// <value>Loop type of the animated object.</value>
     public Efl.Gfx.FrameControllerLoopHint LoopType {
         get { return GetLoopType(); }
     }
     /// <summary>Get the number times the animation of the object loops.
-/// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame).
-/// 
-/// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops).</summary>
-/// <value>The number of loop of an animated object.</value>
+    /// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame).
+    /// 
+    /// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops).</summary>
+    /// <value>The number of loop of an animated object.</value>
     public int LoopCount {
         get { return GetLoopCount(); }
     }
     /// <summary>The load size of an image.
-/// The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like svg.
-/// 
-/// By default, the load size is not specified, so it is 0x0.</summary>
-/// <value>The image load size.</value>
+    /// The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like svg.
+    /// 
+    /// By default, the load size is not specified, so it is 0x0.</summary>
+    /// <value>The image load size.</value>
     public Eina.Size2D LoadSize {
         get { return GetLoadSize(); }
         set { SetLoadSize(value); }
     }
     /// <summary>Get the DPI resolution of a loaded image object in the canvas.
-/// This function returns the DPI resolution of the given canvas image.</summary>
-/// <value>The DPI resolution.</value>
+    /// This function returns the DPI resolution of the given canvas image.</summary>
+    /// <value>The DPI resolution.</value>
     public double LoadDpi {
         get { return GetLoadDpi(); }
         set { SetLoadDpi(value); }
     }
     /// <summary>Indicates whether the <see cref="Efl.Gfx.IImageLoadController.LoadRegion"/> property is supported for the current file.</summary>
-/// <value><c>true</c> if region load of the image is supported, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if region load of the image is supported, <c>false</c> otherwise</value>
     public bool LoadRegionSupport {
         get { return GetLoadRegionSupport(); }
     }
     /// <summary>Retrieve the coordinates of a given image object&apos;s selective (source image) load region.</summary>
-/// <value>A region of the image.</value>
+    /// <value>A region of the image.</value>
     public Eina.Rect LoadRegion {
         get { return GetLoadRegion(); }
         set { SetLoadRegion(value); }
     }
     /// <summary>Defines whether the orientation information in the image file should be honored.
-/// The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is <c>false</c>, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.</summary>
-/// <value><c>true</c> means that it should honor the orientation information.</value>
+    /// The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is <c>false</c>, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.</summary>
+    /// <value><c>true</c> means that it should honor the orientation information.</value>
     public bool LoadOrientation {
         get { return GetLoadOrientation(); }
         set { SetLoadOrientation(value); }
     }
     /// <summary>The scale down factor is a divider on the original image size.
-/// Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.
-/// 
-/// This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.
-/// 
-/// Powers of two (2, 4, 8) are best supported (especially with JPEG)</summary>
-/// <value>The scale down dividing factor.</value>
+    /// Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.
+    /// 
+    /// This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.
+    /// 
+    /// Powers of two (2, 4, 8) are best supported (especially with JPEG)</summary>
+    /// <value>The scale down dividing factor.</value>
     public int LoadScaleDown {
         get { return GetLoadScaleDown(); }
         set { SetLoadScaleDown(value); }
     }
     /// <summary>Initial load should skip header check and leave it all to data load
-/// If this is true, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).</summary>
-/// <value>Will be true if header is to be skipped.</value>
+    /// If this is true, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).</summary>
+    /// <value>Will be true if header is to be skipped.</value>
     public bool LoadSkipHeader {
         get { return GetLoadSkipHeader(); }
         set { SetLoadSkipHeader(value); }
@@ -921,7 +892,7 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
             return Efl.Canvas.Image.efl_canvas_image_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.File efl_file_mmap_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -934,13 +905,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetMmap();
+                    _ret_var = ((Image)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -970,13 +941,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Image)wrapper).SetMmap(f);
+                    _ret_var = ((Image)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -1006,13 +977,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetFile();
+                    _ret_var = ((Image)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -1042,13 +1013,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Image)wrapper).SetFile(file);
+                    _ret_var = ((Image)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -1078,13 +1049,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetKey();
+                    _ret_var = ((Image)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -1114,13 +1085,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetKey(key);
+                    ((Image)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -1149,13 +1120,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoaded();
+                    _ret_var = ((Image)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -1185,13 +1156,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Image)wrapper).Load();
+                    _ret_var = ((Image)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -1221,13 +1192,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Image)wrapper).Unload();
+                    ((Image)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -1256,13 +1227,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static bool animated_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_animated_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetAnimated();
+                    _ret_var = ((Image)ws.Target).GetAnimated();
                 }
                 catch (Exception e)
                 {
@@ -1292,13 +1263,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static int frame_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_frame_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetFrame();
+                    _ret_var = ((Image)ws.Target).GetFrame();
                 }
                 catch (Exception e)
                 {
@@ -1328,13 +1299,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static bool frame_set(System.IntPtr obj, System.IntPtr pd, int frame_index)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_frame_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).SetFrame(frame_index);
+                    _ret_var = ((Image)ws.Target).SetFrame(frame_index);
                 }
                 catch (Exception e)
                 {
@@ -1364,13 +1335,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static int frame_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_frame_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetFrameCount();
+                    _ret_var = ((Image)ws.Target).GetFrameCount();
                 }
                 catch (Exception e)
                 {
@@ -1400,13 +1371,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Efl.Gfx.FrameControllerLoopHint loop_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_loop_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.FrameControllerLoopHint _ret_var = default(Efl.Gfx.FrameControllerLoopHint);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoopType();
+                    _ret_var = ((Image)ws.Target).GetLoopType();
                 }
                 catch (Exception e)
                 {
@@ -1436,13 +1407,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static int loop_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_loop_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoopCount();
+                    _ret_var = ((Image)ws.Target).GetLoopCount();
                 }
                 catch (Exception e)
                 {
@@ -1472,13 +1443,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static double frame_duration_get(System.IntPtr obj, System.IntPtr pd, int start_frame, int frame_num)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_frame_duration_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetFrameDuration(start_frame, frame_num);
+                    _ret_var = ((Image)ws.Target).GetFrameDuration(start_frame, frame_num);
                 }
                 catch (Exception e)
                 {
@@ -1508,13 +1479,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.Size2D.NativeStruct load_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadSize();
+                    _ret_var = ((Image)ws.Target).GetLoadSize();
                 }
                 catch (Exception e)
                 {
@@ -1544,14 +1515,14 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void load_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((Image)wrapper).SetLoadSize(_in_size);
+                    ((Image)ws.Target).SetLoadSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -1580,13 +1551,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static double load_dpi_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_dpi_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadDpi();
+                    _ret_var = ((Image)ws.Target).GetLoadDpi();
                 }
                 catch (Exception e)
                 {
@@ -1616,13 +1587,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void load_dpi_set(System.IntPtr obj, System.IntPtr pd, double dpi)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_dpi_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetLoadDpi(dpi);
+                    ((Image)ws.Target).SetLoadDpi(dpi);
                 }
                 catch (Exception e)
                 {
@@ -1651,13 +1622,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static bool load_region_support_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_support_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadRegionSupport();
+                    _ret_var = ((Image)ws.Target).GetLoadRegionSupport();
                 }
                 catch (Exception e)
                 {
@@ -1687,13 +1658,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.Rect.NativeStruct load_region_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadRegion();
+                    _ret_var = ((Image)ws.Target).GetLoadRegion();
                 }
                 catch (Exception e)
                 {
@@ -1723,14 +1694,14 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void load_region_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct region)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_region = region;
                             
                 try
                 {
-                    ((Image)wrapper).SetLoadRegion(_in_region);
+                    ((Image)ws.Target).SetLoadRegion(_in_region);
                 }
                 catch (Exception e)
                 {
@@ -1759,13 +1730,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static bool load_orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_orientation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadOrientation();
+                    _ret_var = ((Image)ws.Target).GetLoadOrientation();
                 }
                 catch (Exception e)
                 {
@@ -1795,13 +1766,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void load_orientation_set(System.IntPtr obj, System.IntPtr pd, bool enable)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_orientation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetLoadOrientation(enable);
+                    ((Image)ws.Target).SetLoadOrientation(enable);
                 }
                 catch (Exception e)
                 {
@@ -1830,13 +1801,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static int load_scale_down_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_scale_down_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadScaleDown();
+                    _ret_var = ((Image)ws.Target).GetLoadScaleDown();
                 }
                 catch (Exception e)
                 {
@@ -1866,13 +1837,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void load_scale_down_set(System.IntPtr obj, System.IntPtr pd, int div)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_scale_down_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetLoadScaleDown(div);
+                    ((Image)ws.Target).SetLoadScaleDown(div);
                 }
                 catch (Exception e)
                 {
@@ -1901,13 +1872,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static bool load_skip_header_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_skip_header_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadSkipHeader();
+                    _ret_var = ((Image)ws.Target).GetLoadSkipHeader();
                 }
                 catch (Exception e)
                 {
@@ -1937,13 +1908,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void load_skip_header_set(System.IntPtr obj, System.IntPtr pd, bool skip)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_skip_header_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetLoadSkipHeader(skip);
+                    ((Image)ws.Target).SetLoadSkipHeader(skip);
                 }
                 catch (Exception e)
                 {
@@ -1972,13 +1943,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void load_async_start(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_async_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Image)wrapper).LoadAsyncStart();
+                    ((Image)ws.Target).LoadAsyncStart();
                 }
                 catch (Exception e)
                 {
@@ -2007,13 +1978,13 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void load_async_cancel(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_async_cancel was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Image)wrapper).LoadAsyncCancel();
+                    ((Image)ws.Target).LoadAsyncCancel();
                 }
                 catch (Exception e)
                 {
@@ -2031,7 +2002,7 @@ public class Image : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
 
         private static efl_gfx_image_load_controller_load_async_cancel_delegate efl_gfx_image_load_controller_load_async_cancel_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3ceb889..b5eff22 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Efl canvas internal image class</summary>
 [Efl.Canvas.ImageInternal.NativeMethods]
-public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFileSave,Efl.IOrientation,Efl.Canvas.Filter.IInternal,Efl.Gfx.IBuffer,Efl.Gfx.IFill,Efl.Gfx.IFilter,Efl.Gfx.IImage,Efl.Gfx.IView
+public abstract class ImageInternal : Efl.Canvas.Object, Efl.IFileSave, Efl.Canvas.Filter.IInternal, Efl.Gfx.IBuffer, Efl.Gfx.IFill, Efl.Gfx.IFilter, Efl.Gfx.IImage, Efl.Gfx.IImageOrientable, Efl.Gfx.IView
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ImageInternal(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class ImageInternalRealized : ImageInternal
@@ -62,33 +62,6 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Image data has been preloaded.</summary>
     public event EventHandler ImagePreloadEvt
     {
@@ -96,10 +69,9 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -149,10 +121,9 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -202,10 +173,9 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -264,36 +234,6 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
                                                 info = _in_info;
         return _ret_var;
  }
-    /// <summary>Control the orientation of a given object.
-    /// This can be used to set the rotation on an image or a window, for instance.</summary>
-    /// <returns>The rotation angle (CCW), see <see cref="Efl.Orient"/>.</returns>
-    virtual public Efl.Orient GetOrientation() {
-         var _ret_var = Efl.IOrientationConcrete.NativeMethods.efl_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Control the orientation of a given object.
-    /// This can be used to set the rotation on an image or a window, for instance.</summary>
-    /// <param name="dir">The rotation angle (CCW), see <see cref="Efl.Orient"/>.</param>
-    virtual public void SetOrientation(Efl.Orient dir) {
-                                 Efl.IOrientationConcrete.NativeMethods.efl_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Control the flip of the given image
-    /// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-    /// <returns>Flip method</returns>
-    virtual public Efl.Flip GetFlip() {
-         var _ret_var = Efl.IOrientationConcrete.NativeMethods.efl_orientation_flip_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Control the flip of the given image
-    /// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-    /// <param name="flip">Flip method</param>
-    virtual public void SetFlip(Efl.Flip flip) {
-                                 Efl.IOrientationConcrete.NativeMethods.efl_orientation_flip_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),flip);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
     /// <summary>Marks this filter as changed.</summary>
     /// <param name="val"><c>true</c> if filter changed, <c>false</c> otherwise</param>
     virtual public void SetFilterChanged(bool val) {
@@ -795,6 +735,21 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+    /// This can be used to set the rotation on an image or a window, for instance.</summary>
+    /// <returns>The final orientation of the object.</returns>
+    virtual public Efl.Gfx.ImageOrientation GetOrientation() {
+         var _ret_var = Efl.Gfx.IImageOrientableConcrete.NativeMethods.efl_gfx_image_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+    /// This can be used to set the rotation on an image or a window, for instance.</summary>
+    /// <param name="dir">The final orientation of the object.</param>
+    virtual public void SetOrientation(Efl.Gfx.ImageOrientation dir) {
+                                 Efl.Gfx.IImageOrientableConcrete.NativeMethods.efl_gfx_image_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>The dimensions of this object&apos;s viewport.
     /// This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.
     /// 
@@ -827,161 +782,154 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
                         Efl.Gfx.IViewConcrete.NativeMethods.efl_gfx_view_size_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),_in_size);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Control the orientation of a given object.
-/// This can be used to set the rotation on an image or a window, for instance.</summary>
-/// <value>The rotation angle (CCW), see <see cref="Efl.Orient"/>.</value>
-    public Efl.Orient Orientation {
-        get { return GetOrientation(); }
-        set { SetOrientation(value); }
-    }
-    /// <summary>Control the flip of the given image
-/// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-/// <value>Flip method</value>
-    public Efl.Flip Flip {
-        get { return GetFlip(); }
-        set { SetFlip(value); }
-    }
     /// <summary>Marks this filter as changed.</summary>
-/// <value><c>true</c> if filter changed, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if filter changed, <c>false</c> otherwise</value>
     public bool FilterChanged {
         set { SetFilterChanged(value); }
     }
     /// <summary>Marks this filter as invalid.</summary>
-/// <value><c>true</c> if filter is invalid, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if filter is invalid, <c>false</c> otherwise</value>
     public bool FilterInvalid {
         set { SetFilterInvalid(value); }
     }
     /// <summary>Retrieve cached output buffer, if any.
-/// Does not increment the reference count.</summary>
-/// <value>Output buffer</value>
+    /// Does not increment the reference count.</summary>
+    /// <value>Output buffer</value>
     public System.IntPtr FilterOutputBuffer {
         get { return GetFilterOutputBuffer(); }
     }
     /// <summary>Rectangular size of the pixel buffer as allocated in memory.</summary>
-/// <value>Size of the buffer in pixels.</value>
+    /// <value>Size of the buffer in pixels.</value>
     public Eina.Size2D BufferSize {
         get { return GetBufferSize(); }
         set { SetBufferSize(value); }
     }
     /// <summary>The colorspace defines how pixels are encoded in the image in memory.
-/// By default, images are encoded in 32-bit BGRA, ie. each pixel takes 4 bytes in memory, with each channel B,G,R,A encoding the color with values from 0 to 255.
-/// 
-/// All images used in EFL use alpha-premultipied BGRA values, which means that for each pixel, B &lt;= A, G &lt;= A and R &lt;= A.</summary>
-/// <value>Colorspace</value>
+    /// By default, images are encoded in 32-bit BGRA, ie. each pixel takes 4 bytes in memory, with each channel B,G,R,A encoding the color with values from 0 to 255.
+    /// 
+    /// All images used in EFL use alpha-premultipied BGRA values, which means that for each pixel, B &lt;= A, G &lt;= A and R &lt;= A.</summary>
+    /// <value>Colorspace</value>
     public Efl.Gfx.Colorspace Colorspace {
         get { return GetColorspace(); }
     }
     /// <summary>Indicates whether the alpha channel should be used.
-/// This does not indicate whether the image source file contains an alpha channel, only whether to respect it or discard it.</summary>
-/// <value>Whether to use alpha channel (<c>true</c>) data or not (<c>false</c>).</value>
+    /// This does not indicate whether the image source file contains an alpha channel, only whether to respect it or discard it.</summary>
+    /// <value>Whether to use alpha channel (<c>true</c>) data or not (<c>false</c>).</value>
     public bool Alpha {
         get { return GetAlpha(); }
         set { SetAlpha(value); }
     }
     /// <summary>Length in bytes of one row of pixels in memory.
-/// Usually this will be equal to width * 4, with a plain BGRA image. This may return 0 if the stride is not applicable.
-/// 
-/// When applicable, this will include the <see cref="Efl.Gfx.IBuffer.GetBufferBorders"/> as well as potential extra padding.</summary>
-/// <value>Stride</value>
+    /// Usually this will be equal to width * 4, with a plain BGRA image. This may return 0 if the stride is not applicable.
+    /// 
+    /// When applicable, this will include the <see cref="Efl.Gfx.IBuffer.GetBufferBorders"/> as well as potential extra padding.</summary>
+    /// <value>Stride</value>
     public int Stride {
         get { return GetStride(); }
     }
     /// <summary>Binds the object&apos;s <see cref="Efl.Gfx.IFill.Fill"/> property to its actual geometry.
-/// If <c>true</c>, then every time the object is resized, it will automatically trigger a call to <see cref="Efl.Gfx.IFill.SetFill"/> with the new size (and 0, 0 as source image&apos;s origin), so the image will cover the whole object&apos;s area.
-/// 
-/// This property takes precedence over <see cref="Efl.Gfx.IFill.Fill"/>. If set to <c>false</c>, then <see cref="Efl.Gfx.IFill.Fill"/> should be set.
-/// 
-/// This flag is <c>true</c> by default (used to be <c>false</c> with the old APIs, and was known as &quot;filled&quot;).</summary>
-/// <value><c>true</c> to make the fill property follow object size or <c>false</c> otherwise.</value>
+    /// If <c>true</c>, then every time the object is resized, it will automatically trigger a call to <see cref="Efl.Gfx.IFill.SetFill"/> with the new size (and 0, 0 as source image&apos;s origin), so the image will cover the whole object&apos;s area.
+    /// 
+    /// This property takes precedence over <see cref="Efl.Gfx.IFill.Fill"/>. If set to <c>false</c>, then <see cref="Efl.Gfx.IFill.Fill"/> should be set.
+    /// 
+    /// This flag is <c>true</c> by default (used to be <c>false</c> with the old APIs, and was known as &quot;filled&quot;).</summary>
+    /// <value><c>true</c> to make the fill property follow object size or <c>false</c> otherwise.</value>
     public bool FillAuto {
         get { return GetFillAuto(); }
         set { SetFillAuto(value); }
     }
     /// <summary>Specifies how to tile an image to fill its rectangle geometry.
-/// Note that if <c>w</c> or <c>h</c> are smaller than the dimensions of the object, the displayed image will be tiled around the object&apos;s area. To have only one copy of the bound image drawn, <c>x</c> and <c>y</c> must be 0 and <c>w</c> and <c>h</c> need to be the exact width and height of the image object itself, respectively.
-/// 
-/// Setting this property will reset the <see cref="Efl.Gfx.IFill.FillAuto"/> to <c>false</c>.</summary>
-/// <value>The top-left corner to start drawing from as well as the size at which the bound image will be displayed.</value>
+    /// Note that if <c>w</c> or <c>h</c> are smaller than the dimensions of the object, the displayed image will be tiled around the object&apos;s area. To have only one copy of the bound image drawn, <c>x</c> and <c>y</c> must be 0 and <c>w</c> and <c>h</c> need to be the exact width and height of the image object itself, respectively.
+    /// 
+    /// Setting this property will reset the <see cref="Efl.Gfx.IFill.FillAuto"/> to <c>false</c>.</summary>
+    /// <value>The top-left corner to start drawing from as well as the size at which the bound image will be displayed.</value>
     public Eina.Rect Fill {
         get { return GetFill(); }
         set { SetFill(value); }
     }
     /// <summary>Whether to use high-quality image scaling algorithm for this image.
-/// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
-/// 
-/// <c>true</c> by default</summary>
-/// <value>Whether to use smooth scale or not.</value>
+    /// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
+    /// 
+    /// <c>true</c> by default</summary>
+    /// <value>Whether to use smooth scale or not.</value>
     public bool SmoothScale {
         get { return GetSmoothScale(); }
         set { SetSmoothScale(value); }
     }
     /// <summary>Control how the image is scaled.</summary>
-/// <value>Image scale type</value>
+    /// <value>Image scale type</value>
     public Efl.Gfx.ImageScaleType ScaleType {
         get { return GetScaleType(); }
         set { SetScaleType(value); }
     }
     /// <summary>The native width/height ratio of the image.</summary>
-/// <value>The image&apos;s ratio.</value>
+    /// <value>The image&apos;s ratio.</value>
     public double Ratio {
         get { return GetRatio(); }
     }
     /// <summary>Scaling factor applied to the image borders.
-/// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
-/// 
-/// Default value is 1.0 (no scaling).</summary>
-/// <value>The scale factor.</value>
+    /// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
+    /// 
+    /// Default value is 1.0 (no scaling).</summary>
+    /// <value>The scale factor.</value>
     public double BorderScale {
         get { return GetBorderScale(); }
         set { SetBorderScale(value); }
     }
     /// <summary>Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.
-/// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
-/// 
-/// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
-/// <value>Fill mode of the center region.</value>
+    /// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
+    /// 
+    /// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
+    /// <value>Fill mode of the center region.</value>
     public Efl.Gfx.BorderFillMode BorderCenterFill {
         get { return GetBorderCenterFill(); }
         set { SetBorderCenterFill(value); }
     }
     /// <summary>This represents the size of the original image in pixels.
-/// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
-/// 
-/// This is a read-only property, and may return 0x0.</summary>
-/// <value>The size in pixels.</value>
+    /// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
+    /// 
+    /// This is a read-only property, and may return 0x0.</summary>
+    /// <value>The size in pixels.</value>
     public Eina.Size2D ImageSize {
         get { return GetImageSize(); }
     }
     /// <summary>Get the content hint setting of a given image object of the canvas.
-/// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
-/// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
+    /// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
+    /// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
     public Efl.Gfx.ImageContentHint ContentHint {
         get { return GetContentHint(); }
         set { SetContentHint(value); }
     }
     /// <summary>Get the scale hint of a given image of the canvas.
-/// This function returns the scale hint value of the given image object of the canvas.</summary>
-/// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
+    /// This function returns the scale hint value of the given image object of the canvas.</summary>
+    /// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
     public Efl.Gfx.ImageScaleHint ScaleHint {
         get { return GetScaleHint(); }
         set { SetScaleHint(value); }
     }
     /// <summary>Gets the (last) file loading error for a given object.</summary>
-/// <value>The load error code.</value>
+    /// <value>The load error code.</value>
     public Eina.Error ImageLoadError {
         get { return GetImageLoadError(); }
     }
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+    /// This can be used to set the rotation on an image or a window, for instance.</summary>
+    /// <value>The final orientation of the object.</value>
+    public Efl.Gfx.ImageOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
+    }
     /// <summary>The dimensions of this object&apos;s viewport.
-/// This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.
-/// 
-/// For scalable scenes (vector graphics, 3D or GL), this means scaling the contents of the scene and drawing more pixels as a result; For pixmaps this means zooming and stretching up or down the backing buffer to fit this view.
-/// 
-/// In most cases the view should have the same dimensions as the object on the canvas, for best quality.
-/// 
-/// <see cref="Efl.Gfx.IView.SetViewSize"/> may not be implemented. If it is, it might trigger a complete recalculation of the scene, or reload of the pixel data.
-/// 
-/// Refer to each implementing class specific documentation for more details.</summary>
-/// <value>Size of the view.</value>
+    /// This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.
+    /// 
+    /// For scalable scenes (vector graphics, 3D or GL), this means scaling the contents of the scene and drawing more pixels as a result; For pixmaps this means zooming and stretching up or down the backing buffer to fit this view.
+    /// 
+    /// In most cases the view should have the same dimensions as the object on the canvas, for best quality.
+    /// 
+    /// <see cref="Efl.Gfx.IView.SetViewSize"/> may not be implemented. If it is, it might trigger a complete recalculation of the scene, or reload of the pixel data.
+    /// 
+    /// Refer to each implementing class specific documentation for more details.</summary>
+    /// <value>Size of the view.</value>
     public Eina.Size2D ViewSize {
         get { return GetViewSize(); }
         set { SetViewSize(value); }
@@ -1012,46 +960,6 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_save"), func = Marshal.GetFunctionPointerForDelegate(efl_file_save_static_delegate) });
             }
 
-            if (efl_orientation_get_static_delegate == null)
-            {
-                efl_orientation_get_static_delegate = new efl_orientation_get_delegate(orientation_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_get_static_delegate) });
-            }
-
-            if (efl_orientation_set_static_delegate == null)
-            {
-                efl_orientation_set_static_delegate = new efl_orientation_set_delegate(orientation_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_set_static_delegate) });
-            }
-
-            if (efl_orientation_flip_get_static_delegate == null)
-            {
-                efl_orientation_flip_get_static_delegate = new efl_orientation_flip_get_delegate(flip_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetFlip") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_flip_get"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_flip_get_static_delegate) });
-            }
-
-            if (efl_orientation_flip_set_static_delegate == null)
-            {
-                efl_orientation_flip_set_static_delegate = new efl_orientation_flip_set_delegate(flip_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetFlip") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_flip_set"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_flip_set_static_delegate) });
-            }
-
             if (evas_filter_changed_set_static_delegate == null)
             {
                 evas_filter_changed_set_static_delegate = new evas_filter_changed_set_delegate(filter_changed_set);
@@ -1552,6 +1460,26 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_load_error_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_load_error_get_static_delegate) });
             }
 
+            if (efl_gfx_image_orientation_get_static_delegate == null)
+            {
+                efl_gfx_image_orientation_get_static_delegate = new efl_gfx_image_orientation_get_delegate(orientation_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_orientation_get_static_delegate) });
+            }
+
+            if (efl_gfx_image_orientation_set_static_delegate == null)
+            {
+                efl_gfx_image_orientation_set_static_delegate = new efl_gfx_image_orientation_set_delegate(orientation_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_orientation_set_static_delegate) });
+            }
+
             if (efl_gfx_view_size_get_static_delegate == null)
             {
                 efl_gfx_view_size_get_static_delegate = new efl_gfx_view_size_get_delegate(view_size_get);
@@ -1582,7 +1510,7 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
             return Efl.Canvas.ImageInternal.efl_canvas_image_internal_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_file_save_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String file, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key,  ref Efl.FileSaveInfo.NativeStruct info);
@@ -1595,14 +1523,14 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static bool save(System.IntPtr obj, System.IntPtr pd, System.String file, System.String key, ref Efl.FileSaveInfo.NativeStruct info)
         {
             Eina.Log.Debug("function efl_file_save was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.FileSaveInfo _in_info = info;
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).Save(file, key, ref _in_info);
+                    _ret_var = ((ImageInternal)ws.Target).Save(file, key, ref _in_info);
                 }
                 catch (Exception e)
                 {
@@ -1623,148 +1551,6 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static efl_file_save_delegate efl_file_save_static_delegate;
 
         
-        private delegate Efl.Orient efl_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate Efl.Orient efl_orientation_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_get_api_delegate> efl_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_get_api_delegate>(Module, "efl_orientation_get");
-
-        private static Efl.Orient orientation_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_orientation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Orient _ret_var = default(Efl.Orient);
-                try
-                {
-                    _ret_var = ((ImageInternal)wrapper).GetOrientation();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_orientation_get_delegate efl_orientation_get_static_delegate;
-
-        
-        private delegate void efl_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Orient dir);
-
-        
-        public delegate void efl_orientation_set_api_delegate(System.IntPtr obj,  Efl.Orient dir);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_set_api_delegate> efl_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_set_api_delegate>(Module, "efl_orientation_set");
-
-        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Orient dir)
-        {
-            Eina.Log.Debug("function efl_orientation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((ImageInternal)wrapper).SetOrientation(dir);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
-            }
-        }
-
-        private static efl_orientation_set_delegate efl_orientation_set_static_delegate;
-
-        
-        private delegate Efl.Flip efl_orientation_flip_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate Efl.Flip efl_orientation_flip_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_flip_get_api_delegate> efl_orientation_flip_get_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_flip_get_api_delegate>(Module, "efl_orientation_flip_get");
-
-        private static Efl.Flip flip_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_orientation_flip_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Flip _ret_var = default(Efl.Flip);
-                try
-                {
-                    _ret_var = ((ImageInternal)wrapper).GetFlip();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_orientation_flip_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_orientation_flip_get_delegate efl_orientation_flip_get_static_delegate;
-
-        
-        private delegate void efl_orientation_flip_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Flip flip);
-
-        
-        public delegate void efl_orientation_flip_set_api_delegate(System.IntPtr obj,  Efl.Flip flip);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_flip_set_api_delegate> efl_orientation_flip_set_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_flip_set_api_delegate>(Module, "efl_orientation_flip_set");
-
-        private static void flip_set(System.IntPtr obj, System.IntPtr pd, Efl.Flip flip)
-        {
-            Eina.Log.Debug("function efl_orientation_flip_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((ImageInternal)wrapper).SetFlip(flip);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_orientation_flip_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), flip);
-            }
-        }
-
-        private static efl_orientation_flip_set_delegate efl_orientation_flip_set_static_delegate;
-
-        
         private delegate void evas_filter_changed_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] bool val);
 
         
@@ -1775,13 +1561,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_changed_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function evas_filter_changed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetFilterChanged(val);
+                    ((ImageInternal)ws.Target).SetFilterChanged(val);
                 }
                 catch (Exception e)
                 {
@@ -1810,13 +1596,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_invalid_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function evas_filter_invalid_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetFilterInvalid(val);
+                    ((ImageInternal)ws.Target).SetFilterInvalid(val);
                 }
                 catch (Exception e)
                 {
@@ -1845,13 +1631,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static System.IntPtr filter_output_buffer_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function evas_filter_output_buffer_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetFilterOutputBuffer();
+                    _ret_var = ((ImageInternal)ws.Target).GetFilterOutputBuffer();
                 }
                 catch (Exception e)
                 {
@@ -1881,13 +1667,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static bool filter_input_alpha(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function evas_filter_input_alpha was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).FilterInputAlpha();
+                    _ret_var = ((ImageInternal)ws.Target).FilterInputAlpha();
                 }
                 catch (Exception e)
                 {
@@ -1917,14 +1703,14 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_state_prepare(System.IntPtr obj, System.IntPtr pd, out Efl.Canvas.Filter.State.NativeStruct state, System.IntPtr data)
         {
             Eina.Log.Debug("function evas_filter_state_prepare was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Canvas.Filter.State _out_state = default(Efl.Canvas.Filter.State);
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).FilterStatePrepare(out _out_state, data);
+                    ((ImageInternal)ws.Target).FilterStatePrepare(out _out_state, data);
                 }
                 catch (Exception e)
                 {
@@ -1954,13 +1740,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static bool filter_input_render(System.IntPtr obj, System.IntPtr pd, System.IntPtr filter, System.IntPtr engine, System.IntPtr output, System.IntPtr drawctx, System.IntPtr data, int l, int r, int t, int b, int x, int y, bool do_async)
         {
             Eina.Log.Debug("function evas_filter_input_render was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                                                                                                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).FilterInputRender(filter, engine, output, drawctx, data, l, r, t, b, x, y, do_async);
+                    _ret_var = ((ImageInternal)ws.Target).FilterInputRender(filter, engine, output, drawctx, data, l, r, t, b, x, y, do_async);
                 }
                 catch (Exception e)
                 {
@@ -1990,13 +1776,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_dirty(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function evas_filter_dirty was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ImageInternal)wrapper).FilterDirty();
+                    ((ImageInternal)ws.Target).FilterDirty();
                 }
                 catch (Exception e)
                 {
@@ -2025,13 +1811,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Eina.Size2D.NativeStruct buffer_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_buffer_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetBufferSize();
+                    _ret_var = ((ImageInternal)ws.Target).GetBufferSize();
                 }
                 catch (Exception e)
                 {
@@ -2061,14 +1847,14 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void buffer_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_buffer_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_sz = sz;
                             
                 try
                 {
-                    ((ImageInternal)wrapper).SetBufferSize(_in_sz);
+                    ((ImageInternal)ws.Target).SetBufferSize(_in_sz);
                 }
                 catch (Exception e)
                 {
@@ -2097,13 +1883,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Efl.Gfx.Colorspace colorspace_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_buffer_colorspace_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.Colorspace _ret_var = default(Efl.Gfx.Colorspace);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetColorspace();
+                    _ret_var = ((ImageInternal)ws.Target).GetColorspace();
                 }
                 catch (Exception e)
                 {
@@ -2133,13 +1919,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static bool alpha_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_buffer_alpha_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetAlpha();
+                    _ret_var = ((ImageInternal)ws.Target).GetAlpha();
                 }
                 catch (Exception e)
                 {
@@ -2169,13 +1955,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void alpha_set(System.IntPtr obj, System.IntPtr pd, bool alpha)
         {
             Eina.Log.Debug("function efl_gfx_buffer_alpha_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetAlpha(alpha);
+                    ((ImageInternal)ws.Target).SetAlpha(alpha);
                 }
                 catch (Exception e)
                 {
@@ -2204,13 +1990,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static int stride_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_buffer_stride_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetStride();
+                    _ret_var = ((ImageInternal)ws.Target).GetStride();
                 }
                 catch (Exception e)
                 {
@@ -2240,13 +2026,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void buffer_borders_get(System.IntPtr obj, System.IntPtr pd, out uint l, out uint r, out uint t, out uint b)
         {
             Eina.Log.Debug("function efl_gfx_buffer_borders_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(uint);        r = default(uint);        t = default(uint);        b = default(uint);                                            
                 try
                 {
-                    ((ImageInternal)wrapper).GetBufferBorders(out l, out r, out t, out b);
+                    ((ImageInternal)ws.Target).GetBufferBorders(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -2275,14 +2061,14 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void buffer_update_add(System.IntPtr obj, System.IntPtr pd, ref Eina.Rect.NativeStruct region)
         {
             Eina.Log.Debug("function efl_gfx_buffer_update_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_region = region;
                             
                 try
                 {
-                    ((ImageInternal)wrapper).AddBufferUpdate(ref _in_region);
+                    ((ImageInternal)ws.Target).AddBufferUpdate(ref _in_region);
                 }
                 catch (Exception e)
                 {
@@ -2312,14 +2098,14 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Eina.RwSlice buffer_map(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.BufferAccessMode mode, ref Eina.Rect.NativeStruct region, Efl.Gfx.Colorspace cspace, int plane, out int stride)
         {
             Eina.Log.Debug("function efl_gfx_buffer_map was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Rect _in_region = region;
                                                                 stride = default(int);                                                    Eina.RwSlice _ret_var = default(Eina.RwSlice);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).BufferMap(mode, ref _in_region, cspace, plane, out stride);
+                    _ret_var = ((ImageInternal)ws.Target).BufferMap(mode, ref _in_region, cspace, plane, out stride);
                 }
                 catch (Exception e)
                 {
@@ -2350,13 +2136,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static bool buffer_unmap(System.IntPtr obj, System.IntPtr pd, Eina.RwSlice slice)
         {
             Eina.Log.Debug("function efl_gfx_buffer_unmap was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).BufferUnmap(slice);
+                    _ret_var = ((ImageInternal)ws.Target).BufferUnmap(slice);
                 }
                 catch (Exception e)
                 {
@@ -2386,15 +2172,15 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static bool buffer_copy_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr slice, Eina.Size2D.NativeStruct size, int stride, Efl.Gfx.Colorspace cspace, int plane)
         {
             Eina.Log.Debug("function efl_gfx_buffer_copy_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_slice = Eina.PrimitiveConversion.PointerToManaged<Eina.Slice>(slice);
         Eina.Size2D _in_size = size;
                                                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).SetBufferCopy(_in_slice, _in_size, stride, cspace, plane);
+                    _ret_var = ((ImageInternal)ws.Target).SetBufferCopy(_in_slice, _in_size, stride, cspace, plane);
                 }
                 catch (Exception e)
                 {
@@ -2424,15 +2210,15 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static bool buffer_managed_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr slice, Eina.Size2D.NativeStruct size, int stride, Efl.Gfx.Colorspace cspace, int plane)
         {
             Eina.Log.Debug("function efl_gfx_buffer_managed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_slice = Eina.PrimitiveConversion.PointerToManaged<Eina.Slice>(slice);
         Eina.Size2D _in_size = size;
                                                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).SetBufferManaged(_in_slice, _in_size, stride, cspace, plane);
+                    _ret_var = ((ImageInternal)ws.Target).SetBufferManaged(_in_slice, _in_size, stride, cspace, plane);
                 }
                 catch (Exception e)
                 {
@@ -2462,13 +2248,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Eina.Slice buffer_managed_get(System.IntPtr obj, System.IntPtr pd, int plane)
         {
             Eina.Log.Debug("function efl_gfx_buffer_managed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Slice _ret_var = default(Eina.Slice);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetBufferManaged(plane);
+                    _ret_var = ((ImageInternal)ws.Target).GetBufferManaged(plane);
                 }
                 catch (Exception e)
                 {
@@ -2498,13 +2284,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static bool fill_auto_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_fill_auto_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetFillAuto();
+                    _ret_var = ((ImageInternal)ws.Target).GetFillAuto();
                 }
                 catch (Exception e)
                 {
@@ -2534,13 +2320,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void fill_auto_set(System.IntPtr obj, System.IntPtr pd, bool filled)
         {
             Eina.Log.Debug("function efl_gfx_fill_auto_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetFillAuto(filled);
+                    ((ImageInternal)ws.Target).SetFillAuto(filled);
                 }
                 catch (Exception e)
                 {
@@ -2569,13 +2355,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Eina.Rect.NativeStruct fill_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetFill();
+                    _ret_var = ((ImageInternal)ws.Target).GetFill();
                 }
                 catch (Exception e)
                 {
@@ -2605,14 +2391,14 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void fill_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct fill)
         {
             Eina.Log.Debug("function efl_gfx_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_fill = fill;
                             
                 try
                 {
-                    ((ImageInternal)wrapper).SetFill(_in_fill);
+                    ((ImageInternal)ws.Target).SetFill(_in_fill);
                 }
                 catch (Exception e)
                 {
@@ -2641,15 +2427,15 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_program_get(System.IntPtr obj, System.IntPtr pd, out System.String code, out System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_program_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         System.String _out_code = default(System.String);
         System.String _out_name = default(System.String);
                             
                 try
                 {
-                    ((ImageInternal)wrapper).GetFilterProgram(out _out_code, out _out_name);
+                    ((ImageInternal)ws.Target).GetFilterProgram(out _out_code, out _out_name);
                 }
                 catch (Exception e)
                 {
@@ -2680,13 +2466,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_program_set(System.IntPtr obj, System.IntPtr pd, System.String code, System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_program_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ImageInternal)wrapper).SetFilterProgram(code, name);
+                    ((ImageInternal)ws.Target).SetFilterProgram(code, name);
                 }
                 catch (Exception e)
                 {
@@ -2715,15 +2501,15 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_state_get(System.IntPtr obj, System.IntPtr pd, out System.String cur_state, out double cur_val, out System.String next_state, out double next_val, out double pos)
         {
             Eina.Log.Debug("function efl_gfx_filter_state_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                 System.String _out_cur_state = default(System.String);
         cur_val = default(double);        System.String _out_next_state = default(System.String);
         next_val = default(double);        pos = default(double);                                                    
                 try
                 {
-                    ((ImageInternal)wrapper).GetFilterState(out _out_cur_state, out cur_val, out _out_next_state, out next_val, out pos);
+                    ((ImageInternal)ws.Target).GetFilterState(out _out_cur_state, out cur_val, out _out_next_state, out next_val, out pos);
                 }
                 catch (Exception e)
                 {
@@ -2754,13 +2540,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_state_set(System.IntPtr obj, System.IntPtr pd, System.String cur_state, double cur_val, System.String next_state, double next_val, double pos)
         {
             Eina.Log.Debug("function efl_gfx_filter_state_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetFilterState(cur_state, cur_val, next_state, next_val, pos);
+                    ((ImageInternal)ws.Target).SetFilterState(cur_state, cur_val, next_state, next_val, pos);
                 }
                 catch (Exception e)
                 {
@@ -2789,13 +2575,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_padding_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_filter_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((ImageInternal)wrapper).GetFilterPadding(out l, out r, out t, out b);
+                    ((ImageInternal)ws.Target).GetFilterPadding(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -2824,13 +2610,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Efl.Gfx.IEntity filter_source_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetFilterSource(name);
+                    _ret_var = ((ImageInternal)ws.Target).GetFilterSource(name);
                 }
                 catch (Exception e)
                 {
@@ -2860,13 +2646,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_source_set(System.IntPtr obj, System.IntPtr pd, System.String name, Efl.Gfx.IEntity source)
         {
             Eina.Log.Debug("function efl_gfx_filter_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ImageInternal)wrapper).SetFilterSource(name, source);
+                    ((ImageInternal)ws.Target).SetFilterSource(name, source);
                 }
                 catch (Exception e)
                 {
@@ -2895,14 +2681,14 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_data_get(System.IntPtr obj, System.IntPtr pd, System.String name, out System.String value, out bool execute)
         {
             Eina.Log.Debug("function efl_gfx_filter_data_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         System.String _out_value = default(System.String);
         execute = default(bool);                                    
                 try
                 {
-                    ((ImageInternal)wrapper).GetFilterData(name, out _out_value, out execute);
+                    ((ImageInternal)ws.Target).GetFilterData(name, out _out_value, out execute);
                 }
                 catch (Exception e)
                 {
@@ -2932,13 +2718,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void filter_data_set(System.IntPtr obj, System.IntPtr pd, System.String name, System.String value, bool execute)
         {
             Eina.Log.Debug("function efl_gfx_filter_data_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetFilterData(name, value, execute);
+                    ((ImageInternal)ws.Target).SetFilterData(name, value, execute);
                 }
                 catch (Exception e)
                 {
@@ -2967,13 +2753,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static bool smooth_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_smooth_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetSmoothScale();
+                    _ret_var = ((ImageInternal)ws.Target).GetSmoothScale();
                 }
                 catch (Exception e)
                 {
@@ -3003,13 +2789,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void smooth_scale_set(System.IntPtr obj, System.IntPtr pd, bool smooth_scale)
         {
             Eina.Log.Debug("function efl_gfx_image_smooth_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetSmoothScale(smooth_scale);
+                    ((ImageInternal)ws.Target).SetSmoothScale(smooth_scale);
                 }
                 catch (Exception e)
                 {
@@ -3038,13 +2824,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Efl.Gfx.ImageScaleType scale_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageScaleType _ret_var = default(Efl.Gfx.ImageScaleType);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetScaleType();
+                    _ret_var = ((ImageInternal)ws.Target).GetScaleType();
                 }
                 catch (Exception e)
                 {
@@ -3074,13 +2860,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void scale_type_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageScaleType scale_type)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetScaleType(scale_type);
+                    ((ImageInternal)ws.Target).SetScaleType(scale_type);
                 }
                 catch (Exception e)
                 {
@@ -3109,13 +2895,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static double ratio_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_ratio_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetRatio();
+                    _ret_var = ((ImageInternal)ws.Target).GetRatio();
                 }
                 catch (Exception e)
                 {
@@ -3145,13 +2931,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void border_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_image_border_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((ImageInternal)wrapper).GetBorder(out l, out r, out t, out b);
+                    ((ImageInternal)ws.Target).GetBorder(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -3180,13 +2966,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void border_set(System.IntPtr obj, System.IntPtr pd, int l, int r, int t, int b)
         {
             Eina.Log.Debug("function efl_gfx_image_border_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ImageInternal)wrapper).SetBorder(l, r, t, b);
+                    ((ImageInternal)ws.Target).SetBorder(l, r, t, b);
                 }
                 catch (Exception e)
                 {
@@ -3215,13 +3001,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static double border_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_border_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetBorderScale();
+                    _ret_var = ((ImageInternal)ws.Target).GetBorderScale();
                 }
                 catch (Exception e)
                 {
@@ -3251,13 +3037,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void border_scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_image_border_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetBorderScale(scale);
+                    ((ImageInternal)ws.Target).SetBorderScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -3286,13 +3072,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Efl.Gfx.BorderFillMode border_center_fill_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_border_center_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.BorderFillMode _ret_var = default(Efl.Gfx.BorderFillMode);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetBorderCenterFill();
+                    _ret_var = ((ImageInternal)ws.Target).GetBorderCenterFill();
                 }
                 catch (Exception e)
                 {
@@ -3322,13 +3108,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void border_center_fill_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.BorderFillMode fill)
         {
             Eina.Log.Debug("function efl_gfx_image_border_center_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetBorderCenterFill(fill);
+                    ((ImageInternal)ws.Target).SetBorderCenterFill(fill);
                 }
                 catch (Exception e)
                 {
@@ -3357,13 +3143,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Eina.Size2D.NativeStruct image_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetImageSize();
+                    _ret_var = ((ImageInternal)ws.Target).GetImageSize();
                 }
                 catch (Exception e)
                 {
@@ -3393,13 +3179,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Efl.Gfx.ImageContentHint content_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_content_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageContentHint _ret_var = default(Efl.Gfx.ImageContentHint);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetContentHint();
+                    _ret_var = ((ImageInternal)ws.Target).GetContentHint();
                 }
                 catch (Exception e)
                 {
@@ -3429,13 +3215,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void content_hint_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageContentHint hint)
         {
             Eina.Log.Debug("function efl_gfx_image_content_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetContentHint(hint);
+                    ((ImageInternal)ws.Target).SetContentHint(hint);
                 }
                 catch (Exception e)
                 {
@@ -3464,13 +3250,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Efl.Gfx.ImageScaleHint scale_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageScaleHint _ret_var = default(Efl.Gfx.ImageScaleHint);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetScaleHint();
+                    _ret_var = ((ImageInternal)ws.Target).GetScaleHint();
                 }
                 catch (Exception e)
                 {
@@ -3500,13 +3286,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void scale_hint_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageScaleHint hint)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageInternal)wrapper).SetScaleHint(hint);
+                    ((ImageInternal)ws.Target).SetScaleHint(hint);
                 }
                 catch (Exception e)
                 {
@@ -3535,13 +3321,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Eina.Error image_load_error_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_error_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetImageLoadError();
+                    _ret_var = ((ImageInternal)ws.Target).GetImageLoadError();
                 }
                 catch (Exception e)
                 {
@@ -3561,6 +3347,77 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static efl_gfx_image_load_error_get_delegate efl_gfx_image_load_error_get_static_delegate;
 
         
+        private delegate Efl.Gfx.ImageOrientation efl_gfx_image_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.Gfx.ImageOrientation efl_gfx_image_orientation_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_get_api_delegate> efl_gfx_image_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_get_api_delegate>(Module, "efl_gfx_image_orientation_get");
+
+        private static Efl.Gfx.ImageOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gfx_image_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Gfx.ImageOrientation _ret_var = default(Efl.Gfx.ImageOrientation);
+                try
+                {
+                    _ret_var = ((ImageInternal)ws.Target).GetOrientation();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_image_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gfx_image_orientation_get_delegate efl_gfx_image_orientation_get_static_delegate;
+
+        
+        private delegate void efl_gfx_image_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Gfx.ImageOrientation dir);
+
+        
+        public delegate void efl_gfx_image_orientation_set_api_delegate(System.IntPtr obj,  Efl.Gfx.ImageOrientation dir);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_set_api_delegate> efl_gfx_image_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_set_api_delegate>(Module, "efl_gfx_image_orientation_set");
+
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageOrientation dir)
+        {
+            Eina.Log.Debug("function efl_gfx_image_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((ImageInternal)ws.Target).SetOrientation(dir);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_gfx_image_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+            }
+        }
+
+        private static efl_gfx_image_orientation_set_delegate efl_gfx_image_orientation_set_static_delegate;
+
+        
         private delegate Eina.Size2D.NativeStruct efl_gfx_view_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
@@ -3571,13 +3428,13 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static Eina.Size2D.NativeStruct view_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_view_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((ImageInternal)wrapper).GetViewSize();
+                    _ret_var = ((ImageInternal)ws.Target).GetViewSize();
                 }
                 catch (Exception e)
                 {
@@ -3607,14 +3464,14 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
         private static void view_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_view_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((ImageInternal)wrapper).SetViewSize(_in_size);
+                    ((ImageInternal)ws.Target).SetViewSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -3632,7 +3489,7 @@ public abstract class ImageInternal : Efl.Canvas.Object, Efl.Eo.IWrapper,Efl.IFi
 
         private static efl_gfx_view_size_set_delegate efl_gfx_view_size_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 2d6c5df..f9a6c9e 100644 (file)
@@ -16,7 +16,7 @@ public class LayoutPartInvalidEvt_Args : EventArgs {
 }
 /// <summary>Edje object class</summary>
 [Efl.Canvas.Layout.NativeMethods]
-public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile,Efl.IObserver,Efl.IPart,Efl.IPlayer,Efl.Gfx.IColorClass,Efl.Gfx.ISizeClass,Efl.Gfx.ITextClass,Efl.Layout.ICalc,Efl.Layout.IGroup,Efl.Layout.ISignal
+public class Layout : Efl.Canvas.Group, Efl.IContainer, Efl.IFile, Efl.IObserver, Efl.IPart, Efl.IPlayer, Efl.Gfx.IColorClass, Efl.Gfx.ISizeClass, Efl.Gfx.ITextClass, Efl.Layout.ICalc, Efl.Layout.IGroup, Efl.Layout.ISignal
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -49,7 +49,7 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Layout(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Layout"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -60,33 +60,6 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Emitted when trying to use an invalid part. The value passed is the part name.</summary>
     public event EventHandler<Efl.Canvas.LayoutPartInvalidEvt_Args> PartInvalidEvt
     {
@@ -94,13 +67,12 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.LayoutPartInvalidEvt_Args args = new Efl.Canvas.LayoutPartInvalidEvt_Args();
+                        Efl.Canvas.LayoutPartInvalidEvt_Args args = new Efl.Canvas.LayoutPartInvalidEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -149,7 +121,7 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
             Eina.MemoryNative.Free(info);
         }
     }
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -157,13 +129,12 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -205,7 +176,7 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -213,13 +184,12 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -269,10 +239,9 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -323,13 +292,12 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Layout.ICalcCircularDependencyEvt_Args args = new Efl.Layout.ICalcCircularDependencyEvt_Args();
+                        Efl.Layout.ICalcCircularDependencyEvt_Args args = new Efl.Layout.ICalcCircularDependencyEvt_Args();
                         args.arg = new Eina.Array<System.String>(evt.Info, false, false);
                         try
                         {
@@ -593,15 +561,15 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
                                                                                          }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     virtual public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     virtual public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
@@ -1190,137 +1158,137 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Whether this object is animating or not.
-/// This property indicates whether animations are stopped or not. Animations here refer to transitions between states.
-/// 
-/// If animations are disabled, transitions between states (as defined in EDC) are then instantaneous. This is conceptually similar to setting the <see cref="Efl.IPlayer.PlaySpeed"/> to an infinitely high value.</summary>
-/// <value>The animation state, <c>true</c> by default.</value>
+    /// This property indicates whether animations are stopped or not. Animations here refer to transitions between states.
+    /// 
+    /// If animations are disabled, transitions between states (as defined in EDC) are then instantaneous. This is conceptually similar to setting the <see cref="Efl.IPlayer.PlaySpeed"/> to an infinitely high value.</summary>
+    /// <value>The animation state, <c>true</c> by default.</value>
     public bool Animation {
         get { return GetAnimation(); }
         set { SetAnimation(value); }
     }
     /// <summary>Gets the (last) file loading error for a given object.</summary>
-/// <value>The load error code.</value>
+    /// <value>The load error code.</value>
     public Eina.Error LayoutLoadError {
         get { return GetLayoutLoadError(); }
     }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
     /// <summary>Whether or not the playable can be played.</summary>
-/// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
     public bool Playable {
         get { return GetPlayable(); }
     }
     /// <summary>Get play/pause state of the media file.</summary>
-/// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
+    /// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
     public bool Play {
         get { return GetPlay(); }
         set { SetPlay(value); }
     }
     /// <summary>Get the position in the media file.
-/// The position is returned as the number of seconds since the beginning of the media file.</summary>
-/// <value>The position (in seconds).</value>
+    /// The position is returned as the number of seconds since the beginning of the media file.</summary>
+    /// <value>The position (in seconds).</value>
     public double Pos {
         get { return GetPos(); }
         set { SetPos(value); }
     }
     /// <summary>Get how much of the file has been played.
-/// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
-/// <value>The progress within the [0, 1] range.</value>
+    /// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
+    /// <value>The progress within the [0, 1] range.</value>
     public double Progress {
         get { return GetProgress(); }
     }
     /// <summary>Control the play speed of the media file.
-/// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
-/// <value>The play speed in the [0, infinity) range.</value>
+    /// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
+    /// <value>The play speed in the [0, infinity) range.</value>
     public double PlaySpeed {
         get { return GetPlaySpeed(); }
         set { SetPlaySpeed(value); }
     }
     /// <summary>Control the audio volume.
-/// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
-/// <value>The volume level</value>
+    /// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
+    /// <value>The volume level</value>
     public double Volume {
         get { return GetVolume(); }
         set { SetVolume(value); }
     }
     /// <summary>This property controls the audio mute state.</summary>
-/// <value>The mute state. <c>true</c> or <c>false</c>.</value>
+    /// <value>The mute state. <c>true</c> or <c>false</c>.</value>
     public bool Mute {
         get { return GetMute(); }
         set { SetMute(value); }
     }
     /// <summary>Get the length of play for the media file.</summary>
-/// <value>The length of the stream in seconds.</value>
+    /// <value>The length of the stream in seconds.</value>
     public double Length {
         get { return GetLength(); }
     }
     /// <summary>Get whether the media file is seekable.</summary>
-/// <value><c>true</c> if seekable.</value>
+    /// <value><c>true</c> if seekable.</value>
     public bool Seekable {
         get { return GetSeekable(); }
     }
     /// <summary>Whether this object updates its size hints automatically.
-/// By default edje doesn&apos;t set size hints on itself. If this property is set to <c>true</c>, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.
-/// 
-/// A layout recalculation can be triggered by <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcPartsExtends"/> or even any other internal event.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether or not update the size hints.</value>
+    /// By default edje doesn&apos;t set size hints on itself. If this property is set to <c>true</c>, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.
+    /// 
+    /// A layout recalculation can be triggered by <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcPartsExtends"/> or even any other internal event.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether or not update the size hints.</value>
     public bool CalcAutoUpdateHints {
         get { return GetCalcAutoUpdateHints(); }
         set { SetCalcAutoUpdateHints(value); }
     }
     /// <summary>Gets the minimum size specified -- as an EDC property -- for a given Edje object
-/// This function retrieves the obj object&apos;s minimum size values, as declared in its EDC group definition. For instance, for an Edje object of minimum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; min: 100 100; } }
-/// 
-/// Note: If the <c>min</c> EDC property was not declared for this object, this call will return 0x0.
-/// 
-/// Note: On failure, this function also return 0x0.
-/// 
-/// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMax"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The minimum size as set in EDC.</value>
+    /// This function retrieves the obj object&apos;s minimum size values, as declared in its EDC group definition. For instance, for an Edje object of minimum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; min: 100 100; } }
+    /// 
+    /// Note: If the <c>min</c> EDC property was not declared for this object, this call will return 0x0.
+    /// 
+    /// Note: On failure, this function also return 0x0.
+    /// 
+    /// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMax"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The minimum size as set in EDC.</value>
     public Eina.Size2D GroupSizeMin {
         get { return GetGroupSizeMin(); }
     }
     /// <summary>Gets the maximum size specified -- as an EDC property -- for a given Edje object
-/// This function retrieves the object&apos;s maximum size values, as declared in its EDC group definition. For instance, for an Edje object of maximum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; max: 100 100; } }
-/// 
-/// Note: If the <c>max</c> EDC property was not declared for the object, this call will return the maximum size a given Edje object may have, for each axis.
-/// 
-/// Note: On failure, this function will return 0x0.
-/// 
-/// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMin"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The maximum size as set in EDC.</value>
+    /// This function retrieves the object&apos;s maximum size values, as declared in its EDC group definition. For instance, for an Edje object of maximum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; max: 100 100; } }
+    /// 
+    /// Note: If the <c>max</c> EDC property was not declared for the object, this call will return the maximum size a given Edje object may have, for each axis.
+    /// 
+    /// Note: On failure, this function will return 0x0.
+    /// 
+    /// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMin"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The maximum size as set in EDC.</value>
     public Eina.Size2D GroupSizeMax {
         get { return GetGroupSizeMax(); }
     }
@@ -2170,7 +2138,7 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
             return Efl.Canvas.Layout.efl_canvas_layout_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_canvas_layout_animation_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -2183,13 +2151,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool animation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_layout_animation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetAnimation();
+                    _ret_var = ((Layout)ws.Target).GetAnimation();
                 }
                 catch (Exception e)
                 {
@@ -2219,13 +2187,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void animation_set(System.IntPtr obj, System.IntPtr pd, bool on)
         {
             Eina.Log.Debug("function efl_canvas_layout_animation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SetAnimation(on);
+                    ((Layout)ws.Target).SetAnimation(on);
                 }
                 catch (Exception e)
                 {
@@ -2254,13 +2222,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Efl.Input.Device seat_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_canvas_layout_seat_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetSeat(name);
+                    _ret_var = ((Layout)ws.Target).GetSeat(name);
                 }
                 catch (Exception e)
                 {
@@ -2290,13 +2258,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static System.String seat_name_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device device)
         {
             Eina.Log.Debug("function efl_canvas_layout_seat_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetSeatName(device);
+                    _ret_var = ((Layout)ws.Target).GetSeatName(device);
                 }
                 catch (Exception e)
                 {
@@ -2326,13 +2294,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Eina.Error layout_load_error_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_layout_load_error_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetLayoutLoadError();
+                    _ret_var = ((Layout)ws.Target).GetLayoutLoadError();
                 }
                 catch (Exception e)
                 {
@@ -2362,13 +2330,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool part_text_min_policy_get(System.IntPtr obj, System.IntPtr pd, System.String part, System.String state_name, out bool min_x, out bool min_y)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_min_policy_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         min_x = default(bool);        min_y = default(bool);                                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPartTextMinPolicy(part, state_name, out min_x, out min_y);
+                    _ret_var = ((Layout)ws.Target).GetPartTextMinPolicy(part, state_name, out min_x, out min_y);
                 }
                 catch (Exception e)
                 {
@@ -2398,13 +2366,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool part_text_min_policy_set(System.IntPtr obj, System.IntPtr pd, System.String part, System.String state_name, bool min_x, bool min_y)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_min_policy_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetPartTextMinPolicy(part, state_name, min_x, min_y);
+                    _ret_var = ((Layout)ws.Target).SetPartTextMinPolicy(part, state_name, min_x, min_y);
                 }
                 catch (Exception e)
                 {
@@ -2434,13 +2402,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static double part_text_valign_get(System.IntPtr obj, System.IntPtr pd, System.String part)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_valign_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPartTextValign(part);
+                    _ret_var = ((Layout)ws.Target).GetPartTextValign(part);
                 }
                 catch (Exception e)
                 {
@@ -2470,13 +2438,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool part_text_valign_set(System.IntPtr obj, System.IntPtr pd, System.String part, double valign)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_valign_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetPartTextValign(part, valign);
+                    _ret_var = ((Layout)ws.Target).SetPartTextValign(part, valign);
                 }
                 catch (Exception e)
                 {
@@ -2506,13 +2474,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static double part_text_marquee_duration_get(System.IntPtr obj, System.IntPtr pd, System.String part)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_marquee_duration_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPartTextMarqueeDuration(part);
+                    _ret_var = ((Layout)ws.Target).GetPartTextMarqueeDuration(part);
                 }
                 catch (Exception e)
                 {
@@ -2542,13 +2510,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool part_text_marquee_duration_set(System.IntPtr obj, System.IntPtr pd, System.String part, double duration)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_marquee_duration_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetPartTextMarqueeDuration(part, duration);
+                    _ret_var = ((Layout)ws.Target).SetPartTextMarqueeDuration(part, duration);
                 }
                 catch (Exception e)
                 {
@@ -2578,13 +2546,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static double part_text_marquee_speed_get(System.IntPtr obj, System.IntPtr pd, System.String part)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_marquee_speed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPartTextMarqueeSpeed(part);
+                    _ret_var = ((Layout)ws.Target).GetPartTextMarqueeSpeed(part);
                 }
                 catch (Exception e)
                 {
@@ -2614,13 +2582,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool part_text_marquee_speed_set(System.IntPtr obj, System.IntPtr pd, System.String part, double speed)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_marquee_speed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetPartTextMarqueeSpeed(part, speed);
+                    _ret_var = ((Layout)ws.Target).SetPartTextMarqueeSpeed(part, speed);
                 }
                 catch (Exception e)
                 {
@@ -2650,13 +2618,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool part_text_marquee_always_get(System.IntPtr obj, System.IntPtr pd, System.String part)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_marquee_always_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPartTextMarqueeAlways(part);
+                    _ret_var = ((Layout)ws.Target).GetPartTextMarqueeAlways(part);
                 }
                 catch (Exception e)
                 {
@@ -2686,13 +2654,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool part_text_marquee_always_set(System.IntPtr obj, System.IntPtr pd, System.String part, bool always)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_marquee_always_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetPartTextMarqueeAlways(part, always);
+                    _ret_var = ((Layout)ws.Target).SetPartTextMarqueeAlways(part, always);
                 }
                 catch (Exception e)
                 {
@@ -2722,13 +2690,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static double part_valign_get(System.IntPtr obj, System.IntPtr pd, System.String part)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_valign_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPartValign(part);
+                    _ret_var = ((Layout)ws.Target).GetPartValign(part);
                 }
                 catch (Exception e)
                 {
@@ -2758,13 +2726,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool part_valign_set(System.IntPtr obj, System.IntPtr pd, System.String part, double valign)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_valign_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetPartValign(part, valign);
+                    _ret_var = ((Layout)ws.Target).SetPartValign(part, valign);
                 }
                 catch (Exception e)
                 {
@@ -2794,13 +2762,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static System.IntPtr access_part_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_layout_access_part_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<System.String> _ret_var = default(Eina.Iterator<System.String>);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).AccessPartIterate();
+                    _ret_var = ((Layout)ws.Target).AccessPartIterate();
                 }
                 catch (Exception e)
                 {
@@ -2830,13 +2798,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool content_remove(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_canvas_layout_content_remove was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).ContentRemove(content);
+                    _ret_var = ((Layout)ws.Target).ContentRemove(content);
                 }
                 catch (Exception e)
                 {
@@ -2866,13 +2834,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void color_class_parent_set(System.IntPtr obj, System.IntPtr pd, Efl.Object parent)
         {
             Eina.Log.Debug("function efl_canvas_layout_color_class_parent_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SetColorClassParent(parent);
+                    ((Layout)ws.Target).SetColorClassParent(parent);
                 }
                 catch (Exception e)
                 {
@@ -2901,13 +2869,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void color_class_parent_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_layout_color_class_parent_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Layout)wrapper).UnsetColorClassParent();
+                    ((Layout)ws.Target).UnsetColorClassParent();
                 }
                 catch (Exception e)
                 {
@@ -2936,13 +2904,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void part_text_cursor_coord_get(System.IntPtr obj, System.IntPtr pd, System.String part, Edje.Cursor cur, out int x, out int y)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_cursor_coord_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         x = default(int);        y = default(int);                                            
                 try
                 {
-                    ((Layout)wrapper).GetPartTextCursorCoord(part, cur, out x, out y);
+                    ((Layout)ws.Target).GetPartTextCursorCoord(part, cur, out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -2971,13 +2939,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void part_text_cursor_size_get(System.IntPtr obj, System.IntPtr pd, System.String part, Edje.Cursor cur, out int w, out int h)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_cursor_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         w = default(int);        h = default(int);                                            
                 try
                 {
-                    ((Layout)wrapper).GetPartTextCursorSize(part, cur, out w, out h);
+                    ((Layout)ws.Target).GetPartTextCursorSize(part, cur, out w, out h);
                 }
                 catch (Exception e)
                 {
@@ -3006,13 +2974,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void part_text_cursor_on_mouse_geometry_get(System.IntPtr obj, System.IntPtr pd, System.String part, out int x, out int y, out int w, out int h)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_cursor_on_mouse_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         x = default(int);        y = default(int);        w = default(int);        h = default(int);                                                    
                 try
                 {
-                    ((Layout)wrapper).GetPartTextCursorOnMouseGeometry(part, out x, out y, out w, out h);
+                    ((Layout)ws.Target).GetPartTextCursorOnMouseGeometry(part, out x, out y, out w, out h);
                 }
                 catch (Exception e)
                 {
@@ -3041,13 +3009,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).ContentIterate();
+                    _ret_var = ((Layout)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -3077,13 +3045,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).ContentCount();
+                    _ret_var = ((Layout)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -3113,13 +3081,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetMmap();
+                    _ret_var = ((Layout)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -3149,13 +3117,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetMmap(f);
+                    _ret_var = ((Layout)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -3185,13 +3153,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetFile();
+                    _ret_var = ((Layout)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -3221,13 +3189,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetFile(file);
+                    _ret_var = ((Layout)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -3257,13 +3225,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetKey();
+                    _ret_var = ((Layout)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -3293,13 +3261,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SetKey(key);
+                    ((Layout)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -3328,13 +3296,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetLoaded();
+                    _ret_var = ((Layout)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -3364,13 +3332,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).Load();
+                    _ret_var = ((Layout)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -3400,13 +3368,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Layout)wrapper).Unload();
+                    ((Layout)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -3435,13 +3403,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void update(System.IntPtr obj, System.IntPtr pd, Efl.Object obs, System.String key, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_observer_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Layout)wrapper).Update(obs, key, data);
+                    ((Layout)ws.Target).Update(obs, key, data);
                 }
                 catch (Exception e)
                 {
@@ -3470,13 +3438,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Efl.Object part_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_part_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPart(name);
+                    _ret_var = ((Layout)ws.Target).GetPart(name);
                 }
                 catch (Exception e)
                 {
@@ -3506,13 +3474,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool playable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_playable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPlayable();
+                    _ret_var = ((Layout)ws.Target).GetPlayable();
                 }
                 catch (Exception e)
                 {
@@ -3542,13 +3510,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool play_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_play_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPlay();
+                    _ret_var = ((Layout)ws.Target).GetPlay();
                 }
                 catch (Exception e)
                 {
@@ -3578,13 +3546,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void play_set(System.IntPtr obj, System.IntPtr pd, bool play)
         {
             Eina.Log.Debug("function efl_player_play_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SetPlay(play);
+                    ((Layout)ws.Target).SetPlay(play);
                 }
                 catch (Exception e)
                 {
@@ -3613,13 +3581,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static double pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPos();
+                    _ret_var = ((Layout)ws.Target).GetPos();
                 }
                 catch (Exception e)
                 {
@@ -3649,13 +3617,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void pos_set(System.IntPtr obj, System.IntPtr pd, double sec)
         {
             Eina.Log.Debug("function efl_player_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SetPos(sec);
+                    ((Layout)ws.Target).SetPos(sec);
                 }
                 catch (Exception e)
                 {
@@ -3684,13 +3652,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static double progress_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_progress_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetProgress();
+                    _ret_var = ((Layout)ws.Target).GetProgress();
                 }
                 catch (Exception e)
                 {
@@ -3720,13 +3688,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static double play_speed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_play_speed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPlaySpeed();
+                    _ret_var = ((Layout)ws.Target).GetPlaySpeed();
                 }
                 catch (Exception e)
                 {
@@ -3756,13 +3724,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void play_speed_set(System.IntPtr obj, System.IntPtr pd, double speed)
         {
             Eina.Log.Debug("function efl_player_play_speed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SetPlaySpeed(speed);
+                    ((Layout)ws.Target).SetPlaySpeed(speed);
                 }
                 catch (Exception e)
                 {
@@ -3791,13 +3759,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static double volume_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_volume_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetVolume();
+                    _ret_var = ((Layout)ws.Target).GetVolume();
                 }
                 catch (Exception e)
                 {
@@ -3827,13 +3795,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void volume_set(System.IntPtr obj, System.IntPtr pd, double volume)
         {
             Eina.Log.Debug("function efl_player_volume_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SetVolume(volume);
+                    ((Layout)ws.Target).SetVolume(volume);
                 }
                 catch (Exception e)
                 {
@@ -3862,13 +3830,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool mute_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_mute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetMute();
+                    _ret_var = ((Layout)ws.Target).GetMute();
                 }
                 catch (Exception e)
                 {
@@ -3898,13 +3866,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void mute_set(System.IntPtr obj, System.IntPtr pd, bool mute)
         {
             Eina.Log.Debug("function efl_player_mute_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SetMute(mute);
+                    ((Layout)ws.Target).SetMute(mute);
                 }
                 catch (Exception e)
                 {
@@ -3933,13 +3901,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static double length_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetLength();
+                    _ret_var = ((Layout)ws.Target).GetLength();
                 }
                 catch (Exception e)
                 {
@@ -3969,13 +3937,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool seekable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_seekable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetSeekable();
+                    _ret_var = ((Layout)ws.Target).GetSeekable();
                 }
                 catch (Exception e)
                 {
@@ -4005,13 +3973,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void start(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Layout)wrapper).Start();
+                    ((Layout)ws.Target).Start();
                 }
                 catch (Exception e)
                 {
@@ -4040,13 +4008,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void stop(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_stop was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Layout)wrapper).Stop();
+                    ((Layout)ws.Target).Stop();
                 }
                 catch (Exception e)
                 {
@@ -4075,13 +4043,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool color_class_get(System.IntPtr obj, System.IntPtr pd, System.String color_class, Efl.Gfx.ColorClassLayer layer, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_color_class_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetColorClass(color_class, layer, out r, out g, out b, out a);
+                    _ret_var = ((Layout)ws.Target).GetColorClass(color_class, layer, out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -4111,13 +4079,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool color_class_set(System.IntPtr obj, System.IntPtr pd, System.String color_class, Efl.Gfx.ColorClassLayer layer, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_color_class_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetColorClass(color_class, layer, r, g, b, a);
+                    _ret_var = ((Layout)ws.Target).SetColorClass(color_class, layer, r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -4147,13 +4115,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static System.String color_class_code_get(System.IntPtr obj, System.IntPtr pd, System.String color_class, Efl.Gfx.ColorClassLayer layer)
         {
             Eina.Log.Debug("function efl_gfx_color_class_code_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetColorClassCode(color_class, layer);
+                    _ret_var = ((Layout)ws.Target).GetColorClassCode(color_class, layer);
                 }
                 catch (Exception e)
                 {
@@ -4183,13 +4151,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool color_class_code_set(System.IntPtr obj, System.IntPtr pd, System.String color_class, Efl.Gfx.ColorClassLayer layer, System.String colorcode)
         {
             Eina.Log.Debug("function efl_gfx_color_class_code_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetColorClassCode(color_class, layer, colorcode);
+                    _ret_var = ((Layout)ws.Target).SetColorClassCode(color_class, layer, colorcode);
                 }
                 catch (Exception e)
                 {
@@ -4219,13 +4187,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static System.String color_class_description_get(System.IntPtr obj, System.IntPtr pd, System.String color_class)
         {
             Eina.Log.Debug("function efl_gfx_color_class_description_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetColorClassDescription(color_class);
+                    _ret_var = ((Layout)ws.Target).GetColorClassDescription(color_class);
                 }
                 catch (Exception e)
                 {
@@ -4255,13 +4223,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void color_class_del(System.IntPtr obj, System.IntPtr pd, System.String color_class)
         {
             Eina.Log.Debug("function efl_gfx_color_class_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).DelColorClass(color_class);
+                    ((Layout)ws.Target).DelColorClass(color_class);
                 }
                 catch (Exception e)
                 {
@@ -4290,13 +4258,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void color_class_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_color_class_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Layout)wrapper).ClearColorClass();
+                    ((Layout)ws.Target).ClearColorClass();
                 }
                 catch (Exception e)
                 {
@@ -4325,13 +4293,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool size_class_get(System.IntPtr obj, System.IntPtr pd, System.String size_class, out int minw, out int minh, out int maxw, out int maxh)
         {
             Eina.Log.Debug("function efl_gfx_size_class_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         minw = default(int);        minh = default(int);        maxw = default(int);        maxh = default(int);                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetSizeClass(size_class, out minw, out minh, out maxw, out maxh);
+                    _ret_var = ((Layout)ws.Target).GetSizeClass(size_class, out minw, out minh, out maxw, out maxh);
                 }
                 catch (Exception e)
                 {
@@ -4361,13 +4329,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool size_class_set(System.IntPtr obj, System.IntPtr pd, System.String size_class, int minw, int minh, int maxw, int maxh)
         {
             Eina.Log.Debug("function efl_gfx_size_class_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetSizeClass(size_class, minw, minh, maxw, maxh);
+                    _ret_var = ((Layout)ws.Target).SetSizeClass(size_class, minw, minh, maxw, maxh);
                 }
                 catch (Exception e)
                 {
@@ -4397,13 +4365,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void size_class_del(System.IntPtr obj, System.IntPtr pd, System.String size_class)
         {
             Eina.Log.Debug("function efl_gfx_size_class_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).DelSizeClass(size_class);
+                    ((Layout)ws.Target).DelSizeClass(size_class);
                 }
                 catch (Exception e)
                 {
@@ -4432,14 +4400,14 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool text_class_get(System.IntPtr obj, System.IntPtr pd, System.String text_class, out System.String font, out Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_gfx_text_class_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         System.String _out_font = default(System.String);
         size = default(Efl.Font.Size);                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetTextClass(text_class, out _out_font, out size);
+                    _ret_var = ((Layout)ws.Target).GetTextClass(text_class, out _out_font, out size);
                 }
                 catch (Exception e)
                 {
@@ -4470,13 +4438,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool text_class_set(System.IntPtr obj, System.IntPtr pd, System.String text_class, System.String font, Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_gfx_text_class_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetTextClass(text_class, font, size);
+                    _ret_var = ((Layout)ws.Target).SetTextClass(text_class, font, size);
                 }
                 catch (Exception e)
                 {
@@ -4506,13 +4474,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void text_class_del(System.IntPtr obj, System.IntPtr pd, System.String text_class)
         {
             Eina.Log.Debug("function efl_gfx_text_class_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).DelTextClass(text_class);
+                    ((Layout)ws.Target).DelTextClass(text_class);
                 }
                 catch (Exception e)
                 {
@@ -4541,13 +4509,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool calc_auto_update_hints_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_auto_update_hints_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetCalcAutoUpdateHints();
+                    _ret_var = ((Layout)ws.Target).GetCalcAutoUpdateHints();
                 }
                 catch (Exception e)
                 {
@@ -4577,13 +4545,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void calc_auto_update_hints_set(System.IntPtr obj, System.IntPtr pd, bool update)
         {
             Eina.Log.Debug("function efl_layout_calc_auto_update_hints_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SetCalcAutoUpdateHints(update);
+                    ((Layout)ws.Target).SetCalcAutoUpdateHints(update);
                 }
                 catch (Exception e)
                 {
@@ -4612,14 +4580,14 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Eina.Size2D.NativeStruct calc_size_min(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct restricted)
         {
             Eina.Log.Debug("function efl_layout_calc_size_min was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_restricted = restricted;
                             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).CalcSizeMin(_in_restricted);
+                    _ret_var = ((Layout)ws.Target).CalcSizeMin(_in_restricted);
                 }
                 catch (Exception e)
                 {
@@ -4649,13 +4617,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Eina.Rect.NativeStruct calc_parts_extends(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_parts_extends was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).CalcPartsExtends();
+                    _ret_var = ((Layout)ws.Target).CalcPartsExtends();
                 }
                 catch (Exception e)
                 {
@@ -4685,13 +4653,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static int calc_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).FreezeCalc();
+                    _ret_var = ((Layout)ws.Target).FreezeCalc();
                 }
                 catch (Exception e)
                 {
@@ -4721,13 +4689,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static int calc_thaw(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_thaw was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).ThawCalc();
+                    _ret_var = ((Layout)ws.Target).ThawCalc();
                 }
                 catch (Exception e)
                 {
@@ -4757,13 +4725,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void calc_force(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_force was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Layout)wrapper).CalcForce();
+                    ((Layout)ws.Target).CalcForce();
                 }
                 catch (Exception e)
                 {
@@ -4792,13 +4760,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Eina.Size2D.NativeStruct group_size_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_group_size_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetGroupSizeMin();
+                    _ret_var = ((Layout)ws.Target).GetGroupSizeMin();
                 }
                 catch (Exception e)
                 {
@@ -4828,13 +4796,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static Eina.Size2D.NativeStruct group_size_max_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_group_size_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetGroupSizeMax();
+                    _ret_var = ((Layout)ws.Target).GetGroupSizeMax();
                 }
                 catch (Exception e)
                 {
@@ -4864,13 +4832,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static System.String group_data_get(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_layout_group_data_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetGroupData(key);
+                    _ret_var = ((Layout)ws.Target).GetGroupData(key);
                 }
                 catch (Exception e)
                 {
@@ -4900,13 +4868,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool part_exist_get(System.IntPtr obj, System.IntPtr pd, System.String part)
         {
             Eina.Log.Debug("function efl_layout_group_part_exist_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetPartExist(part);
+                    _ret_var = ((Layout)ws.Target).GetPartExist(part);
                 }
                 catch (Exception e)
                 {
@@ -4936,13 +4904,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void message_send(System.IntPtr obj, System.IntPtr pd, int id, Eina.ValueNative msg)
         {
             Eina.Log.Debug("function efl_layout_signal_message_send was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Layout)wrapper).MessageSend(id, msg);
+                    ((Layout)ws.Target).MessageSend(id, msg);
                 }
                 catch (Exception e)
                 {
@@ -4971,14 +4939,14 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool signal_callback_add(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_layout_signal_callback_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                             EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb);
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).AddSignalCallback(emission, source, func_wrapper.ManagedCb);
+                    _ret_var = ((Layout)ws.Target).AddSignalCallback(emission, source, func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -5008,14 +4976,14 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static bool signal_callback_del(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_layout_signal_callback_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                             EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb);
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).DelSignalCallback(emission, source, func_wrapper.ManagedCb);
+                    _ret_var = ((Layout)ws.Target).DelSignalCallback(emission, source, func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -5045,13 +5013,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void signal_emit(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source)
         {
             Eina.Log.Debug("function efl_layout_signal_emit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Layout)wrapper).EmitSignal(emission, source);
+                    ((Layout)ws.Target).EmitSignal(emission, source);
                 }
                 catch (Exception e)
                 {
@@ -5080,13 +5048,13 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
         private static void signal_process(System.IntPtr obj, System.IntPtr pd, bool recurse)
         {
             Eina.Log.Debug("function efl_layout_signal_process was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SignalProcess(recurse);
+                    ((Layout)ws.Target).SignalProcess(recurse);
                 }
                 catch (Exception e)
                 {
@@ -5104,7 +5072,7 @@ public class Layout : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContainer,Efl.IFile
 
         private static efl_layout_signal_process_delegate efl_layout_signal_process_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 10f8b8e..859ffcb 100644 (file)
@@ -12,7 +12,7 @@ namespace Canvas {
 /// <summary>Common class for part proxy objects for <see cref="Efl.Canvas.Layout"/>.
 /// As an <see cref="Efl.IPart"/> implementation class, all objects of this class are meant to be used for one and only one function call. In pseudo-code, the use of object of this type looks like the following: rect = layout.part(&quot;somepart&quot;).geometry_get();</summary>
 [Efl.Canvas.LayoutPart.NativeMethods]
-public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDrag
+public class LayoutPart : Efl.Object, Efl.Gfx.IEntity, Efl.Ui.IDrag
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,33 +56,6 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Object&apos;s visibility state changed, the event value is the new state.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.Gfx.IEntityVisibilityChangedEvt_Args> VisibilityChangedEvt
@@ -91,14 +64,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -154,13 +126,12 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
+                        Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -218,13 +189,12 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
+                        Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -475,55 +445,55 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
                                         return _ret_var;
  }
     /// <summary>Type of this part in the layout.</summary>
-/// <value>One of the types or <c>none</c> if not an existing part.</value>
+    /// <value>One of the types or <c>none</c> if not an existing part.</value>
     public Efl.Canvas.LayoutPartType PartType {
         get { return GetPartType(); }
     }
     /// <summary>The 2D position of a canvas object.
-/// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D coordinate in pixel units.</value>
+    /// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D coordinate in pixel units.</value>
     public Eina.Position2D Position {
         get { return GetPosition(); }
         set { SetPosition(value); }
     }
     /// <summary>The 2D size of a canvas object.
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D size in pixel units.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D size in pixel units.</value>
     public Eina.Size2D Size {
         get { return GetSize(); }
         set { SetSize(value); }
     }
     /// <summary>Rectangular geometry that combines both position and size.
-/// (Since EFL 1.22)</summary>
-/// <value>The X,Y position and W,H size, in pixels.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The X,Y position and W,H size, in pixels.</value>
     public Eina.Rect Geometry {
         get { return GetGeometry(); }
         set { SetGeometry(value); }
     }
     /// <summary>The visibility of a canvas object.
-/// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
-/// 
-/// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
+    /// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
+    /// 
+    /// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
     public bool Visible {
         get { return GetVisible(); }
         set { SetVisible(value); }
     }
     /// <summary>The scaling factor of an object.
-/// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
-/// 
-/// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
-/// (Since EFL 1.22)</summary>
-/// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
+    /// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
+    /// 
+    /// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
     public double Scale {
         get { return GetScale(); }
         set { SetScale(value); }
     }
     /// <summary>Determines the draggable directions (read-only).
-/// The draggable directions are defined in the EDC file, inside the &quot;draggable&quot; section, by the attributes <c>x</c> and <c>y</c>. See the EDC reference documentation for more information.</summary>
-/// <value>The direction(s) premitted for drag.</value>
+    /// The draggable directions are defined in the EDC file, inside the &quot;draggable&quot; section, by the attributes <c>x</c> and <c>y</c>. See the EDC reference documentation for more information.</summary>
+    /// <value>The direction(s) premitted for drag.</value>
     public Efl.Ui.DragDir DragDir {
         get { return GetDragDir(); }
     }
@@ -783,7 +753,7 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
             return Efl.Canvas.LayoutPart.efl_canvas_layout_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_canvas_layout_part_state_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String state,  out double val);
@@ -796,14 +766,14 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static void state_get(System.IntPtr obj, System.IntPtr pd, out System.String state, out double val)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_state_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         System.String _out_state = default(System.String);
         val = default(double);                            
                 try
                 {
-                    ((LayoutPart)wrapper).GetState(out _out_state, out val);
+                    ((LayoutPart)ws.Target).GetState(out _out_state, out val);
                 }
                 catch (Exception e)
                 {
@@ -833,13 +803,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static Efl.Canvas.LayoutPartType part_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.LayoutPartType _ret_var = default(Efl.Canvas.LayoutPartType);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetPartType();
+                    _ret_var = ((LayoutPart)ws.Target).GetPartType();
                 }
                 catch (Exception e)
                 {
@@ -869,13 +839,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static Eina.Position2D.NativeStruct position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetPosition();
+                    _ret_var = ((LayoutPart)ws.Target).GetPosition();
                 }
                 catch (Exception e)
                 {
@@ -905,14 +875,14 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static void position_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((LayoutPart)wrapper).SetPosition(_in_pos);
+                    ((LayoutPart)ws.Target).SetPosition(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -941,13 +911,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static Eina.Size2D.NativeStruct size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetSize();
+                    _ret_var = ((LayoutPart)ws.Target).GetSize();
                 }
                 catch (Exception e)
                 {
@@ -977,14 +947,14 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static void size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((LayoutPart)wrapper).SetSize(_in_size);
+                    ((LayoutPart)ws.Target).SetSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -1013,13 +983,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static Eina.Rect.NativeStruct geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetGeometry();
+                    _ret_var = ((LayoutPart)ws.Target).GetGeometry();
                 }
                 catch (Exception e)
                 {
@@ -1049,14 +1019,14 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static void geometry_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                             
                 try
                 {
-                    ((LayoutPart)wrapper).SetGeometry(_in_rect);
+                    ((LayoutPart)ws.Target).SetGeometry(_in_rect);
                 }
                 catch (Exception e)
                 {
@@ -1085,13 +1055,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool visible_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetVisible();
+                    _ret_var = ((LayoutPart)ws.Target).GetVisible();
                 }
                 catch (Exception e)
                 {
@@ -1121,13 +1091,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static void visible_set(System.IntPtr obj, System.IntPtr pd, bool v)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPart)wrapper).SetVisible(v);
+                    ((LayoutPart)ws.Target).SetVisible(v);
                 }
                 catch (Exception e)
                 {
@@ -1156,13 +1126,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static double scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetScale();
+                    _ret_var = ((LayoutPart)ws.Target).GetScale();
                 }
                 catch (Exception e)
                 {
@@ -1192,13 +1162,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static void scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPart)wrapper).SetScale(scale);
+                    ((LayoutPart)ws.Target).SetScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -1227,13 +1197,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool drag_value_get(System.IntPtr obj, System.IntPtr pd, out double dx, out double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         dx = default(double);        dy = default(double);                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetDragValue(out dx, out dy);
+                    _ret_var = ((LayoutPart)ws.Target).GetDragValue(out dx, out dy);
                 }
                 catch (Exception e)
                 {
@@ -1263,13 +1233,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool drag_value_set(System.IntPtr obj, System.IntPtr pd, double dx, double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).SetDragValue(dx, dy);
+                    _ret_var = ((LayoutPart)ws.Target).SetDragValue(dx, dy);
                 }
                 catch (Exception e)
                 {
@@ -1299,13 +1269,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool drag_size_get(System.IntPtr obj, System.IntPtr pd, out double dw, out double dh)
         {
             Eina.Log.Debug("function efl_ui_drag_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         dw = default(double);        dh = default(double);                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetDragSize(out dw, out dh);
+                    _ret_var = ((LayoutPart)ws.Target).GetDragSize(out dw, out dh);
                 }
                 catch (Exception e)
                 {
@@ -1335,13 +1305,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool drag_size_set(System.IntPtr obj, System.IntPtr pd, double dw, double dh)
         {
             Eina.Log.Debug("function efl_ui_drag_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).SetDragSize(dw, dh);
+                    _ret_var = ((LayoutPart)ws.Target).SetDragSize(dw, dh);
                 }
                 catch (Exception e)
                 {
@@ -1371,13 +1341,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static Efl.Ui.DragDir drag_dir_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_drag_dir_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.DragDir _ret_var = default(Efl.Ui.DragDir);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetDragDir();
+                    _ret_var = ((LayoutPart)ws.Target).GetDragDir();
                 }
                 catch (Exception e)
                 {
@@ -1407,13 +1377,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool drag_step_get(System.IntPtr obj, System.IntPtr pd, out double dx, out double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_step_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         dx = default(double);        dy = default(double);                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetDragStep(out dx, out dy);
+                    _ret_var = ((LayoutPart)ws.Target).GetDragStep(out dx, out dy);
                 }
                 catch (Exception e)
                 {
@@ -1443,13 +1413,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool drag_step_set(System.IntPtr obj, System.IntPtr pd, double dx, double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_step_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).SetDragStep(dx, dy);
+                    _ret_var = ((LayoutPart)ws.Target).SetDragStep(dx, dy);
                 }
                 catch (Exception e)
                 {
@@ -1479,13 +1449,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool drag_page_get(System.IntPtr obj, System.IntPtr pd, out double dx, out double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_page_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         dx = default(double);        dy = default(double);                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).GetDragPage(out dx, out dy);
+                    _ret_var = ((LayoutPart)ws.Target).GetDragPage(out dx, out dy);
                 }
                 catch (Exception e)
                 {
@@ -1515,13 +1485,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool drag_page_set(System.IntPtr obj, System.IntPtr pd, double dx, double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_page_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).SetDragPage(dx, dy);
+                    _ret_var = ((LayoutPart)ws.Target).SetDragPage(dx, dy);
                 }
                 catch (Exception e)
                 {
@@ -1551,13 +1521,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool drag_step_move(System.IntPtr obj, System.IntPtr pd, double dx, double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_step_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).MoveDragStep(dx, dy);
+                    _ret_var = ((LayoutPart)ws.Target).MoveDragStep(dx, dy);
                 }
                 catch (Exception e)
                 {
@@ -1587,13 +1557,13 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
         private static bool drag_page_move(System.IntPtr obj, System.IntPtr pd, double dx, double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_page_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPart)wrapper).MoveDragPage(dx, dy);
+                    _ret_var = ((LayoutPart)ws.Target).MoveDragPage(dx, dy);
                 }
                 catch (Exception e)
                 {
@@ -1612,7 +1582,7 @@ public class LayoutPart : Efl.Object, Efl.Eo.IWrapper,Efl.Gfx.IEntity,Efl.Ui.IDr
 
         private static efl_ui_drag_page_move_delegate efl_ui_drag_page_move_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 0dc5e0a..8c9a2b4 100644 (file)
@@ -12,7 +12,7 @@ namespace Canvas {
 /// <summary>Represents a Box created as part of a layout.
 /// Its lifetime is limited to one function call only, unless an extra reference is explicitly held.</summary>
 [Efl.Canvas.LayoutPartBox.NativeMethods]
-public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.IPackLinear,Efl.Ui.IDirection,Efl.Ui.IDirectionReadonly
+public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.IContainer, Efl.IPack, Efl.IPackLinear, Efl.Ui.ILayoutOrientable, Efl.Ui.ILayoutOrientableReadonly
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartBox(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartBox"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,34 +56,7 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -91,13 +64,12 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -139,7 +111,7 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -147,13 +119,12 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -197,78 +168,48 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
     }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     virtual public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     virtual public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
@@ -279,85 +220,83 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, 0).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the beginning.</param>
+    /// <param name="subobj">Object to pack at the beginning.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBegin(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_begin_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Append item at the end of this container.
+    /// <summary>Append object at the end of this container.
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, -1).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the end.</param>
+    /// <param name="subobj">Object to pack at the end.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackEnd(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_end_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Prepend item before other sub object.
+    /// <summary>Prepend an object before an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack before <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack before <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBefore(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_before_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Append item after other sub object.
+    /// <summary>Append an object after an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack after <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack after <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAfter(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_after_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Inserts <c>subobj</c> BEFORE the item at position <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Inserts <c>subobj</c> BEFORE the sub-object at position <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
     /// If <c>index</c> is less than -<c>count</c>, it will trigger <see cref="Efl.IPackLinear.PackBegin"/>(<c>subobj</c>) whereas <c>index</c> greater than <c>count</c>-1 will trigger <see cref="Efl.IPackLinear.PackEnd"/>(<c>subobj</c>).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack.</param>
-    /// <param name="index">Index of item to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <param name="subobj">Object to pack.</param>
+    /// <param name="index">Index of existing sub-object to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAt(Efl.Gfx.IEntity subobj, int index) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Content at a given <c>index</c> in this container.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Sub-object at a given <c>index</c> in this container.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will return the first item whereas <c>index</c> greater than <c>count</c>-1 will return the last item.</summary>
-    /// <param name="index">Index of the item to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The object contained at the given <c>index</c>.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will return the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will return the last sub-object.</summary>
+    /// <param name="index">Index of the existing sub-object to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object contained at the given <c>index</c>.</returns>
     virtual public Efl.Gfx.IEntity GetPackContent(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Get the index of a child in this container.</summary>
-    /// <param name="subobj">An object contained in this pack.</param>
-    /// <returns>-1 in case <c>subobj</c> is not a child of this object, or the index of this item in the range 0 to (<c>count</c>-1).</returns>
+    /// <summary>Get the index of a sub-object in this container.</summary>
+    /// <param name="subobj">An existing sub-object in this container.</param>
+    /// <returns>-1 in case <c>subobj</c> is not found, or the index of <c>subobj</c> in the range 0 to (<c>count</c>-1).</returns>
     virtual public int GetPackIndex(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_index_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Pop out (remove) the item at the specified <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
-    /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will remove the first item whereas <c>index</c> greater than <c>count</c>-1 will remove the last item.
+    /// <summary>Pop out (remove) the sub-object at the specified <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// Equivalent to <see cref="Efl.IPack.Unpack"/>(<see cref="Efl.IPackLinear.GetPackContent"/>(<c>index</c>)).</summary>
-    /// <param name="index">Index of item to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The child item if it could be removed.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will remove the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will remove the last sub-object.</summary>
+    /// <param name="index">Index of the sub-object to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object if it could be removed.</returns>
     virtual public Efl.Gfx.IEntity PackUnpackAt(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_unpack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
@@ -368,8 +307,8 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <returns>Direction of the widget.</returns>
-    virtual public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+    virtual public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
@@ -378,18 +317,18 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <param name="dir">Direction of the widget.</param>
-    virtual public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+    virtual public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
     }
     private static IntPtr GetEflClassStatic()
     {
@@ -427,46 +366,6 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_count"), func = Marshal.GetFunctionPointerForDelegate(efl_content_count_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -587,24 +486,24 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack_at"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_at_static_delegate) });
             }
 
-            if (efl_ui_direction_get_static_delegate == null)
+            if (efl_ui_layout_orientation_get_static_delegate == null)
             {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
             }
 
-            if (efl_ui_direction_set_static_delegate == null)
+            if (efl_ui_layout_orientation_set_static_delegate == null)
             {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
             }
 
             descs.AddRange(base.GetEoOps(type));
@@ -617,7 +516,7 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
             return Efl.Canvas.LayoutPartBox.efl_canvas_layout_part_box_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_content_iterate_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -630,13 +529,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).ContentIterate();
+                    _ret_var = ((LayoutPartBox)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -666,13 +565,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).ContentCount();
+                    _ret_var = ((LayoutPartBox)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -691,146 +590,6 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((LayoutPartBox)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((LayoutPartBox)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((LayoutPartBox)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((LayoutPartBox)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -842,13 +601,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).ClearPack();
+                    _ret_var = ((LayoutPartBox)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -878,13 +637,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).UnpackAll();
+                    _ret_var = ((LayoutPartBox)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -914,13 +673,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).Unpack(subobj);
+                    _ret_var = ((LayoutPartBox)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -950,13 +709,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).Pack(subobj);
+                    _ret_var = ((LayoutPartBox)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -986,13 +745,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static bool pack_begin(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_begin was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackBegin(subobj);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackBegin(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1022,13 +781,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static bool pack_end(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackEnd(subobj);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackEnd(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1058,13 +817,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static bool pack_before(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_before was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackBefore(subobj, existing);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackBefore(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -1094,13 +853,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static bool pack_after(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_after was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackAfter(subobj, existing);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackAfter(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -1130,13 +889,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static bool pack_at(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
         {
             Eina.Log.Debug("function efl_pack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackAt(subobj, index);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackAt(subobj, index);
                 }
                 catch (Exception e)
                 {
@@ -1166,13 +925,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static Efl.Gfx.IEntity pack_content_get(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).GetPackContent(index);
+                    _ret_var = ((LayoutPartBox)ws.Target).GetPackContent(index);
                 }
                 catch (Exception e)
                 {
@@ -1202,13 +961,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static int pack_index_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).GetPackIndex(subobj);
+                    _ret_var = ((LayoutPartBox)ws.Target).GetPackIndex(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1238,13 +997,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static Efl.Gfx.IEntity pack_unpack_at(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_unpack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackUnpackAt(index);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackUnpackAt(index);
                 }
                 catch (Exception e)
                 {
@@ -1264,23 +1023,23 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
         private static efl_pack_unpack_at_delegate efl_pack_unpack_at_static_delegate;
 
         
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
 
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).GetDirection();
+                    _ret_var = ((LayoutPartBox)ws.Target).GetOrientation();
                 }
                 catch (Exception e)
                 {
@@ -1293,30 +1052,30 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
             }
             else
             {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
 
         
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
 
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartBox)wrapper).SetDirection(dir);
+                    ((LayoutPartBox)ws.Target).SetOrientation(dir);
                 }
                 catch (Exception e)
                 {
@@ -1328,13 +1087,13 @@ public class LayoutPartBox : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContain
             }
             else
             {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
             }
         }
 
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 973dccd..ec51c31 100644 (file)
@@ -18,7 +18,7 @@ namespace Canvas {
 /// 
 /// Note that as a shortcut the widget&apos;s functions can be called directly on this part object. In C++: efl::eo::downcast&lt;efl::Text&gt;(layout.part(&quot;title&quot;)).text_set(&quot;hello&quot;); Or in pseudo-C: efl_text_set(efl_part(layout, &quot;title&quot;), &quot;hello&quot;); Or in pseudo-script: layout[&quot;title&quot;].text = &quot;hello&quot;;</summary>
 [Efl.Canvas.LayoutPartExternal.NativeMethods]
-public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
+public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartExternal(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartExternal"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -97,13 +70,12 @@ public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -173,9 +145,9 @@ public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         return _ret_var;
  }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
@@ -236,7 +208,7 @@ public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
             return Efl.Canvas.LayoutPartExternal.efl_canvas_layout_part_external_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -249,13 +221,13 @@ public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartExternal)wrapper).GetContent();
+                    _ret_var = ((LayoutPartExternal)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -285,13 +257,13 @@ public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartExternal)wrapper).SetContent(content);
+                    _ret_var = ((LayoutPartExternal)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -321,13 +293,13 @@ public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartExternal)wrapper).UnsetContent();
+                    _ret_var = ((LayoutPartExternal)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -346,7 +318,7 @@ public class LayoutPartExternal : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 63aecbc..d65aae2 100644 (file)
@@ -12,7 +12,7 @@ namespace Canvas {
 /// <summary>Represents a SWALLOW part of an Edje object.
 /// Its lifetime is limited to one function call only, unless an extra reference is explicitely held.</summary>
 [Efl.Canvas.LayoutPartSwallow.NativeMethods]
-public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
+public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICon
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartSwallow(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartSwallow"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,33 +56,6 @@ public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICon
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -91,13 +64,12 @@ public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICon
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -167,9 +139,9 @@ public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICon
         return _ret_var;
  }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
@@ -230,7 +202,7 @@ public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICon
             return Efl.Canvas.LayoutPartSwallow.efl_canvas_layout_part_swallow_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -243,13 +215,13 @@ public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICon
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartSwallow)wrapper).GetContent();
+                    _ret_var = ((LayoutPartSwallow)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -279,13 +251,13 @@ public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICon
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartSwallow)wrapper).SetContent(content);
+                    _ret_var = ((LayoutPartSwallow)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -315,13 +287,13 @@ public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICon
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartSwallow)wrapper).UnsetContent();
+                    _ret_var = ((LayoutPartSwallow)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -340,7 +312,7 @@ public class LayoutPartSwallow : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.ICon
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index a93c839..accc5c3 100644 (file)
@@ -12,7 +12,7 @@ namespace Canvas {
 /// <summary>Represents a Table created as part of a layout.
 /// Can not be deleted, this is only a representation of an internal object of an EFL layout.</summary>
 [Efl.Canvas.LayoutPartTable.NativeMethods]
-public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.IPackTable
+public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.IContainer, Efl.IPack, Efl.IPackTable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartTable(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartTable"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,34 +56,7 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -91,13 +64,12 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -139,7 +111,7 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -147,13 +119,12 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -197,78 +168,48 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
     }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     virtual public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     virtual public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
@@ -301,48 +242,32 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
                                                          Efl.IPackTableConcrete.NativeMethods.efl_pack_table_size_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cols, rows);
         Eina.Error.RaiseIfUnhandledException();
                                          }
-    /// <summary>Gird columns property</summary>
-    /// <returns>Number of columns</returns>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <returns>Amount of columns.</returns>
     virtual public int GetTableColumns() {
          var _ret_var = Efl.IPackTableConcrete.NativeMethods.efl_pack_table_columns_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Specifies limit for linear adds - if direction is horizontal</summary>
-    /// <param name="cols">Number of columns</param>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <param name="cols">Amount of columns.</param>
     virtual public void SetTableColumns(int cols) {
                                  Efl.IPackTableConcrete.NativeMethods.efl_pack_table_columns_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cols);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Table rows property</summary>
-    /// <returns>Number of rows</returns>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <returns>Amount of rows.</returns>
     virtual public int GetTableRows() {
          var _ret_var = Efl.IPackTableConcrete.NativeMethods.efl_pack_table_rows_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Specifies limit for linear adds - if direction is vertical</summary>
-    /// <param name="rows">Number of rows</param>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <param name="rows">Amount of rows.</param>
     virtual public void SetTableRows(int rows) {
                                  Efl.IPackTableConcrete.NativeMethods.efl_pack_table_rows_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),rows);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Primary and secondary up/left/right/down directions for linear apis.
-    /// Default is horizontal and vertical. This overrides <see cref="Efl.Ui.IDirection.Direction"/>.</summary>
-    /// <param name="primary">Primary direction</param>
-    /// <param name="secondary">Secondary direction</param>
-    virtual public void GetTableDirection(out Efl.Ui.Dir primary, out Efl.Ui.Dir secondary) {
-                                                         Efl.IPackTableConcrete.NativeMethods.efl_pack_table_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out primary, out secondary);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Primary and secondary up/left/right/down directions for linear apis.
-    /// Default is horizontal and vertical. This overrides <see cref="Efl.Ui.IDirection.Direction"/>.</summary>
-    /// <param name="primary">Primary direction</param>
-    /// <param name="secondary">Secondary direction</param>
-    virtual public void SetTableDirection(Efl.Ui.Dir primary, Efl.Ui.Dir secondary) {
-                                                         Efl.IPackTableConcrete.NativeMethods.efl_pack_table_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),primary, secondary);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
     /// <summary>Pack object at a given location in the table.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
     /// <param name="subobj">A child object to pack in this table.</param>
@@ -375,14 +300,14 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Gird columns property</summary>
-/// <value>Number of columns</value>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <value>Amount of columns.</value>
     public int TableColumns {
         get { return GetTableColumns(); }
         set { SetTableColumns(value); }
     }
-    /// <summary>Table rows property</summary>
-/// <value>Number of rows</value>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <value>Amount of rows.</value>
     public int TableRows {
         get { return GetTableRows(); }
         set { SetTableRows(value); }
@@ -423,46 +348,6 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_count"), func = Marshal.GetFunctionPointerForDelegate(efl_content_count_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -573,26 +458,6 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_rows_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_rows_set_static_delegate) });
             }
 
-            if (efl_pack_table_direction_get_static_delegate == null)
-            {
-                efl_pack_table_direction_get_static_delegate = new efl_pack_table_direction_get_delegate(table_direction_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetTableDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_direction_get_static_delegate) });
-            }
-
-            if (efl_pack_table_direction_set_static_delegate == null)
-            {
-                efl_pack_table_direction_set_static_delegate = new efl_pack_table_direction_set_delegate(table_direction_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetTableDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_direction_set_static_delegate) });
-            }
-
             if (efl_pack_table_static_delegate == null)
             {
                 efl_pack_table_static_delegate = new efl_pack_table_delegate(pack_table);
@@ -633,7 +498,7 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
             return Efl.Canvas.LayoutPartTable.efl_canvas_layout_part_table_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_content_iterate_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -646,13 +511,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).ContentIterate();
+                    _ret_var = ((LayoutPartTable)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -682,13 +547,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).ContentCount();
+                    _ret_var = ((LayoutPartTable)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -707,146 +572,6 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((LayoutPartTable)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((LayoutPartTable)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((LayoutPartTable)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((LayoutPartTable)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -858,13 +583,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).ClearPack();
+                    _ret_var = ((LayoutPartTable)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -894,13 +619,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).UnpackAll();
+                    _ret_var = ((LayoutPartTable)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -930,13 +655,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).Unpack(subobj);
+                    _ret_var = ((LayoutPartTable)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -966,13 +691,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).Pack(subobj);
+                    _ret_var = ((LayoutPartTable)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1002,13 +727,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static bool table_position_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, out int col, out int row, out int colspan, out int rowspan)
         {
             Eina.Log.Debug("function efl_pack_table_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         col = default(int);        row = default(int);        colspan = default(int);        rowspan = default(int);                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).GetTablePosition(subobj, out col, out row, out colspan, out rowspan);
+                    _ret_var = ((LayoutPartTable)ws.Target).GetTablePosition(subobj, out col, out row, out colspan, out rowspan);
                 }
                 catch (Exception e)
                 {
@@ -1038,13 +763,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static void table_size_get(System.IntPtr obj, System.IntPtr pd, out int cols, out int rows)
         {
             Eina.Log.Debug("function efl_pack_table_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         cols = default(int);        rows = default(int);                            
                 try
                 {
-                    ((LayoutPartTable)wrapper).GetTableSize(out cols, out rows);
+                    ((LayoutPartTable)ws.Target).GetTableSize(out cols, out rows);
                 }
                 catch (Exception e)
                 {
@@ -1073,13 +798,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static void table_size_set(System.IntPtr obj, System.IntPtr pd, int cols, int rows)
         {
             Eina.Log.Debug("function efl_pack_table_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartTable)wrapper).SetTableSize(cols, rows);
+                    ((LayoutPartTable)ws.Target).SetTableSize(cols, rows);
                 }
                 catch (Exception e)
                 {
@@ -1108,13 +833,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static int table_columns_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_table_columns_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).GetTableColumns();
+                    _ret_var = ((LayoutPartTable)ws.Target).GetTableColumns();
                 }
                 catch (Exception e)
                 {
@@ -1144,13 +869,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static void table_columns_set(System.IntPtr obj, System.IntPtr pd, int cols)
         {
             Eina.Log.Debug("function efl_pack_table_columns_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartTable)wrapper).SetTableColumns(cols);
+                    ((LayoutPartTable)ws.Target).SetTableColumns(cols);
                 }
                 catch (Exception e)
                 {
@@ -1179,13 +904,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static int table_rows_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_table_rows_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).GetTableRows();
+                    _ret_var = ((LayoutPartTable)ws.Target).GetTableRows();
                 }
                 catch (Exception e)
                 {
@@ -1215,13 +940,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static void table_rows_set(System.IntPtr obj, System.IntPtr pd, int rows)
         {
             Eina.Log.Debug("function efl_pack_table_rows_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartTable)wrapper).SetTableRows(rows);
+                    ((LayoutPartTable)ws.Target).SetTableRows(rows);
                 }
                 catch (Exception e)
                 {
@@ -1239,76 +964,6 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
 
         private static efl_pack_table_rows_set_delegate efl_pack_table_rows_set_static_delegate;
 
-        
-        private delegate void efl_pack_table_direction_get_delegate(System.IntPtr obj, System.IntPtr pd,  out Efl.Ui.Dir primary,  out Efl.Ui.Dir secondary);
-
-        
-        public delegate void efl_pack_table_direction_get_api_delegate(System.IntPtr obj,  out Efl.Ui.Dir primary,  out Efl.Ui.Dir secondary);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_direction_get_api_delegate> efl_pack_table_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_direction_get_api_delegate>(Module, "efl_pack_table_direction_get");
-
-        private static void table_direction_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.Dir primary, out Efl.Ui.Dir secondary)
-        {
-            Eina.Log.Debug("function efl_pack_table_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        primary = default(Efl.Ui.Dir);        secondary = default(Efl.Ui.Dir);                            
-                try
-                {
-                    ((LayoutPartTable)wrapper).GetTableDirection(out primary, out secondary);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_table_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out primary, out secondary);
-            }
-        }
-
-        private static efl_pack_table_direction_get_delegate efl_pack_table_direction_get_static_delegate;
-
-        
-        private delegate void efl_pack_table_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir primary,  Efl.Ui.Dir secondary);
-
-        
-        public delegate void efl_pack_table_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir primary,  Efl.Ui.Dir secondary);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_direction_set_api_delegate> efl_pack_table_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_direction_set_api_delegate>(Module, "efl_pack_table_direction_set");
-
-        private static void table_direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir primary, Efl.Ui.Dir secondary)
-        {
-            Eina.Log.Debug("function efl_pack_table_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((LayoutPartTable)wrapper).SetTableDirection(primary, secondary);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_table_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), primary, secondary);
-            }
-        }
-
-        private static efl_pack_table_direction_set_delegate efl_pack_table_direction_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_table_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int col,  int row,  int colspan,  int rowspan);
 
@@ -1320,13 +975,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static bool pack_table(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int col, int row, int colspan, int rowspan)
         {
             Eina.Log.Debug("function efl_pack_table was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).PackTable(subobj, col, row, colspan, rowspan);
+                    _ret_var = ((LayoutPartTable)ws.Target).PackTable(subobj, col, row, colspan, rowspan);
                 }
                 catch (Exception e)
                 {
@@ -1356,13 +1011,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static System.IntPtr table_contents_get(System.IntPtr obj, System.IntPtr pd, int col, int row, bool below)
         {
             Eina.Log.Debug("function efl_pack_table_contents_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).GetTableContents(col, row, below);
+                    _ret_var = ((LayoutPartTable)ws.Target).GetTableContents(col, row, below);
                 }
                 catch (Exception e)
                 {
@@ -1392,13 +1047,13 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
         private static Efl.Gfx.IEntity table_content_get(System.IntPtr obj, System.IntPtr pd, int col, int row)
         {
             Eina.Log.Debug("function efl_pack_table_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).GetTableContent(col, row);
+                    _ret_var = ((LayoutPartTable)ws.Target).GetTableContent(col, row);
                 }
                 catch (Exception e)
                 {
@@ -1417,7 +1072,7 @@ public class LayoutPartTable : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IConta
 
         private static efl_pack_table_content_get_delegate efl_pack_table_content_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e930148..a540487 100644 (file)
@@ -12,7 +12,7 @@ namespace Canvas {
 /// <summary>Represents a TEXT part of a layout
 /// Its lifetime is limited to one function call only, unless an extra reference is explicitly held.</summary>
 [Efl.Canvas.LayoutPartText.NativeMethods]
-public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.ITextCursor,Efl.ITextFont,Efl.ITextFormat,Efl.ITextMarkup,Efl.ITextMarkupInteractive,Efl.ITextStyle
+public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.IText, Efl.ITextCursor, Efl.ITextFont, Efl.ITextFormat, Efl.ITextMarkup, Efl.ITextMarkupInteractive, Efl.ITextStyle
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartText(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartText"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,33 +56,6 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sizing policy for text parts.
     /// This will determine whether to consider height or width constraints, if text-specific behaviors occur (such as ellipsis, line-wrapping etc.</summary>
     virtual public Efl.Canvas.LayoutPartTextExpand GetTextExpand() {
@@ -937,186 +910,186 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Sizing policy for text parts.
-/// This will determine whether to consider height or width constraints, if text-specific behaviors occur (such as ellipsis, line-wrapping etc.</summary>
+    /// This will determine whether to consider height or width constraints, if text-specific behaviors occur (such as ellipsis, line-wrapping etc.</summary>
     public Efl.Canvas.LayoutPartTextExpand TextExpand {
         get { return GetTextExpand(); }
         set { SetTextExpand(value); }
     }
     /// <summary>Get the font file&apos;s path which is being used on a given text object.
-/// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
-/// <value>The font file&apos;s path.</value>
+    /// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
+    /// <value>The font file&apos;s path.</value>
     public System.String FontSource {
         get { return GetFontSource(); }
         set { SetFontSource(value); }
     }
     /// <summary>Comma-separated list of font fallbacks
-/// Will be used in case the primary font isn&apos;t available.</summary>
-/// <value>Font name fallbacks</value>
+    /// Will be used in case the primary font isn&apos;t available.</summary>
+    /// <value>Font name fallbacks</value>
     public System.String FontFallbacks {
         get { return GetFontFallbacks(); }
         set { SetFontFallbacks(value); }
     }
     /// <summary>Type of weight of the displayed font
-/// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
-/// <value>Font weight</value>
+    /// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
+    /// <value>Font weight</value>
     public Efl.TextFontWeight FontWeight {
         get { return GetFontWeight(); }
         set { SetFontWeight(value); }
     }
     /// <summary>Type of slant of the displayed font
-/// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
-/// <value>Font slant</value>
+    /// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
+    /// <value>Font slant</value>
     public Efl.TextFontSlant FontSlant {
         get { return GetFontSlant(); }
         set { SetFontSlant(value); }
     }
     /// <summary>Type of width of the displayed font
-/// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
-/// <value>Font width</value>
+    /// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
+    /// <value>Font width</value>
     public Efl.TextFontWidth FontWidth {
         get { return GetFontWidth(); }
         set { SetFontWidth(value); }
     }
     /// <summary>Specific language of the displayed font
-/// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
-/// <value>Language</value>
+    /// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
+    /// <value>Language</value>
     public System.String FontLang {
         get { return GetFontLang(); }
         set { SetFontLang(value); }
     }
     /// <summary>The bitmap fonts have fixed size glyphs for several available sizes. Basically, it is not scalable. But, it needs to be scalable for some use cases. (ex. colorful emoji fonts)
-/// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
-/// <value>Scalable</value>
+    /// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
+    /// <value>Scalable</value>
     public Efl.TextFontBitmapScalable FontBitmapScalable {
         get { return GetFontBitmapScalable(); }
         set { SetFontBitmapScalable(value); }
     }
     /// <summary>Ellipsis value (number from -1.0 to 1.0)</summary>
-/// <value>Ellipsis value</value>
+    /// <value>Ellipsis value</value>
     public double Ellipsis {
         get { return GetEllipsis(); }
         set { SetEllipsis(value); }
     }
     /// <summary>Wrap mode for use in the text</summary>
-/// <value>Wrap mode</value>
+    /// <value>Wrap mode</value>
     public Efl.TextFormatWrap Wrap {
         get { return GetWrap(); }
         set { SetWrap(value); }
     }
     /// <summary>Multiline is enabled or not</summary>
-/// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
     public bool Multiline {
         get { return GetMultiline(); }
         set { SetMultiline(value); }
     }
     /// <summary>Horizontal alignment of text</summary>
-/// <value>Alignment type</value>
+    /// <value>Alignment type</value>
     public Efl.TextFormatHorizontalAlignmentAutoType HalignAutoType {
         get { return GetHalignAutoType(); }
         set { SetHalignAutoType(value); }
     }
     /// <summary>Horizontal alignment of text</summary>
-/// <value>Horizontal alignment value</value>
+    /// <value>Horizontal alignment value</value>
     public double Halign {
         get { return GetHalign(); }
         set { SetHalign(value); }
     }
     /// <summary>Vertical alignment of text</summary>
-/// <value>Vertical alignment value</value>
+    /// <value>Vertical alignment value</value>
     public double Valign {
         get { return GetValign(); }
         set { SetValign(value); }
     }
     /// <summary>Minimal line gap (top and bottom) for each line in the text
-/// <c>value</c> is absolute size.</summary>
-/// <value>Line gap value</value>
+    /// <c>value</c> is absolute size.</summary>
+    /// <value>Line gap value</value>
     public double Linegap {
         get { return GetLinegap(); }
         set { SetLinegap(value); }
     }
     /// <summary>Relative line gap (top and bottom) for each line in the text
-/// The original line gap value is multiplied by <c>value</c>.</summary>
-/// <value>Relative line gap value</value>
+    /// The original line gap value is multiplied by <c>value</c>.</summary>
+    /// <value>Relative line gap value</value>
     public double Linerelgap {
         get { return GetLinerelgap(); }
         set { SetLinerelgap(value); }
     }
     /// <summary>Tabstops value</summary>
-/// <value>Tapstops value</value>
+    /// <value>Tapstops value</value>
     public int Tabstops {
         get { return GetTabstops(); }
         set { SetTabstops(value); }
     }
     /// <summary>Whether text is a password</summary>
-/// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
     public bool Password {
         get { return GetPassword(); }
         set { SetPassword(value); }
     }
     /// <summary>The character used to replace characters that can&apos;t be displayed
-/// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
-/// <value>Replacement character</value>
+    /// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
+    /// <value>Replacement character</value>
     public System.String ReplacementChar {
         get { return GetReplacementChar(); }
         set { SetReplacementChar(value); }
     }
     /// <summary>Markup property</summary>
-/// <value>The markup-text representation set to this text.</value>
+    /// <value>The markup-text representation set to this text.</value>
     public System.String Markup {
         get { return GetMarkup(); }
         set { SetMarkup(value); }
     }
     /// <summary>Enable or disable backing type</summary>
-/// <value>Backing type</value>
+    /// <value>Backing type</value>
     public Efl.TextStyleBackingType BackingType {
         get { return GetBackingType(); }
         set { SetBackingType(value); }
     }
     /// <summary>Sets an underline style on the text</summary>
-/// <value>Underline type</value>
+    /// <value>Underline type</value>
     public Efl.TextStyleUnderlineType UnderlineType {
         get { return GetUnderlineType(); }
         set { SetUnderlineType(value); }
     }
     /// <summary>Height of underline style</summary>
-/// <value>Height</value>
+    /// <value>Height</value>
     public double UnderlineHeight {
         get { return GetUnderlineHeight(); }
         set { SetUnderlineHeight(value); }
     }
     /// <summary>Width of dashed underline style</summary>
-/// <value>Width</value>
+    /// <value>Width</value>
     public int UnderlineDashedWidth {
         get { return GetUnderlineDashedWidth(); }
         set { SetUnderlineDashedWidth(value); }
     }
     /// <summary>Gap of dashed underline style</summary>
-/// <value>Gap</value>
+    /// <value>Gap</value>
     public int UnderlineDashedGap {
         get { return GetUnderlineDashedGap(); }
         set { SetUnderlineDashedGap(value); }
     }
     /// <summary>Type of strikethrough style</summary>
-/// <value>Strikethrough type</value>
+    /// <value>Strikethrough type</value>
     public Efl.TextStyleStrikethroughType StrikethroughType {
         get { return GetStrikethroughType(); }
         set { SetStrikethroughType(value); }
     }
     /// <summary>Type of effect used for the displayed text</summary>
-/// <value>Effect type</value>
+    /// <value>Effect type</value>
     public Efl.TextStyleEffectType EffectType {
         get { return GetEffectType(); }
         set { SetEffectType(value); }
     }
     /// <summary>Direction of shadow effect</summary>
-/// <value>Shadow direction</value>
+    /// <value>Shadow direction</value>
     public Efl.TextStyleShadowDirection ShadowDirection {
         get { return GetShadowDirection(); }
         set { SetShadowDirection(value); }
     }
     /// <summary>Program that applies a special filter
-/// See <see cref="Efl.Gfx.IFilter"/>.</summary>
-/// <value>Filter code</value>
+    /// See <see cref="Efl.Gfx.IFilter"/>.</summary>
+    /// <value>Filter code</value>
     public System.String GfxFilter {
         get { return GetGfxFilter(); }
         set { SetGfxFilter(value); }
@@ -2287,7 +2260,7 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
             return Efl.Canvas.LayoutPartText.efl_canvas_layout_part_text_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Canvas.LayoutPartTextExpand efl_canvas_layout_part_text_expand_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -2300,13 +2273,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.Canvas.LayoutPartTextExpand text_expand_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_expand_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.LayoutPartTextExpand _ret_var = default(Efl.Canvas.LayoutPartTextExpand);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetTextExpand();
+                    _ret_var = ((LayoutPartText)ws.Target).GetTextExpand();
                 }
                 catch (Exception e)
                 {
@@ -2336,13 +2309,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void text_expand_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.LayoutPartTextExpand type)
         {
             Eina.Log.Debug("function efl_canvas_layout_part_text_expand_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetTextExpand(type);
+                    ((LayoutPartText)ws.Target).SetTextExpand(type);
                 }
                 catch (Exception e)
                 {
@@ -2371,13 +2344,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetText();
+                    _ret_var = ((LayoutPartText)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -2407,13 +2380,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetText(text);
+                    ((LayoutPartText)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -2442,13 +2415,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextCursorCursor text_cursor_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorGetType get_type)
         {
             Eina.Log.Debug("function efl_text_cursor_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.TextCursorCursor _ret_var = default(Efl.TextCursorCursor);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetTextCursor(get_type);
+                    _ret_var = ((LayoutPartText)ws.Target).GetTextCursor(get_type);
                 }
                 catch (Exception e)
                 {
@@ -2478,13 +2451,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static int cursor_position_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetCursorPosition(cur);
+                    _ret_var = ((LayoutPartText)ws.Target).GetCursorPosition(cur);
                 }
                 catch (Exception e)
                 {
@@ -2514,13 +2487,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_position_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int position)
         {
             Eina.Log.Debug("function efl_text_cursor_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetCursorPosition(cur, position);
+                    ((LayoutPartText)ws.Target).SetCursorPosition(cur, position);
                 }
                 catch (Exception e)
                 {
@@ -2549,13 +2522,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Eina.Unicode cursor_content_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Unicode _ret_var = default(Eina.Unicode);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetCursorContent(cur);
+                    _ret_var = ((LayoutPartText)ws.Target).GetCursorContent(cur);
                 }
                 catch (Exception e)
                 {
@@ -2585,13 +2558,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static bool cursor_geometry_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, Efl.TextCursorType ctype, out int cx, out int cy, out int cw, out int ch, out int cx2, out int cy2, out int cw2, out int ch2)
         {
             Eina.Log.Debug("function efl_text_cursor_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                         cx = default(int);        cy = default(int);        cw = default(int);        ch = default(int);        cx2 = default(int);        cy2 = default(int);        cw2 = default(int);        ch2 = default(int);                                                                                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetCursorGeometry(cur, ctype, out cx, out cy, out cw, out ch, out cx2, out cy2, out cw2, out ch2);
+                    _ret_var = ((LayoutPartText)ws.Target).GetCursorGeometry(cur, ctype, out cx, out cy, out cw, out ch, out cx2, out cy2, out cw2, out ch2);
                 }
                 catch (Exception e)
                 {
@@ -2621,13 +2594,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextCursorCursor cursor_new(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_cursor_new was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextCursorCursor _ret_var = default(Efl.TextCursorCursor);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).NewCursor();
+                    _ret_var = ((LayoutPartText)ws.Target).NewCursor();
                 }
                 catch (Exception e)
                 {
@@ -2657,13 +2630,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_free(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_free was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorFree(cur);
+                    ((LayoutPartText)ws.Target).CursorFree(cur);
                 }
                 catch (Exception e)
                 {
@@ -2692,13 +2665,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static bool cursor_equal(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
         {
             Eina.Log.Debug("function efl_text_cursor_equal was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).CursorEqual(cur1, cur2);
+                    _ret_var = ((LayoutPartText)ws.Target).CursorEqual(cur1, cur2);
                 }
                 catch (Exception e)
                 {
@@ -2728,13 +2701,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static int cursor_compare(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
         {
             Eina.Log.Debug("function efl_text_cursor_compare was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).CursorCompare(cur1, cur2);
+                    _ret_var = ((LayoutPartText)ws.Target).CursorCompare(cur1, cur2);
                 }
                 catch (Exception e)
                 {
@@ -2764,13 +2737,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_copy(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor dst, Efl.TextCursorCursor src)
         {
             Eina.Log.Debug("function efl_text_cursor_copy was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorCopy(dst, src);
+                    ((LayoutPartText)ws.Target).CursorCopy(dst, src);
                 }
                 catch (Exception e)
                 {
@@ -2799,13 +2772,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_char_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_char_next was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorCharNext(cur);
+                    ((LayoutPartText)ws.Target).CursorCharNext(cur);
                 }
                 catch (Exception e)
                 {
@@ -2834,13 +2807,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_char_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_char_prev was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorCharPrev(cur);
+                    ((LayoutPartText)ws.Target).CursorCharPrev(cur);
                 }
                 catch (Exception e)
                 {
@@ -2869,13 +2842,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_cluster_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_cluster_next was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorClusterNext(cur);
+                    ((LayoutPartText)ws.Target).CursorClusterNext(cur);
                 }
                 catch (Exception e)
                 {
@@ -2904,13 +2877,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_cluster_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_cluster_prev was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorClusterPrev(cur);
+                    ((LayoutPartText)ws.Target).CursorClusterPrev(cur);
                 }
                 catch (Exception e)
                 {
@@ -2939,13 +2912,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_paragraph_char_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_char_first was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorParagraphCharFirst(cur);
+                    ((LayoutPartText)ws.Target).CursorParagraphCharFirst(cur);
                 }
                 catch (Exception e)
                 {
@@ -2974,13 +2947,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_paragraph_char_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_char_last was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorParagraphCharLast(cur);
+                    ((LayoutPartText)ws.Target).CursorParagraphCharLast(cur);
                 }
                 catch (Exception e)
                 {
@@ -3009,13 +2982,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_word_start(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_word_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorWordStart(cur);
+                    ((LayoutPartText)ws.Target).CursorWordStart(cur);
                 }
                 catch (Exception e)
                 {
@@ -3044,13 +3017,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_word_end(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_word_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorWordEnd(cur);
+                    ((LayoutPartText)ws.Target).CursorWordEnd(cur);
                 }
                 catch (Exception e)
                 {
@@ -3079,13 +3052,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_line_char_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_line_char_first was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorLineCharFirst(cur);
+                    ((LayoutPartText)ws.Target).CursorLineCharFirst(cur);
                 }
                 catch (Exception e)
                 {
@@ -3114,13 +3087,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_line_char_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_line_char_last was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorLineCharLast(cur);
+                    ((LayoutPartText)ws.Target).CursorLineCharLast(cur);
                 }
                 catch (Exception e)
                 {
@@ -3149,13 +3122,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_paragraph_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_first was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorParagraphFirst(cur);
+                    ((LayoutPartText)ws.Target).CursorParagraphFirst(cur);
                 }
                 catch (Exception e)
                 {
@@ -3184,13 +3157,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_paragraph_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_last was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorParagraphLast(cur);
+                    ((LayoutPartText)ws.Target).CursorParagraphLast(cur);
                 }
                 catch (Exception e)
                 {
@@ -3219,13 +3192,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_paragraph_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_next was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorParagraphNext(cur);
+                    ((LayoutPartText)ws.Target).CursorParagraphNext(cur);
                 }
                 catch (Exception e)
                 {
@@ -3254,13 +3227,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_paragraph_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_prev was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorParagraphPrev(cur);
+                    ((LayoutPartText)ws.Target).CursorParagraphPrev(cur);
                 }
                 catch (Exception e)
                 {
@@ -3289,13 +3262,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_line_jump_by(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int by)
         {
             Eina.Log.Debug("function efl_text_cursor_line_jump_by was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorLineJumpBy(cur, by);
+                    ((LayoutPartText)ws.Target).CursorLineJumpBy(cur, by);
                 }
                 catch (Exception e)
                 {
@@ -3324,13 +3297,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_coord_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int x, int y)
         {
             Eina.Log.Debug("function efl_text_cursor_coord_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetCursorCoord(cur, x, y);
+                    ((LayoutPartText)ws.Target).SetCursorCoord(cur, x, y);
                 }
                 catch (Exception e)
                 {
@@ -3359,13 +3332,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_cluster_coord_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int x, int y)
         {
             Eina.Log.Debug("function efl_text_cursor_cluster_coord_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetCursorClusterCoord(cur, x, y);
+                    ((LayoutPartText)ws.Target).SetCursorClusterCoord(cur, x, y);
                 }
                 catch (Exception e)
                 {
@@ -3394,13 +3367,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static int cursor_text_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, System.String text)
         {
             Eina.Log.Debug("function efl_text_cursor_text_insert was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).CursorTextInsert(cur, text);
+                    _ret_var = ((LayoutPartText)ws.Target).CursorTextInsert(cur, text);
                 }
                 catch (Exception e)
                 {
@@ -3430,13 +3403,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_char_delete(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_char_delete was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorCharDelete(cur);
+                    ((LayoutPartText)ws.Target).CursorCharDelete(cur);
                 }
                 catch (Exception e)
                 {
@@ -3465,14 +3438,14 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void font_get(System.IntPtr obj, System.IntPtr pd, out System.String font, out Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_text_font_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         System.String _out_font = default(System.String);
         size = default(Efl.Font.Size);                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetFont(out _out_font, out size);
+                    ((LayoutPartText)ws.Target).GetFont(out _out_font, out size);
                 }
                 catch (Exception e)
                 {
@@ -3502,13 +3475,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void font_set(System.IntPtr obj, System.IntPtr pd, System.String font, Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_text_font_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetFont(font, size);
+                    ((LayoutPartText)ws.Target).SetFont(font, size);
                 }
                 catch (Exception e)
                 {
@@ -3537,13 +3510,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static System.String font_source_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetFontSource();
+                    _ret_var = ((LayoutPartText)ws.Target).GetFontSource();
                 }
                 catch (Exception e)
                 {
@@ -3573,13 +3546,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void font_source_set(System.IntPtr obj, System.IntPtr pd, System.String font_source)
         {
             Eina.Log.Debug("function efl_text_font_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetFontSource(font_source);
+                    ((LayoutPartText)ws.Target).SetFontSource(font_source);
                 }
                 catch (Exception e)
                 {
@@ -3608,13 +3581,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static System.String font_fallbacks_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_fallbacks_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetFontFallbacks();
+                    _ret_var = ((LayoutPartText)ws.Target).GetFontFallbacks();
                 }
                 catch (Exception e)
                 {
@@ -3644,13 +3617,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void font_fallbacks_set(System.IntPtr obj, System.IntPtr pd, System.String font_fallbacks)
         {
             Eina.Log.Debug("function efl_text_font_fallbacks_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetFontFallbacks(font_fallbacks);
+                    ((LayoutPartText)ws.Target).SetFontFallbacks(font_fallbacks);
                 }
                 catch (Exception e)
                 {
@@ -3679,13 +3652,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextFontWeight font_weight_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_weight_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontWeight _ret_var = default(Efl.TextFontWeight);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetFontWeight();
+                    _ret_var = ((LayoutPartText)ws.Target).GetFontWeight();
                 }
                 catch (Exception e)
                 {
@@ -3715,13 +3688,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void font_weight_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontWeight font_weight)
         {
             Eina.Log.Debug("function efl_text_font_weight_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetFontWeight(font_weight);
+                    ((LayoutPartText)ws.Target).SetFontWeight(font_weight);
                 }
                 catch (Exception e)
                 {
@@ -3750,13 +3723,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextFontSlant font_slant_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_slant_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontSlant _ret_var = default(Efl.TextFontSlant);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetFontSlant();
+                    _ret_var = ((LayoutPartText)ws.Target).GetFontSlant();
                 }
                 catch (Exception e)
                 {
@@ -3786,13 +3759,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void font_slant_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontSlant style)
         {
             Eina.Log.Debug("function efl_text_font_slant_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetFontSlant(style);
+                    ((LayoutPartText)ws.Target).SetFontSlant(style);
                 }
                 catch (Exception e)
                 {
@@ -3821,13 +3794,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextFontWidth font_width_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_width_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontWidth _ret_var = default(Efl.TextFontWidth);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetFontWidth();
+                    _ret_var = ((LayoutPartText)ws.Target).GetFontWidth();
                 }
                 catch (Exception e)
                 {
@@ -3857,13 +3830,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void font_width_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontWidth width)
         {
             Eina.Log.Debug("function efl_text_font_width_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetFontWidth(width);
+                    ((LayoutPartText)ws.Target).SetFontWidth(width);
                 }
                 catch (Exception e)
                 {
@@ -3892,13 +3865,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static System.String font_lang_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_lang_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetFontLang();
+                    _ret_var = ((LayoutPartText)ws.Target).GetFontLang();
                 }
                 catch (Exception e)
                 {
@@ -3928,13 +3901,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void font_lang_set(System.IntPtr obj, System.IntPtr pd, System.String lang)
         {
             Eina.Log.Debug("function efl_text_font_lang_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetFontLang(lang);
+                    ((LayoutPartText)ws.Target).SetFontLang(lang);
                 }
                 catch (Exception e)
                 {
@@ -3963,13 +3936,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextFontBitmapScalable font_bitmap_scalable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_bitmap_scalable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontBitmapScalable _ret_var = default(Efl.TextFontBitmapScalable);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetFontBitmapScalable();
+                    _ret_var = ((LayoutPartText)ws.Target).GetFontBitmapScalable();
                 }
                 catch (Exception e)
                 {
@@ -3999,13 +3972,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void font_bitmap_scalable_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontBitmapScalable scalable)
         {
             Eina.Log.Debug("function efl_text_font_bitmap_scalable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetFontBitmapScalable(scalable);
+                    ((LayoutPartText)ws.Target).SetFontBitmapScalable(scalable);
                 }
                 catch (Exception e)
                 {
@@ -4034,13 +4007,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static double ellipsis_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_ellipsis_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetEllipsis();
+                    _ret_var = ((LayoutPartText)ws.Target).GetEllipsis();
                 }
                 catch (Exception e)
                 {
@@ -4070,13 +4043,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void ellipsis_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_ellipsis_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetEllipsis(value);
+                    ((LayoutPartText)ws.Target).SetEllipsis(value);
                 }
                 catch (Exception e)
                 {
@@ -4105,13 +4078,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextFormatWrap wrap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_wrap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFormatWrap _ret_var = default(Efl.TextFormatWrap);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetWrap();
+                    _ret_var = ((LayoutPartText)ws.Target).GetWrap();
                 }
                 catch (Exception e)
                 {
@@ -4141,13 +4114,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void wrap_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFormatWrap wrap)
         {
             Eina.Log.Debug("function efl_text_wrap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetWrap(wrap);
+                    ((LayoutPartText)ws.Target).SetWrap(wrap);
                 }
                 catch (Exception e)
                 {
@@ -4176,13 +4149,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static bool multiline_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_multiline_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetMultiline();
+                    _ret_var = ((LayoutPartText)ws.Target).GetMultiline();
                 }
                 catch (Exception e)
                 {
@@ -4212,13 +4185,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void multiline_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_text_multiline_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetMultiline(enabled);
+                    ((LayoutPartText)ws.Target).SetMultiline(enabled);
                 }
                 catch (Exception e)
                 {
@@ -4247,13 +4220,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextFormatHorizontalAlignmentAutoType halign_auto_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_halign_auto_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFormatHorizontalAlignmentAutoType _ret_var = default(Efl.TextFormatHorizontalAlignmentAutoType);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetHalignAutoType();
+                    _ret_var = ((LayoutPartText)ws.Target).GetHalignAutoType();
                 }
                 catch (Exception e)
                 {
@@ -4283,13 +4256,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void halign_auto_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFormatHorizontalAlignmentAutoType value)
         {
             Eina.Log.Debug("function efl_text_halign_auto_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetHalignAutoType(value);
+                    ((LayoutPartText)ws.Target).SetHalignAutoType(value);
                 }
                 catch (Exception e)
                 {
@@ -4318,13 +4291,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static double halign_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_halign_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetHalign();
+                    _ret_var = ((LayoutPartText)ws.Target).GetHalign();
                 }
                 catch (Exception e)
                 {
@@ -4354,13 +4327,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void halign_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_halign_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetHalign(value);
+                    ((LayoutPartText)ws.Target).SetHalign(value);
                 }
                 catch (Exception e)
                 {
@@ -4389,13 +4362,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static double valign_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_valign_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetValign();
+                    _ret_var = ((LayoutPartText)ws.Target).GetValign();
                 }
                 catch (Exception e)
                 {
@@ -4425,13 +4398,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void valign_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_valign_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetValign(value);
+                    ((LayoutPartText)ws.Target).SetValign(value);
                 }
                 catch (Exception e)
                 {
@@ -4460,13 +4433,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static double linegap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_linegap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetLinegap();
+                    _ret_var = ((LayoutPartText)ws.Target).GetLinegap();
                 }
                 catch (Exception e)
                 {
@@ -4496,13 +4469,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void linegap_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_linegap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetLinegap(value);
+                    ((LayoutPartText)ws.Target).SetLinegap(value);
                 }
                 catch (Exception e)
                 {
@@ -4531,13 +4504,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static double linerelgap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_linerelgap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetLinerelgap();
+                    _ret_var = ((LayoutPartText)ws.Target).GetLinerelgap();
                 }
                 catch (Exception e)
                 {
@@ -4567,13 +4540,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void linerelgap_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_linerelgap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetLinerelgap(value);
+                    ((LayoutPartText)ws.Target).SetLinerelgap(value);
                 }
                 catch (Exception e)
                 {
@@ -4602,13 +4575,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static int tabstops_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_tabstops_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetTabstops();
+                    _ret_var = ((LayoutPartText)ws.Target).GetTabstops();
                 }
                 catch (Exception e)
                 {
@@ -4638,13 +4611,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void tabstops_set(System.IntPtr obj, System.IntPtr pd, int value)
         {
             Eina.Log.Debug("function efl_text_tabstops_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetTabstops(value);
+                    ((LayoutPartText)ws.Target).SetTabstops(value);
                 }
                 catch (Exception e)
                 {
@@ -4673,13 +4646,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static bool password_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_password_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetPassword();
+                    _ret_var = ((LayoutPartText)ws.Target).GetPassword();
                 }
                 catch (Exception e)
                 {
@@ -4709,13 +4682,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void password_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_text_password_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetPassword(enabled);
+                    ((LayoutPartText)ws.Target).SetPassword(enabled);
                 }
                 catch (Exception e)
                 {
@@ -4744,13 +4717,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static System.String replacement_char_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_replacement_char_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetReplacementChar();
+                    _ret_var = ((LayoutPartText)ws.Target).GetReplacementChar();
                 }
                 catch (Exception e)
                 {
@@ -4780,13 +4753,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void replacement_char_set(System.IntPtr obj, System.IntPtr pd, System.String repch)
         {
             Eina.Log.Debug("function efl_text_replacement_char_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetReplacementChar(repch);
+                    ((LayoutPartText)ws.Target).SetReplacementChar(repch);
                 }
                 catch (Exception e)
                 {
@@ -4815,13 +4788,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_markup_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetMarkup();
+                    _ret_var = ((LayoutPartText)ws.Target).GetMarkup();
                 }
                 catch (Exception e)
                 {
@@ -4851,13 +4824,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetMarkup(markup);
+                    ((LayoutPartText)ws.Target).SetMarkup(markup);
                 }
                 catch (Exception e)
                 {
@@ -4886,13 +4859,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static System.String markup_range_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end)
         {
             Eina.Log.Debug("function efl_text_markup_interactive_markup_range_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetMarkupRange(start, end);
+                    _ret_var = ((LayoutPartText)ws.Target).GetMarkupRange(start, end);
                 }
                 catch (Exception e)
                 {
@@ -4922,13 +4895,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void markup_range_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_interactive_markup_range_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetMarkupRange(start, end, markup);
+                    ((LayoutPartText)ws.Target).SetMarkupRange(start, end, markup);
                 }
                 catch (Exception e)
                 {
@@ -4957,13 +4930,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void cursor_markup_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_interactive_cursor_markup_insert was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).CursorMarkupInsert(cur, markup);
+                    ((LayoutPartText)ws.Target).CursorMarkupInsert(cur, markup);
                 }
                 catch (Exception e)
                 {
@@ -4992,13 +4965,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void normal_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_normal_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetNormalColor(out r, out g, out b, out a);
+                    ((LayoutPartText)ws.Target).GetNormalColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -5027,13 +5000,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void normal_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_normal_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetNormalColor(r, g, b, a);
+                    ((LayoutPartText)ws.Target).SetNormalColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -5062,13 +5035,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextStyleBackingType backing_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_backing_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleBackingType _ret_var = default(Efl.TextStyleBackingType);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetBackingType();
+                    _ret_var = ((LayoutPartText)ws.Target).GetBackingType();
                 }
                 catch (Exception e)
                 {
@@ -5098,13 +5071,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void backing_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleBackingType type)
         {
             Eina.Log.Debug("function efl_text_backing_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetBackingType(type);
+                    ((LayoutPartText)ws.Target).SetBackingType(type);
                 }
                 catch (Exception e)
                 {
@@ -5133,13 +5106,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void backing_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_backing_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetBackingColor(out r, out g, out b, out a);
+                    ((LayoutPartText)ws.Target).GetBackingColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -5168,13 +5141,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void backing_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_backing_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetBackingColor(r, g, b, a);
+                    ((LayoutPartText)ws.Target).SetBackingColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -5203,13 +5176,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextStyleUnderlineType underline_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleUnderlineType _ret_var = default(Efl.TextStyleUnderlineType);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetUnderlineType();
+                    _ret_var = ((LayoutPartText)ws.Target).GetUnderlineType();
                 }
                 catch (Exception e)
                 {
@@ -5239,13 +5212,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void underline_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleUnderlineType type)
         {
             Eina.Log.Debug("function efl_text_underline_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetUnderlineType(type);
+                    ((LayoutPartText)ws.Target).SetUnderlineType(type);
                 }
                 catch (Exception e)
                 {
@@ -5274,13 +5247,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void underline_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetUnderlineColor(out r, out g, out b, out a);
+                    ((LayoutPartText)ws.Target).GetUnderlineColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -5309,13 +5282,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void underline_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetUnderlineColor(r, g, b, a);
+                    ((LayoutPartText)ws.Target).SetUnderlineColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -5344,13 +5317,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static double underline_height_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_height_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetUnderlineHeight();
+                    _ret_var = ((LayoutPartText)ws.Target).GetUnderlineHeight();
                 }
                 catch (Exception e)
                 {
@@ -5380,13 +5353,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void underline_height_set(System.IntPtr obj, System.IntPtr pd, double height)
         {
             Eina.Log.Debug("function efl_text_underline_height_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetUnderlineHeight(height);
+                    ((LayoutPartText)ws.Target).SetUnderlineHeight(height);
                 }
                 catch (Exception e)
                 {
@@ -5415,13 +5388,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void underline_dashed_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetUnderlineDashedColor(out r, out g, out b, out a);
+                    ((LayoutPartText)ws.Target).GetUnderlineDashedColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -5450,13 +5423,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void underline_dashed_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetUnderlineDashedColor(r, g, b, a);
+                    ((LayoutPartText)ws.Target).SetUnderlineDashedColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -5485,13 +5458,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static int underline_dashed_width_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_width_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetUnderlineDashedWidth();
+                    _ret_var = ((LayoutPartText)ws.Target).GetUnderlineDashedWidth();
                 }
                 catch (Exception e)
                 {
@@ -5521,13 +5494,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void underline_dashed_width_set(System.IntPtr obj, System.IntPtr pd, int width)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_width_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetUnderlineDashedWidth(width);
+                    ((LayoutPartText)ws.Target).SetUnderlineDashedWidth(width);
                 }
                 catch (Exception e)
                 {
@@ -5556,13 +5529,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static int underline_dashed_gap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_gap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetUnderlineDashedGap();
+                    _ret_var = ((LayoutPartText)ws.Target).GetUnderlineDashedGap();
                 }
                 catch (Exception e)
                 {
@@ -5592,13 +5565,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void underline_dashed_gap_set(System.IntPtr obj, System.IntPtr pd, int gap)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_gap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetUnderlineDashedGap(gap);
+                    ((LayoutPartText)ws.Target).SetUnderlineDashedGap(gap);
                 }
                 catch (Exception e)
                 {
@@ -5627,13 +5600,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void underline2_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline2_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetUnderline2Color(out r, out g, out b, out a);
+                    ((LayoutPartText)ws.Target).GetUnderline2Color(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -5662,13 +5635,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void underline2_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline2_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetUnderline2Color(r, g, b, a);
+                    ((LayoutPartText)ws.Target).SetUnderline2Color(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -5697,13 +5670,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextStyleStrikethroughType strikethrough_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_strikethrough_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleStrikethroughType _ret_var = default(Efl.TextStyleStrikethroughType);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetStrikethroughType();
+                    _ret_var = ((LayoutPartText)ws.Target).GetStrikethroughType();
                 }
                 catch (Exception e)
                 {
@@ -5733,13 +5706,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void strikethrough_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleStrikethroughType type)
         {
             Eina.Log.Debug("function efl_text_strikethrough_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetStrikethroughType(type);
+                    ((LayoutPartText)ws.Target).SetStrikethroughType(type);
                 }
                 catch (Exception e)
                 {
@@ -5768,13 +5741,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void strikethrough_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_strikethrough_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetStrikethroughColor(out r, out g, out b, out a);
+                    ((LayoutPartText)ws.Target).GetStrikethroughColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -5803,13 +5776,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void strikethrough_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_strikethrough_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetStrikethroughColor(r, g, b, a);
+                    ((LayoutPartText)ws.Target).SetStrikethroughColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -5838,13 +5811,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextStyleEffectType effect_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_effect_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleEffectType _ret_var = default(Efl.TextStyleEffectType);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetEffectType();
+                    _ret_var = ((LayoutPartText)ws.Target).GetEffectType();
                 }
                 catch (Exception e)
                 {
@@ -5874,13 +5847,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void effect_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleEffectType type)
         {
             Eina.Log.Debug("function efl_text_effect_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetEffectType(type);
+                    ((LayoutPartText)ws.Target).SetEffectType(type);
                 }
                 catch (Exception e)
                 {
@@ -5909,13 +5882,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void outline_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_outline_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetOutlineColor(out r, out g, out b, out a);
+                    ((LayoutPartText)ws.Target).GetOutlineColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -5944,13 +5917,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void outline_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_outline_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetOutlineColor(r, g, b, a);
+                    ((LayoutPartText)ws.Target).SetOutlineColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -5979,13 +5952,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static Efl.TextStyleShadowDirection shadow_direction_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_shadow_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleShadowDirection _ret_var = default(Efl.TextStyleShadowDirection);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetShadowDirection();
+                    _ret_var = ((LayoutPartText)ws.Target).GetShadowDirection();
                 }
                 catch (Exception e)
                 {
@@ -6015,13 +5988,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void shadow_direction_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleShadowDirection type)
         {
             Eina.Log.Debug("function efl_text_shadow_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetShadowDirection(type);
+                    ((LayoutPartText)ws.Target).SetShadowDirection(type);
                 }
                 catch (Exception e)
                 {
@@ -6050,13 +6023,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void shadow_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_shadow_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetShadowColor(out r, out g, out b, out a);
+                    ((LayoutPartText)ws.Target).GetShadowColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -6085,13 +6058,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void shadow_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_shadow_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetShadowColor(r, g, b, a);
+                    ((LayoutPartText)ws.Target).SetShadowColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -6120,13 +6093,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void glow_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_glow_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetGlowColor(out r, out g, out b, out a);
+                    ((LayoutPartText)ws.Target).GetGlowColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -6155,13 +6128,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void glow_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_glow_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetGlowColor(r, g, b, a);
+                    ((LayoutPartText)ws.Target).SetGlowColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -6190,13 +6163,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void glow2_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_glow2_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((LayoutPartText)wrapper).GetGlow2Color(out r, out g, out b, out a);
+                    ((LayoutPartText)ws.Target).GetGlow2Color(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -6225,13 +6198,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void glow2_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_glow2_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetGlow2Color(r, g, b, a);
+                    ((LayoutPartText)ws.Target).SetGlow2Color(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -6260,13 +6233,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static System.String gfx_filter_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_gfx_filter_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetGfxFilter();
+                    _ret_var = ((LayoutPartText)ws.Target).GetGfxFilter();
                 }
                 catch (Exception e)
                 {
@@ -6296,13 +6269,13 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
         private static void gfx_filter_set(System.IntPtr obj, System.IntPtr pd, System.String code)
         {
             Eina.Log.Debug("function efl_text_gfx_filter_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetGfxFilter(code);
+                    ((LayoutPartText)ws.Target).SetGfxFilter(code);
                 }
                 catch (Exception e)
                 {
@@ -6320,7 +6293,7 @@ public class LayoutPartText : Efl.Canvas.LayoutPart, Efl.Eo.IWrapper,Efl.IText,E
 
         private static efl_text_gfx_filter_set_delegate efl_text_gfx_filter_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 89b12f9..483aed5 100644 (file)
@@ -17,7 +17,7 @@ public class ObjectAnimatorTickEvt_Args : EventArgs {
 /// <summary>Efl canvas object abstract class
 /// (Since EFL 1.22)</summary>
 [Efl.Canvas.Object.NativeMethods]
-public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPointer,Efl.Gfx.IColor,Efl.Gfx.IEntity,Efl.Gfx.IHint,Efl.Gfx.IMapping,Efl.Gfx.IStack,Efl.Input.IInterface,Efl.Ui.II18n
+public abstract class Object : Efl.LoopConsumer, Efl.Canvas.IPointer, Efl.Gesture.IEvents, Efl.Gfx.IColor, Efl.Gfx.IEntity, Efl.Gfx.IHint, Efl.Gfx.IMapping, Efl.Gfx.IStack, Efl.Input.IInterface, Efl.Ui.II18n
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Object(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class ObjectRealized : Object
@@ -68,33 +68,6 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Animator tick synchronized with screen vsync if possible.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.Canvas.ObjectAnimatorTickEvt_Args> AnimatorTickEvt
@@ -103,13 +76,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ObjectAnimatorTickEvt_Args args = new Efl.Canvas.ObjectAnimatorTickEvt_Args();
+                        Efl.Canvas.ObjectAnimatorTickEvt_Args args = new Efl.Canvas.ObjectAnimatorTickEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -159,6 +131,384 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
             Marshal.FreeHGlobal(info);
         }
     }
+    /// <summary>Event for tap gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureTapEvt_Args> GestureTapEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureTapEvt_Args args = new Efl.Gesture.IEventsGestureTapEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureTap);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_TAP";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_TAP";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureTapEvt.</summary>
+    public void OnGestureTapEvt(Efl.Gesture.IEventsGestureTapEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_TAP";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for double tap gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureDoubleTapEvt_Args> GestureDoubleTapEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureDoubleTapEvt_Args args = new Efl.Gesture.IEventsGestureDoubleTapEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureDoubleTap);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_DOUBLE_TAP";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_DOUBLE_TAP";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureDoubleTapEvt.</summary>
+    public void OnGestureDoubleTapEvt(Efl.Gesture.IEventsGestureDoubleTapEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_DOUBLE_TAP";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for triple tap gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureTripleTapEvt_Args> GestureTripleTapEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureTripleTapEvt_Args args = new Efl.Gesture.IEventsGestureTripleTapEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureTripleTap);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_TRIPLE_TAP";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_TRIPLE_TAP";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureTripleTapEvt.</summary>
+    public void OnGestureTripleTapEvt(Efl.Gesture.IEventsGestureTripleTapEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_TRIPLE_TAP";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for long tap gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureLongTapEvt_Args> GestureLongTapEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureLongTapEvt_Args args = new Efl.Gesture.IEventsGestureLongTapEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureLongTap);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_LONG_TAP";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_LONG_TAP";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureLongTapEvt.</summary>
+    public void OnGestureLongTapEvt(Efl.Gesture.IEventsGestureLongTapEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_LONG_TAP";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for momentum gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureMomentumEvt_Args> GestureMomentumEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureMomentumEvt_Args args = new Efl.Gesture.IEventsGestureMomentumEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureMomentum);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_MOMENTUM";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_MOMENTUM";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureMomentumEvt.</summary>
+    public void OnGestureMomentumEvt(Efl.Gesture.IEventsGestureMomentumEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_MOMENTUM";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for flick gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureFlickEvt_Args> GestureFlickEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureFlickEvt_Args args = new Efl.Gesture.IEventsGestureFlickEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureFlick);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_FLICK";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_FLICK";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureFlickEvt.</summary>
+    public void OnGestureFlickEvt(Efl.Gesture.IEventsGestureFlickEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_FLICK";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for zoom gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureZoomEvt_Args> GestureZoomEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureZoomEvt_Args args = new Efl.Gesture.IEventsGestureZoomEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureZoom);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_ZOOM";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_ZOOM";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureZoomEvt.</summary>
+    public void OnGestureZoomEvt(Efl.Gesture.IEventsGestureZoomEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_ZOOM";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
     /// <summary>Object&apos;s visibility state changed, the event value is the new state.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.Gfx.IEntityVisibilityChangedEvt_Args> VisibilityChangedEvt
@@ -167,14 +517,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -230,13 +579,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
+                        Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -294,13 +642,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
+                        Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -358,10 +705,9 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -412,10 +758,9 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -465,13 +810,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerMoveEvt_Args args = new Efl.Input.IInterfacePointerMoveEvt_Args();
+                        Efl.Input.IInterfacePointerMoveEvt_Args args = new Efl.Input.IInterfacePointerMoveEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -520,13 +864,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerDownEvt_Args args = new Efl.Input.IInterfacePointerDownEvt_Args();
+                        Efl.Input.IInterfacePointerDownEvt_Args args = new Efl.Input.IInterfacePointerDownEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -575,13 +918,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerUpEvt_Args args = new Efl.Input.IInterfacePointerUpEvt_Args();
+                        Efl.Input.IInterfacePointerUpEvt_Args args = new Efl.Input.IInterfacePointerUpEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -630,13 +972,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerCancelEvt_Args args = new Efl.Input.IInterfacePointerCancelEvt_Args();
+                        Efl.Input.IInterfacePointerCancelEvt_Args args = new Efl.Input.IInterfacePointerCancelEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -685,13 +1026,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerInEvt_Args args = new Efl.Input.IInterfacePointerInEvt_Args();
+                        Efl.Input.IInterfacePointerInEvt_Args args = new Efl.Input.IInterfacePointerInEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -740,13 +1080,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerOutEvt_Args args = new Efl.Input.IInterfacePointerOutEvt_Args();
+                        Efl.Input.IInterfacePointerOutEvt_Args args = new Efl.Input.IInterfacePointerOutEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -795,13 +1134,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerWheelEvt_Args args = new Efl.Input.IInterfacePointerWheelEvt_Args();
+                        Efl.Input.IInterfacePointerWheelEvt_Args args = new Efl.Input.IInterfacePointerWheelEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -850,13 +1188,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerAxisEvt_Args args = new Efl.Input.IInterfacePointerAxisEvt_Args();
+                        Efl.Input.IInterfacePointerAxisEvt_Args args = new Efl.Input.IInterfacePointerAxisEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -905,13 +1242,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceFingerMoveEvt_Args args = new Efl.Input.IInterfaceFingerMoveEvt_Args();
+                        Efl.Input.IInterfaceFingerMoveEvt_Args args = new Efl.Input.IInterfaceFingerMoveEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -960,13 +1296,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceFingerDownEvt_Args args = new Efl.Input.IInterfaceFingerDownEvt_Args();
+                        Efl.Input.IInterfaceFingerDownEvt_Args args = new Efl.Input.IInterfaceFingerDownEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -1015,13 +1350,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceFingerUpEvt_Args args = new Efl.Input.IInterfaceFingerUpEvt_Args();
+                        Efl.Input.IInterfaceFingerUpEvt_Args args = new Efl.Input.IInterfaceFingerUpEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -1070,13 +1404,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceKeyDownEvt_Args args = new Efl.Input.IInterfaceKeyDownEvt_Args();
+                        Efl.Input.IInterfaceKeyDownEvt_Args args = new Efl.Input.IInterfaceKeyDownEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Key);
                         try
                         {
@@ -1125,13 +1458,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceKeyUpEvt_Args args = new Efl.Input.IInterfaceKeyUpEvt_Args();
+                        Efl.Input.IInterfaceKeyUpEvt_Args args = new Efl.Input.IInterfaceKeyUpEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Key);
                         try
                         {
@@ -1180,13 +1512,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceHoldEvt_Args args = new Efl.Input.IInterfaceHoldEvt_Args();
+                        Efl.Input.IInterfaceHoldEvt_Args args = new Efl.Input.IInterfaceHoldEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Hold);
                         try
                         {
@@ -1235,13 +1566,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceFocusInEvt_Args args = new Efl.Input.IInterfaceFocusInEvt_Args();
+                        Efl.Input.IInterfaceFocusInEvt_Args args = new Efl.Input.IInterfaceFocusInEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -1290,13 +1620,12 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceFocusOutEvt_Args args = new Efl.Input.IInterfaceFocusOutEvt_Args();
+                        Efl.Input.IInterfaceFocusOutEvt_Args args = new Efl.Input.IInterfaceFocusOutEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -1696,6 +2025,14 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
                                                                                  Efl.Canvas.Object.NativeMethods.efl_canvas_object_key_ungrab_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),keyname, modifiers, not_modifiers);
         Eina.Error.RaiseIfUnhandledException();
                                                          }
+    /// <summary>Returns current canvas&apos;s gesture manager
+    /// (Since EFL 1.22)</summary>
+    /// <returns>The gesture manager</returns>
+    virtual public Efl.Canvas.GestureManager GetGestureManager() {
+         var _ret_var = Efl.Canvas.Object.NativeMethods.efl_canvas_object_gesture_manager_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
     /// <summary>Returns whether the mouse pointer is logically inside the canvas.
     /// When this function is called it will return a value of either <c>false</c> or <c>true</c>, depending on whether a pointer,in or pointer,out event has been called previously.
     /// 
@@ -2564,290 +2901,290 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Low-level pointer behaviour.
-/// This function has a direct effect on event callbacks related to pointers (mouse, ...).
-/// 
-/// If the value is <see cref="Efl.Input.ObjectPointerMode.AutoGrab"/> (default), then when mouse is pressed down over this object, events will be restricted to it as source, mouse moves, for example, will be emitted even when the pointer goes outside this objects geometry.
-/// 
-/// If the value is <see cref="Efl.Input.ObjectPointerMode.NoGrab"/>, then events will be emitted just when inside this object area.
-/// 
-/// The default value is <see cref="Efl.Input.ObjectPointerMode.AutoGrab"/>. See also: <see cref="Efl.Canvas.Object.GetPointerModeByDevice"/> and <see cref="Efl.Canvas.Object.GetPointerModeByDevice"/> Note: This function will only set/get the mode for the default pointer.
-/// (Since EFL 1.22)</summary>
-/// <value>Input pointer mode</value>
+    /// This function has a direct effect on event callbacks related to pointers (mouse, ...).
+    /// 
+    /// If the value is <see cref="Efl.Input.ObjectPointerMode.AutoGrab"/> (default), then when mouse is pressed down over this object, events will be restricted to it as source, mouse moves, for example, will be emitted even when the pointer goes outside this objects geometry.
+    /// 
+    /// If the value is <see cref="Efl.Input.ObjectPointerMode.NoGrab"/>, then events will be emitted just when inside this object area.
+    /// 
+    /// The default value is <see cref="Efl.Input.ObjectPointerMode.AutoGrab"/>. See also: <see cref="Efl.Canvas.Object.GetPointerModeByDevice"/> and <see cref="Efl.Canvas.Object.GetPointerModeByDevice"/> Note: This function will only set/get the mode for the default pointer.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Input pointer mode</value>
     public Efl.Input.ObjectPointerMode PointerMode {
         get { return GetPointerMode(); }
         set { SetPointerMode(value); }
     }
     /// <summary>Render mode to be used for compositing the Evas object.
-/// Only two modes are supported: - <see cref="Efl.Gfx.RenderOp.Blend"/> means the object will be merged on top of objects below it using simple alpha compositing. - <see cref="Efl.Gfx.RenderOp.Copy"/> means this object&apos;s pixels will replace everything that is below, making this object opaque.
-/// 
-/// Please do not assume that <see cref="Efl.Gfx.RenderOp.Copy"/> mode can be used to &quot;poke&quot; holes in a window (to see through it), as only the compositor can ensure that. Copy mode should only be used with otherwise opaque widgets or inside non-window surfaces (eg. a transparent background inside a buffer canvas).
-/// (Since EFL 1.22)</summary>
-/// <value>Blend or copy.</value>
+    /// Only two modes are supported: - <see cref="Efl.Gfx.RenderOp.Blend"/> means the object will be merged on top of objects below it using simple alpha compositing. - <see cref="Efl.Gfx.RenderOp.Copy"/> means this object&apos;s pixels will replace everything that is below, making this object opaque.
+    /// 
+    /// Please do not assume that <see cref="Efl.Gfx.RenderOp.Copy"/> mode can be used to &quot;poke&quot; holes in a window (to see through it), as only the compositor can ensure that. Copy mode should only be used with otherwise opaque widgets or inside non-window surfaces (eg. a transparent background inside a buffer canvas).
+    /// (Since EFL 1.22)</summary>
+    /// <value>Blend or copy.</value>
     public Efl.Gfx.RenderOp RenderOp {
         get { return GetRenderOp(); }
         set { SetRenderOp(value); }
     }
     /// <summary>Get the object clipping <c>obj</c> (if any).
-/// This function returns the object clipping <c>obj</c>. If <c>obj</c> is not being clipped at all, <c>null</c> is returned. The object <c>obj</c> must be a valid Evas_Object.
-/// (Since EFL 1.22)</summary>
-/// <value>The object to clip <c>obj</c> by.</value>
+    /// This function returns the object clipping <c>obj</c>. If <c>obj</c> is not being clipped at all, <c>null</c> is returned. The object <c>obj</c> must be a valid Evas_Object.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The object to clip <c>obj</c> by.</value>
     public Efl.Canvas.Object Clipper {
         get { return GetClipper(); }
         set { SetClipper(value); }
     }
     /// <summary>Determine whether an object is set to repeat events.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether <c>obj</c> is to repeat events (<c>true</c>) or not (<c>false</c>).</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether <c>obj</c> is to repeat events (<c>true</c>) or not (<c>false</c>).</value>
     public bool RepeatEvents {
         get { return GetRepeatEvents(); }
         set { SetRepeatEvents(value); }
     }
     /// <summary>Indicates that this object is the keyboard event receiver on its canvas.
-/// Changing focus only affects where (key) input events go. There can be only one object focused at any time. If <c>focus</c> is <c>true</c>, <c>obj</c> will be set as the currently focused object and it will receive all keyboard events that are not exclusive key grabs on other objects. See also <see cref="Efl.Canvas.Object.CheckSeatFocus"/>, <see cref="Efl.Canvas.Object.AddSeatFocus"/>, <see cref="Efl.Canvas.Object.DelSeatFocus"/>.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> when set as focused or <c>false</c> otherwise.</value>
+    /// Changing focus only affects where (key) input events go. There can be only one object focused at any time. If <c>focus</c> is <c>true</c>, <c>obj</c> will be set as the currently focused object and it will receive all keyboard events that are not exclusive key grabs on other objects. See also <see cref="Efl.Canvas.Object.CheckSeatFocus"/>, <see cref="Efl.Canvas.Object.AddSeatFocus"/>, <see cref="Efl.Canvas.Object.DelSeatFocus"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> when set as focused or <c>false</c> otherwise.</value>
     public bool KeyFocus {
         get { return GetKeyFocus(); }
         set { SetKeyFocus(value); }
     }
     /// <summary>Check if this object is focused.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if focused by at least one seat or <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if focused by at least one seat or <c>false</c> otherwise.</value>
     public bool SeatFocus {
         get { return GetSeatFocus(); }
     }
     /// <summary>Determine whether an object is set to use precise point collision detection.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether to use precise point collision detection or not. The default value is false.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether to use precise point collision detection or not. The default value is false.</value>
     public bool PreciseIsInside {
         get { return GetPreciseIsInside(); }
         set { SetPreciseIsInside(value); }
     }
     /// <summary>Retrieve whether an Evas object is set to propagate events.
-/// See also <see cref="Efl.Canvas.Object.GetRepeatEvents"/>, <see cref="Efl.Canvas.Object.GetPassEvents"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether to propagate events (<c>true</c>) or not (<c>false</c>).</value>
+    /// See also <see cref="Efl.Canvas.Object.GetRepeatEvents"/>, <see cref="Efl.Canvas.Object.GetPassEvents"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether to propagate events (<c>true</c>) or not (<c>false</c>).</value>
     public bool PropagateEvents {
         get { return GetPropagateEvents(); }
         set { SetPropagateEvents(value); }
     }
     /// <summary>Determine whether an object is set to pass (ignore) events.
-/// See also <see cref="Efl.Canvas.Object.GetRepeatEvents"/>, <see cref="Efl.Canvas.Object.GetPropagateEvents"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether <c>obj</c> is to pass events (<c>true</c>) or not (<c>false</c>).</value>
+    /// See also <see cref="Efl.Canvas.Object.GetRepeatEvents"/>, <see cref="Efl.Canvas.Object.GetPropagateEvents"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether <c>obj</c> is to pass events (<c>true</c>) or not (<c>false</c>).</value>
     public bool PassEvents {
         get { return GetPassEvents(); }
         set { SetPassEvents(value); }
     }
     /// <summary>Retrieves whether or not the given Evas object is to be drawn anti_aliased.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is to be anti_aliased, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is to be anti_aliased, <c>false</c> otherwise.</value>
     public bool AntiAlias {
         get { return GetAntiAlias(); }
         set { SetAntiAlias(value); }
     }
     /// <summary>Return a list of objects currently clipped by <c>obj</c>.
-/// This returns the internal list handle containing all objects clipped by the object <c>obj</c>. If none are clipped by it, the call returns <c>null</c>. This list is only valid until the clip list is changed and should be fetched again with another call to this function if any objects being clipped by this object are unclipped, clipped by a new object, deleted or get the clipper deleted. These operations will invalidate the list returned, so it should not be used anymore after that point. Any use of the list after this may have undefined results, possibly leading to crashes.
-/// 
-/// See also <see cref="Efl.Canvas.Object.Clipper"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the list of objects clipped by <c>obj</c>.</value>
+    /// This returns the internal list handle containing all objects clipped by the object <c>obj</c>. If none are clipped by it, the call returns <c>null</c>. This list is only valid until the clip list is changed and should be fetched again with another call to this function if any objects being clipped by this object are unclipped, clipped by a new object, deleted or get the clipper deleted. These operations will invalidate the list returned, so it should not be used anymore after that point. Any use of the list after this may have undefined results, possibly leading to crashes.
+    /// 
+    /// See also <see cref="Efl.Canvas.Object.Clipper"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the list of objects clipped by <c>obj</c>.</value>
     public Eina.Iterator<Efl.Canvas.Object> ClippedObjects {
         get { return GetClippedObjects(); }
     }
     /// <summary>Gets the parent smart object of a given Evas object, if it has one.
-/// This can be different from <see cref="Efl.Object.Parent"/> because this one is used internally for rendering and the normal parent is what the user expects to be the parent.
-/// (Since EFL 1.22)</summary>
-/// <value>The parent smart object of <c>obj</c> or <c>null</c>.</value>
+    /// This can be different from <see cref="Efl.Object.Parent"/> because this one is used internally for rendering and the normal parent is what the user expects to be the parent.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The parent smart object of <c>obj</c> or <c>null</c>.</value>
     public Efl.Canvas.Object RenderParent {
         get { return GetRenderParent(); }
     }
     /// <summary>This handles text paragraph direction of the given object. Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is <c>inherit</c>.
-/// (Since EFL 1.22)</summary>
-/// <value>Paragraph direction for the given object.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>Paragraph direction for the given object.</value>
     public Efl.TextBidirectionalType ParagraphDirection {
         get { return GetParagraphDirection(); }
         set { SetParagraphDirection(value); }
     }
     /// <summary>Returns the state of the &quot;no-render&quot; flag, which means, when true, that an object should never be rendered on the canvas.
-/// This flag can be used to avoid rendering visible clippers on the canvas, even if they currently don&apos;t clip any object.
-/// (Since EFL 1.22)</summary>
-/// <value>Enable &quot;no-render&quot; mode.</value>
+    /// This flag can be used to avoid rendering visible clippers on the canvas, even if they currently don&apos;t clip any object.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Enable &quot;no-render&quot; mode.</value>
     public bool NoRender {
         get { return GetNoRender(); }
         set { SetNoRender(value); }
     }
     /// <summary>Get hex color code of given Evas object. This returns a short lived hex color code string.
-/// (Since EFL 1.22)</summary>
-/// <value>the hex color code.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>the hex color code.</value>
     public System.String ColorCode {
         get { return GetColorCode(); }
         set { SetColorCode(value); }
     }
     /// <summary>The 2D position of a canvas object.
-/// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D coordinate in pixel units.</value>
+    /// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D coordinate in pixel units.</value>
     public Eina.Position2D Position {
         get { return GetPosition(); }
         set { SetPosition(value); }
     }
     /// <summary>The 2D size of a canvas object.
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D size in pixel units.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D size in pixel units.</value>
     public Eina.Size2D Size {
         get { return GetSize(); }
         set { SetSize(value); }
     }
     /// <summary>Rectangular geometry that combines both position and size.
-/// (Since EFL 1.22)</summary>
-/// <value>The X,Y position and W,H size, in pixels.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The X,Y position and W,H size, in pixels.</value>
     public Eina.Rect Geometry {
         get { return GetGeometry(); }
         set { SetGeometry(value); }
     }
     /// <summary>The visibility of a canvas object.
-/// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
-/// 
-/// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
+    /// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
+    /// 
+    /// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
     public bool Visible {
         get { return GetVisible(); }
         set { SetVisible(value); }
     }
     /// <summary>The scaling factor of an object.
-/// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
-/// 
-/// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
-/// (Since EFL 1.22)</summary>
-/// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
+    /// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
+    /// 
+    /// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
     public double Scale {
         get { return GetScale(); }
         set { SetScale(value); }
     }
     /// <summary>Hints on the object&apos;s maximum size.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
-/// 
-/// The object container is in charge of fetching this property and placing the object accordingly.
-/// 
-/// Values -1 will be treated as unset hint components, when queried by managers.
-/// 
-/// Note: Smart objects (such as elementary) can have their own hint policy. So calling this API may or may not affect the size of smart objects.
-/// (Since EFL 1.22)</summary>
-/// <value>Maximum size (hint) in pixels, (-1, -1) by default for canvas objects).</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
+    /// 
+    /// The object container is in charge of fetching this property and placing the object accordingly.
+    /// 
+    /// Values -1 will be treated as unset hint components, when queried by managers.
+    /// 
+    /// Note: Smart objects (such as elementary) can have their own hint policy. So calling this API may or may not affect the size of smart objects.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Maximum size (hint) in pixels, (-1, -1) by default for canvas objects).</value>
     public Eina.Size2D HintSizeMax {
         get { return GetHintSizeMax(); }
         set { SetHintSizeMax(value); }
     }
     /// <summary>Hints on the object&apos;s minimum size.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate. The object container is in charge of fetching this property and placing the object accordingly.
-/// 
-/// Value 0 will be treated as unset hint components, when queried by managers.
-/// 
-/// Note: This property is meant to be set by applications and not by EFL itself. Use this to request a specific size (treated as minimum size).
-/// (Since EFL 1.22)</summary>
-/// <value>Minimum size (hint) in pixels.</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate. The object container is in charge of fetching this property and placing the object accordingly.
+    /// 
+    /// Value 0 will be treated as unset hint components, when queried by managers.
+    /// 
+    /// Note: This property is meant to be set by applications and not by EFL itself. Use this to request a specific size (treated as minimum size).
+    /// (Since EFL 1.22)</summary>
+    /// <value>Minimum size (hint) in pixels.</value>
     public Eina.Size2D HintSizeMin {
         get { return GetHintSizeMin(); }
         set { SetHintSizeMin(value); }
     }
     /// <summary>Internal hints for an object&apos;s minimum size.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
-/// 
-/// Values 0 will be treated as unset hint components, when queried by managers.
-/// 
-/// Note: This property is internal and meant for widget developers to define the absolute minimum size of the object. EFL itself sets this size internally, so any change to it from an application might be ignored. Use <see cref="Efl.Gfx.IHint.HintSizeMin"/> instead.
-/// (Since EFL 1.22)</summary>
-/// <value>Minimum size (hint) in pixels.</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
+    /// 
+    /// Values 0 will be treated as unset hint components, when queried by managers.
+    /// 
+    /// Note: This property is internal and meant for widget developers to define the absolute minimum size of the object. EFL itself sets this size internally, so any change to it from an application might be ignored. Use <see cref="Efl.Gfx.IHint.HintSizeMin"/> instead.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Minimum size (hint) in pixels.</value>
     public Eina.Size2D HintSizeRestrictedMin {
         get { return GetHintSizeRestrictedMin(); }
         set { SetHintSizeRestrictedMin(value); }
     }
     /// <summary>Read-only minimum size combining both <see cref="Efl.Gfx.IHint.HintSizeRestrictedMin"/> and <see cref="Efl.Gfx.IHint.HintSizeMin"/> hints.
-/// <see cref="Efl.Gfx.IHint.HintSizeRestrictedMin"/> is intended for mostly internal usage and widget developers, and <see cref="Efl.Gfx.IHint.HintSizeMin"/> is intended to be set from application side. <see cref="Efl.Gfx.IHint.GetHintSizeCombinedMin"/> combines both values by taking their repective maximum (in both width and height), and is used internally to get an object&apos;s minimum size.
-/// (Since EFL 1.22)</summary>
-/// <value>Minimum size (hint) in pixels.</value>
+    /// <see cref="Efl.Gfx.IHint.HintSizeRestrictedMin"/> is intended for mostly internal usage and widget developers, and <see cref="Efl.Gfx.IHint.HintSizeMin"/> is intended to be set from application side. <see cref="Efl.Gfx.IHint.GetHintSizeCombinedMin"/> combines both values by taking their repective maximum (in both width and height), and is used internally to get an object&apos;s minimum size.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Minimum size (hint) in pixels.</value>
     public Eina.Size2D HintSizeCombinedMin {
         get { return GetHintSizeCombinedMin(); }
     }
     /// <summary>Number of points of a map.
-/// This sets the number of points of map. Currently, the number of points must be multiples of 4.
-/// (Since EFL 1.22)</summary>
-/// <value>The number of points of map</value>
+    /// This sets the number of points of map. Currently, the number of points must be multiples of 4.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The number of points of map</value>
     public int MappingPointCount {
         get { return GetMappingPointCount(); }
         set { SetMappingPointCount(value); }
     }
     /// <summary>Clockwise state of a map (read-only).
-/// This determines if the output points (X and Y. Z is not used) are clockwise or counter-clockwise. This can be used for &quot;back-face culling&quot;. This is where you hide objects that &quot;face away&quot; from you. In this case objects that are not clockwise.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if clockwise, <c>false</c> if counter clockwise</value>
+    /// This determines if the output points (X and Y. Z is not used) are clockwise or counter-clockwise. This can be used for &quot;back-face culling&quot;. This is where you hide objects that &quot;face away&quot; from you. In this case objects that are not clockwise.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if clockwise, <c>false</c> if counter clockwise</value>
     public bool MappingClockwise {
         get { return GetMappingClockwise(); }
     }
     /// <summary>Smoothing state for map rendering.
-/// This sets smoothing for map rendering. If the object is a type that has its own smoothing settings, then both the smooth settings for this object and the map must be turned off. By default smooth maps are enabled.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> by default.</value>
+    /// This sets smoothing for map rendering. If the object is a type that has its own smoothing settings, then both the smooth settings for this object and the map must be turned off. By default smooth maps are enabled.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> by default.</value>
     public bool MappingSmooth {
         get { return GetMappingSmooth(); }
         set { SetMappingSmooth(value); }
     }
     /// <summary>Alpha flag for map rendering.
-/// This sets alpha flag for map rendering. If the object is a type that has its own alpha settings, then this will take precedence. Only image objects support this currently (<see cref="Efl.Canvas.Image"/> and its friends). Setting this to off stops alpha blending of the map area, and is useful if you know the object and/or all sub-objects is 100% solid.
-/// 
-/// Note that this may conflict with <see cref="Efl.Gfx.IMapping.MappingSmooth"/> depending on which algorithm is used for anti-aliasing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> by default.</value>
+    /// This sets alpha flag for map rendering. If the object is a type that has its own alpha settings, then this will take precedence. Only image objects support this currently (<see cref="Efl.Canvas.Image"/> and its friends). Setting this to off stops alpha blending of the map area, and is useful if you know the object and/or all sub-objects is 100% solid.
+    /// 
+    /// Note that this may conflict with <see cref="Efl.Gfx.IMapping.MappingSmooth"/> depending on which algorithm is used for anti-aliasing.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> by default.</value>
     public bool MappingAlpha {
         get { return GetMappingAlpha(); }
         set { SetMappingAlpha(value); }
     }
     /// <summary>Retrieves the layer of its canvas that the given object is part of.
-/// See also <see cref="Efl.Gfx.IStack.SetLayer"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The number of the layer to place the object on. Must be between <see cref="Efl.Gfx.Constants.StackLayerMin"/> and <see cref="Efl.Gfx.Constants.StackLayerMax"/>.</value>
+    /// See also <see cref="Efl.Gfx.IStack.SetLayer"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The number of the layer to place the object on. Must be between <see cref="Efl.Gfx.Constants.StackLayerMin"/> and <see cref="Efl.Gfx.Constants.StackLayerMax"/>.</value>
     public short Layer {
         get { return GetLayer(); }
         set { SetLayer(value); }
     }
     /// <summary>Get the Evas object stacked right below <c>obj</c>
-/// This function will traverse layers in its search, if there are objects on layers below the one <c>obj</c> is placed at.
-/// 
-/// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
+    /// This function will traverse layers in its search, if there are objects on layers below the one <c>obj</c> is placed at.
+    /// 
+    /// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
     public Efl.Gfx.IStack Below {
         get { return GetBelow(); }
     }
     /// <summary>Get the Evas object stacked right above <c>obj</c>
-/// This function will traverse layers in its search, if there are objects on layers above the one <c>obj</c> is placed at.
-/// 
-/// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
+    /// This function will traverse layers in its search, if there are objects on layers above the one <c>obj</c> is placed at.
+    /// 
+    /// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
     public Efl.Gfx.IStack Above {
         get { return GetAbove(); }
     }
     /// <summary>Whether this object should be mirrored.
-/// If mirrored, an object is in RTL (right to left) mode instead of LTR (left to right).</summary>
-/// <value><c>true</c> for RTL, <c>false</c> for LTR (default).</value>
+    /// If mirrored, an object is in RTL (right to left) mode instead of LTR (left to right).</summary>
+    /// <value><c>true</c> for RTL, <c>false</c> for LTR (default).</value>
     public bool Mirrored {
         get { return GetMirrored(); }
         set { SetMirrored(value); }
     }
     /// <summary>Whether the property <see cref="Efl.Ui.II18n.Mirrored"/> should be set automatically.
-/// If enabled, the system or application configuration will be used to set the value of <see cref="Efl.Ui.II18n.Mirrored"/>.
-/// 
-/// This property may be implemented by high-level widgets (in Efl.Ui) but not by low-level widgets (in <see cref="Efl.Canvas.IScene"/>) as the configuration should affect only high-level widgets.</summary>
-/// <value>Whether the widget uses automatic mirroring</value>
+    /// If enabled, the system or application configuration will be used to set the value of <see cref="Efl.Ui.II18n.Mirrored"/>.
+    /// 
+    /// This property may be implemented by high-level widgets (in Efl.Ui) but not by low-level widgets (in <see cref="Efl.Canvas.IScene"/>) as the configuration should affect only high-level widgets.</summary>
+    /// <value>Whether the widget uses automatic mirroring</value>
     public bool MirroredAutomatic {
         get { return GetMirroredAutomatic(); }
         set { SetMirroredAutomatic(value); }
     }
     /// <summary>The (human) language for this object.</summary>
-/// <value>The current language.</value>
+    /// <value>The current language.</value>
     public System.String Language {
         get { return GetLanguage(); }
         set { SetLanguage(value); }
@@ -3208,6 +3545,16 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_object_key_ungrab"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_object_key_ungrab_static_delegate) });
             }
 
+            if (efl_canvas_object_gesture_manager_get_static_delegate == null)
+            {
+                efl_canvas_object_gesture_manager_get_static_delegate = new efl_canvas_object_gesture_manager_get_delegate(gesture_manager_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetGestureManager") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_object_gesture_manager_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_object_gesture_manager_get_static_delegate) });
+            }
+
             if (efl_canvas_pointer_inside_get_static_delegate == null)
             {
                 efl_canvas_pointer_inside_get_static_delegate = new efl_canvas_pointer_inside_get_delegate(pointer_inside_get);
@@ -3978,7 +4325,7 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
             return Efl.Canvas.Object.efl_canvas_object_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Input.ObjectPointerMode efl_canvas_object_pointer_mode_by_device_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.Device dev);
@@ -3991,13 +4338,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Efl.Input.ObjectPointerMode pointer_mode_by_device_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device dev)
         {
             Eina.Log.Debug("function efl_canvas_object_pointer_mode_by_device_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Input.ObjectPointerMode _ret_var = default(Efl.Input.ObjectPointerMode);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetPointerModeByDevice(dev);
+                    _ret_var = ((Object)ws.Target).GetPointerModeByDevice(dev);
                 }
                 catch (Exception e)
                 {
@@ -4027,13 +4374,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool pointer_mode_by_device_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device dev, Efl.Input.ObjectPointerMode pointer_mode)
         {
             Eina.Log.Debug("function efl_canvas_object_pointer_mode_by_device_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).SetPointerModeByDevice(dev, pointer_mode);
+                    _ret_var = ((Object)ws.Target).SetPointerModeByDevice(dev, pointer_mode);
                 }
                 catch (Exception e)
                 {
@@ -4063,13 +4410,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Efl.Input.ObjectPointerMode pointer_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_pointer_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.ObjectPointerMode _ret_var = default(Efl.Input.ObjectPointerMode);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetPointerMode();
+                    _ret_var = ((Object)ws.Target).GetPointerMode();
                 }
                 catch (Exception e)
                 {
@@ -4099,13 +4446,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool pointer_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.ObjectPointerMode pointer_mode)
         {
             Eina.Log.Debug("function efl_canvas_object_pointer_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).SetPointerMode(pointer_mode);
+                    _ret_var = ((Object)ws.Target).SetPointerMode(pointer_mode);
                 }
                 catch (Exception e)
                 {
@@ -4135,13 +4482,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Efl.Gfx.RenderOp render_op_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_render_op_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.RenderOp _ret_var = default(Efl.Gfx.RenderOp);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetRenderOp();
+                    _ret_var = ((Object)ws.Target).GetRenderOp();
                 }
                 catch (Exception e)
                 {
@@ -4171,13 +4518,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void render_op_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.RenderOp render_op)
         {
             Eina.Log.Debug("function efl_canvas_object_render_op_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetRenderOp(render_op);
+                    ((Object)ws.Target).SetRenderOp(render_op);
                 }
                 catch (Exception e)
                 {
@@ -4206,13 +4553,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Efl.Canvas.Object clipper_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_clipper_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetClipper();
+                    _ret_var = ((Object)ws.Target).GetClipper();
                 }
                 catch (Exception e)
                 {
@@ -4242,13 +4589,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void clipper_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object clipper)
         {
             Eina.Log.Debug("function efl_canvas_object_clipper_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetClipper(clipper);
+                    ((Object)ws.Target).SetClipper(clipper);
                 }
                 catch (Exception e)
                 {
@@ -4277,13 +4624,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool repeat_events_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_repeat_events_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetRepeatEvents();
+                    _ret_var = ((Object)ws.Target).GetRepeatEvents();
                 }
                 catch (Exception e)
                 {
@@ -4313,13 +4660,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void repeat_events_set(System.IntPtr obj, System.IntPtr pd, bool repeat)
         {
             Eina.Log.Debug("function efl_canvas_object_repeat_events_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetRepeatEvents(repeat);
+                    ((Object)ws.Target).SetRepeatEvents(repeat);
                 }
                 catch (Exception e)
                 {
@@ -4348,13 +4695,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool key_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_key_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetKeyFocus();
+                    _ret_var = ((Object)ws.Target).GetKeyFocus();
                 }
                 catch (Exception e)
                 {
@@ -4384,13 +4731,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void key_focus_set(System.IntPtr obj, System.IntPtr pd, bool focus)
         {
             Eina.Log.Debug("function efl_canvas_object_key_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetKeyFocus(focus);
+                    ((Object)ws.Target).SetKeyFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -4419,13 +4766,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool seat_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_seat_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetSeatFocus();
+                    _ret_var = ((Object)ws.Target).GetSeatFocus();
                 }
                 catch (Exception e)
                 {
@@ -4455,13 +4802,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool precise_is_inside_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_precise_is_inside_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetPreciseIsInside();
+                    _ret_var = ((Object)ws.Target).GetPreciseIsInside();
                 }
                 catch (Exception e)
                 {
@@ -4491,13 +4838,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void precise_is_inside_set(System.IntPtr obj, System.IntPtr pd, bool precise)
         {
             Eina.Log.Debug("function efl_canvas_object_precise_is_inside_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetPreciseIsInside(precise);
+                    ((Object)ws.Target).SetPreciseIsInside(precise);
                 }
                 catch (Exception e)
                 {
@@ -4526,13 +4873,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool propagate_events_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_propagate_events_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetPropagateEvents();
+                    _ret_var = ((Object)ws.Target).GetPropagateEvents();
                 }
                 catch (Exception e)
                 {
@@ -4562,13 +4909,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void propagate_events_set(System.IntPtr obj, System.IntPtr pd, bool propagate)
         {
             Eina.Log.Debug("function efl_canvas_object_propagate_events_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetPropagateEvents(propagate);
+                    ((Object)ws.Target).SetPropagateEvents(propagate);
                 }
                 catch (Exception e)
                 {
@@ -4597,13 +4944,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool pass_events_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_pass_events_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetPassEvents();
+                    _ret_var = ((Object)ws.Target).GetPassEvents();
                 }
                 catch (Exception e)
                 {
@@ -4633,13 +4980,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void pass_events_set(System.IntPtr obj, System.IntPtr pd, bool pass)
         {
             Eina.Log.Debug("function efl_canvas_object_pass_events_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetPassEvents(pass);
+                    ((Object)ws.Target).SetPassEvents(pass);
                 }
                 catch (Exception e)
                 {
@@ -4668,13 +5015,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool anti_alias_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_anti_alias_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetAntiAlias();
+                    _ret_var = ((Object)ws.Target).GetAntiAlias();
                 }
                 catch (Exception e)
                 {
@@ -4704,13 +5051,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void anti_alias_set(System.IntPtr obj, System.IntPtr pd, bool anti_alias)
         {
             Eina.Log.Debug("function efl_canvas_object_anti_alias_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetAntiAlias(anti_alias);
+                    ((Object)ws.Target).SetAntiAlias(anti_alias);
                 }
                 catch (Exception e)
                 {
@@ -4739,13 +5086,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static System.IntPtr clipped_objects_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_clipped_objects_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Canvas.Object> _ret_var = default(Eina.Iterator<Efl.Canvas.Object>);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetClippedObjects();
+                    _ret_var = ((Object)ws.Target).GetClippedObjects();
                 }
                 catch (Exception e)
                 {
@@ -4775,13 +5122,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Efl.Canvas.Object render_parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_render_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetRenderParent();
+                    _ret_var = ((Object)ws.Target).GetRenderParent();
                 }
                 catch (Exception e)
                 {
@@ -4811,13 +5158,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Efl.TextBidirectionalType paragraph_direction_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_paragraph_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextBidirectionalType _ret_var = default(Efl.TextBidirectionalType);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetParagraphDirection();
+                    _ret_var = ((Object)ws.Target).GetParagraphDirection();
                 }
                 catch (Exception e)
                 {
@@ -4847,13 +5194,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void paragraph_direction_set(System.IntPtr obj, System.IntPtr pd, Efl.TextBidirectionalType dir)
         {
             Eina.Log.Debug("function efl_canvas_object_paragraph_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetParagraphDirection(dir);
+                    ((Object)ws.Target).SetParagraphDirection(dir);
                 }
                 catch (Exception e)
                 {
@@ -4882,13 +5229,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool no_render_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_no_render_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetNoRender();
+                    _ret_var = ((Object)ws.Target).GetNoRender();
                 }
                 catch (Exception e)
                 {
@@ -4918,13 +5265,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void no_render_set(System.IntPtr obj, System.IntPtr pd, bool enable)
         {
             Eina.Log.Debug("function efl_canvas_object_no_render_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetNoRender(enable);
+                    ((Object)ws.Target).SetNoRender(enable);
                 }
                 catch (Exception e)
                 {
@@ -4953,14 +5300,14 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool coords_inside_get(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_canvas_object_coords_inside_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetCoordsInside(_in_pos);
+                    _ret_var = ((Object)ws.Target).GetCoordsInside(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -4990,13 +5337,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool seat_focus_check(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_canvas_object_seat_focus_check was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).CheckSeatFocus(seat);
+                    _ret_var = ((Object)ws.Target).CheckSeatFocus(seat);
                 }
                 catch (Exception e)
                 {
@@ -5026,13 +5373,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool seat_focus_add(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_canvas_object_seat_focus_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).AddSeatFocus(seat);
+                    _ret_var = ((Object)ws.Target).AddSeatFocus(seat);
                 }
                 catch (Exception e)
                 {
@@ -5062,13 +5409,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool seat_focus_del(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_canvas_object_seat_focus_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).DelSeatFocus(seat);
+                    _ret_var = ((Object)ws.Target).DelSeatFocus(seat);
                 }
                 catch (Exception e)
                 {
@@ -5098,13 +5445,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static uint clipped_objects_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_object_clipped_objects_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((Object)wrapper).ClippedObjectsCount();
+                    _ret_var = ((Object)ws.Target).ClippedObjectsCount();
                 }
                 catch (Exception e)
                 {
@@ -5134,13 +5481,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool key_grab(System.IntPtr obj, System.IntPtr pd, System.String keyname, Efl.Input.Modifier modifiers, Efl.Input.Modifier not_modifiers, bool exclusive)
         {
             Eina.Log.Debug("function efl_canvas_object_key_grab was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GrabKey(keyname, modifiers, not_modifiers, exclusive);
+                    _ret_var = ((Object)ws.Target).GrabKey(keyname, modifiers, not_modifiers, exclusive);
                 }
                 catch (Exception e)
                 {
@@ -5170,13 +5517,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void key_ungrab(System.IntPtr obj, System.IntPtr pd, System.String keyname, Efl.Input.Modifier modifiers, Efl.Input.Modifier not_modifiers)
         {
             Eina.Log.Debug("function efl_canvas_object_key_ungrab was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Object)wrapper).UngrabKey(keyname, modifiers, not_modifiers);
+                    ((Object)ws.Target).UngrabKey(keyname, modifiers, not_modifiers);
                 }
                 catch (Exception e)
                 {
@@ -5194,6 +5541,42 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
 
         private static efl_canvas_object_key_ungrab_delegate efl_canvas_object_key_ungrab_static_delegate;
 
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        private delegate Efl.Canvas.GestureManager efl_canvas_object_gesture_manager_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        public delegate Efl.Canvas.GestureManager efl_canvas_object_gesture_manager_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_object_gesture_manager_get_api_delegate> efl_canvas_object_gesture_manager_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_object_gesture_manager_get_api_delegate>(Module, "efl_canvas_object_gesture_manager_get");
+
+        private static Efl.Canvas.GestureManager gesture_manager_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_canvas_object_gesture_manager_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Canvas.GestureManager _ret_var = default(Efl.Canvas.GestureManager);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetGestureManager();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_object_gesture_manager_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_canvas_object_gesture_manager_get_delegate efl_canvas_object_gesture_manager_get_static_delegate;
+
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_canvas_pointer_inside_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.Device seat);
 
@@ -5205,13 +5588,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool pointer_inside_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_canvas_pointer_inside_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetPointerInside(seat);
+                    _ret_var = ((Object)ws.Target).GetPointerInside(seat);
                 }
                 catch (Exception e)
                 {
@@ -5241,13 +5624,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void color_get(System.IntPtr obj, System.IntPtr pd, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                            
                 try
                 {
-                    ((Object)wrapper).GetColor(out r, out g, out b, out a);
+                    ((Object)ws.Target).GetColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -5276,13 +5659,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void color_set(System.IntPtr obj, System.IntPtr pd, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Object)wrapper).SetColor(r, g, b, a);
+                    ((Object)ws.Target).SetColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -5311,13 +5694,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static System.String color_code_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_color_code_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetColorCode();
+                    _ret_var = ((Object)ws.Target).GetColorCode();
                 }
                 catch (Exception e)
                 {
@@ -5347,13 +5730,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void color_code_set(System.IntPtr obj, System.IntPtr pd, System.String colorcode)
         {
             Eina.Log.Debug("function efl_gfx_color_code_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetColorCode(colorcode);
+                    ((Object)ws.Target).SetColorCode(colorcode);
                 }
                 catch (Exception e)
                 {
@@ -5382,13 +5765,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Eina.Position2D.NativeStruct position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetPosition();
+                    _ret_var = ((Object)ws.Target).GetPosition();
                 }
                 catch (Exception e)
                 {
@@ -5418,14 +5801,14 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void position_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((Object)wrapper).SetPosition(_in_pos);
+                    ((Object)ws.Target).SetPosition(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -5454,13 +5837,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Eina.Size2D.NativeStruct size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetSize();
+                    _ret_var = ((Object)ws.Target).GetSize();
                 }
                 catch (Exception e)
                 {
@@ -5490,14 +5873,14 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((Object)wrapper).SetSize(_in_size);
+                    ((Object)ws.Target).SetSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -5526,13 +5909,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Eina.Rect.NativeStruct geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetGeometry();
+                    _ret_var = ((Object)ws.Target).GetGeometry();
                 }
                 catch (Exception e)
                 {
@@ -5562,14 +5945,14 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void geometry_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                             
                 try
                 {
-                    ((Object)wrapper).SetGeometry(_in_rect);
+                    ((Object)ws.Target).SetGeometry(_in_rect);
                 }
                 catch (Exception e)
                 {
@@ -5598,13 +5981,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool visible_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetVisible();
+                    _ret_var = ((Object)ws.Target).GetVisible();
                 }
                 catch (Exception e)
                 {
@@ -5634,13 +6017,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void visible_set(System.IntPtr obj, System.IntPtr pd, bool v)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetVisible(v);
+                    ((Object)ws.Target).SetVisible(v);
                 }
                 catch (Exception e)
                 {
@@ -5669,13 +6052,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static double scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetScale();
+                    _ret_var = ((Object)ws.Target).GetScale();
                 }
                 catch (Exception e)
                 {
@@ -5705,13 +6088,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetScale(scale);
+                    ((Object)ws.Target).SetScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -5740,14 +6123,14 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_aspect_get(System.IntPtr obj, System.IntPtr pd, out Efl.Gfx.HintAspect mode, out Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_hint_aspect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         mode = default(Efl.Gfx.HintAspect);        Eina.Size2D _out_sz = default(Eina.Size2D);
                             
                 try
                 {
-                    ((Object)wrapper).GetHintAspect(out mode, out _out_sz);
+                    ((Object)ws.Target).GetHintAspect(out mode, out _out_sz);
                 }
                 catch (Exception e)
                 {
@@ -5777,14 +6160,14 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_aspect_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.HintAspect mode, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_hint_aspect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Size2D _in_sz = sz;
                                             
                 try
                 {
-                    ((Object)wrapper).SetHintAspect(mode, _in_sz);
+                    ((Object)ws.Target).SetHintAspect(mode, _in_sz);
                 }
                 catch (Exception e)
                 {
@@ -5813,13 +6196,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Eina.Size2D.NativeStruct hint_size_max_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetHintSizeMax();
+                    _ret_var = ((Object)ws.Target).GetHintSizeMax();
                 }
                 catch (Exception e)
                 {
@@ -5849,14 +6232,14 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_size_max_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_sz = sz;
                             
                 try
                 {
-                    ((Object)wrapper).SetHintSizeMax(_in_sz);
+                    ((Object)ws.Target).SetHintSizeMax(_in_sz);
                 }
                 catch (Exception e)
                 {
@@ -5885,13 +6268,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Eina.Size2D.NativeStruct hint_size_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetHintSizeMin();
+                    _ret_var = ((Object)ws.Target).GetHintSizeMin();
                 }
                 catch (Exception e)
                 {
@@ -5921,14 +6304,14 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_size_min_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_min_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_sz = sz;
                             
                 try
                 {
-                    ((Object)wrapper).SetHintSizeMin(_in_sz);
+                    ((Object)ws.Target).SetHintSizeMin(_in_sz);
                 }
                 catch (Exception e)
                 {
@@ -5957,13 +6340,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Eina.Size2D.NativeStruct hint_size_restricted_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_restricted_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetHintSizeRestrictedMin();
+                    _ret_var = ((Object)ws.Target).GetHintSizeRestrictedMin();
                 }
                 catch (Exception e)
                 {
@@ -5993,14 +6376,14 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_size_restricted_min_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_restricted_min_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_sz = sz;
                             
                 try
                 {
-                    ((Object)wrapper).SetHintSizeRestrictedMin(_in_sz);
+                    ((Object)ws.Target).SetHintSizeRestrictedMin(_in_sz);
                 }
                 catch (Exception e)
                 {
@@ -6029,13 +6412,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Eina.Size2D.NativeStruct hint_size_combined_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_combined_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetHintSizeCombinedMin();
+                    _ret_var = ((Object)ws.Target).GetHintSizeCombinedMin();
                 }
                 catch (Exception e)
                 {
@@ -6065,13 +6448,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_margin_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_hint_margin_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((Object)wrapper).GetHintMargin(out l, out r, out t, out b);
+                    ((Object)ws.Target).GetHintMargin(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -6100,13 +6483,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_margin_set(System.IntPtr obj, System.IntPtr pd, int l, int r, int t, int b)
         {
             Eina.Log.Debug("function efl_gfx_hint_margin_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Object)wrapper).SetHintMargin(l, r, t, b);
+                    ((Object)ws.Target).SetHintMargin(l, r, t, b);
                 }
                 catch (Exception e)
                 {
@@ -6135,13 +6518,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_weight_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_hint_weight_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Object)wrapper).GetHintWeight(out x, out y);
+                    ((Object)ws.Target).GetHintWeight(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -6170,13 +6553,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_weight_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_hint_weight_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Object)wrapper).SetHintWeight(x, y);
+                    ((Object)ws.Target).SetHintWeight(x, y);
                 }
                 catch (Exception e)
                 {
@@ -6205,13 +6588,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_align_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_hint_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Object)wrapper).GetHintAlign(out x, out y);
+                    ((Object)ws.Target).GetHintAlign(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -6240,13 +6623,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_align_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_hint_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Object)wrapper).SetHintAlign(x, y);
+                    ((Object)ws.Target).SetHintAlign(x, y);
                 }
                 catch (Exception e)
                 {
@@ -6275,13 +6658,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_fill_get(System.IntPtr obj, System.IntPtr pd, out bool x, out bool y)
         {
             Eina.Log.Debug("function efl_gfx_hint_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(bool);        y = default(bool);                            
                 try
                 {
-                    ((Object)wrapper).GetHintFill(out x, out y);
+                    ((Object)ws.Target).GetHintFill(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -6310,13 +6693,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void hint_fill_set(System.IntPtr obj, System.IntPtr pd, bool x, bool y)
         {
             Eina.Log.Debug("function efl_gfx_hint_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Object)wrapper).SetHintFill(x, y);
+                    ((Object)ws.Target).SetHintFill(x, y);
                 }
                 catch (Exception e)
                 {
@@ -6345,13 +6728,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static int mapping_point_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_point_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetMappingPointCount();
+                    _ret_var = ((Object)ws.Target).GetMappingPointCount();
                 }
                 catch (Exception e)
                 {
@@ -6381,13 +6764,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mapping_point_count_set(System.IntPtr obj, System.IntPtr pd, int count)
         {
             Eina.Log.Debug("function efl_gfx_mapping_point_count_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetMappingPointCount(count);
+                    ((Object)ws.Target).SetMappingPointCount(count);
                 }
                 catch (Exception e)
                 {
@@ -6416,13 +6799,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool mapping_clockwise_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_clockwise_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetMappingClockwise();
+                    _ret_var = ((Object)ws.Target).GetMappingClockwise();
                 }
                 catch (Exception e)
                 {
@@ -6452,13 +6835,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool mapping_smooth_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_smooth_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetMappingSmooth();
+                    _ret_var = ((Object)ws.Target).GetMappingSmooth();
                 }
                 catch (Exception e)
                 {
@@ -6488,13 +6871,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mapping_smooth_set(System.IntPtr obj, System.IntPtr pd, bool smooth)
         {
             Eina.Log.Debug("function efl_gfx_mapping_smooth_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetMappingSmooth(smooth);
+                    ((Object)ws.Target).SetMappingSmooth(smooth);
                 }
                 catch (Exception e)
                 {
@@ -6523,13 +6906,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool mapping_alpha_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_alpha_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetMappingAlpha();
+                    _ret_var = ((Object)ws.Target).GetMappingAlpha();
                 }
                 catch (Exception e)
                 {
@@ -6559,13 +6942,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mapping_alpha_set(System.IntPtr obj, System.IntPtr pd, bool alpha)
         {
             Eina.Log.Debug("function efl_gfx_mapping_alpha_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetMappingAlpha(alpha);
+                    ((Object)ws.Target).SetMappingAlpha(alpha);
                 }
                 catch (Exception e)
                 {
@@ -6594,13 +6977,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mapping_coord_absolute_get(System.IntPtr obj, System.IntPtr pd, int idx, out double x, out double y, out double z)
         {
             Eina.Log.Debug("function efl_gfx_mapping_coord_absolute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                 x = default(double);        y = default(double);        z = default(double);                                            
                 try
                 {
-                    ((Object)wrapper).GetMappingCoordAbsolute(idx, out x, out y, out z);
+                    ((Object)ws.Target).GetMappingCoordAbsolute(idx, out x, out y, out z);
                 }
                 catch (Exception e)
                 {
@@ -6629,13 +7012,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mapping_coord_absolute_set(System.IntPtr obj, System.IntPtr pd, int idx, double x, double y, double z)
         {
             Eina.Log.Debug("function efl_gfx_mapping_coord_absolute_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Object)wrapper).SetMappingCoordAbsolute(idx, x, y, z);
+                    ((Object)ws.Target).SetMappingCoordAbsolute(idx, x, y, z);
                 }
                 catch (Exception e)
                 {
@@ -6664,13 +7047,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mapping_uv_get(System.IntPtr obj, System.IntPtr pd, int idx, out double u, out double v)
         {
             Eina.Log.Debug("function efl_gfx_mapping_uv_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         u = default(double);        v = default(double);                                    
                 try
                 {
-                    ((Object)wrapper).GetMappingUv(idx, out u, out v);
+                    ((Object)ws.Target).GetMappingUv(idx, out u, out v);
                 }
                 catch (Exception e)
                 {
@@ -6699,13 +7082,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mapping_uv_set(System.IntPtr obj, System.IntPtr pd, int idx, double u, double v)
         {
             Eina.Log.Debug("function efl_gfx_mapping_uv_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Object)wrapper).SetMappingUv(idx, u, v);
+                    ((Object)ws.Target).SetMappingUv(idx, u, v);
                 }
                 catch (Exception e)
                 {
@@ -6734,13 +7117,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mapping_color_get(System.IntPtr obj, System.IntPtr pd, int idx, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_mapping_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                                    
                 try
                 {
-                    ((Object)wrapper).GetMappingColor(idx, out r, out g, out b, out a);
+                    ((Object)ws.Target).GetMappingColor(idx, out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -6769,13 +7152,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mapping_color_set(System.IntPtr obj, System.IntPtr pd, int idx, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_mapping_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((Object)wrapper).SetMappingColor(idx, r, g, b, a);
+                    ((Object)ws.Target).SetMappingColor(idx, r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -6804,13 +7187,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool mapping_has(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_has was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).HasMapping();
+                    _ret_var = ((Object)ws.Target).HasMapping();
                 }
                 catch (Exception e)
                 {
@@ -6840,13 +7223,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mapping_reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Object)wrapper).ResetMapping();
+                    ((Object)ws.Target).ResetMapping();
                 }
                 catch (Exception e)
                 {
@@ -6875,13 +7258,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void translate(System.IntPtr obj, System.IntPtr pd, double dx, double dy, double dz)
         {
             Eina.Log.Debug("function efl_gfx_mapping_translate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Object)wrapper).Translate(dx, dy, dz);
+                    ((Object)ws.Target).Translate(dx, dy, dz);
                 }
                 catch (Exception e)
                 {
@@ -6910,13 +7293,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void rotate(System.IntPtr obj, System.IntPtr pd, double degrees, Efl.Gfx.IEntity pivot, double cx, double cy)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Object)wrapper).Rotate(degrees, pivot, cx, cy);
+                    ((Object)ws.Target).Rotate(degrees, pivot, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -6945,13 +7328,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void rotate_3d(System.IntPtr obj, System.IntPtr pd, double dx, double dy, double dz, Efl.Gfx.IEntity pivot, double cx, double cy, double cz)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate_3d was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                     
                 try
                 {
-                    ((Object)wrapper).Rotate3d(dx, dy, dz, pivot, cx, cy, cz);
+                    ((Object)ws.Target).Rotate3d(dx, dy, dz, pivot, cx, cy, cz);
                 }
                 catch (Exception e)
                 {
@@ -6980,13 +7363,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void rotate_quat(System.IntPtr obj, System.IntPtr pd, double qx, double qy, double qz, double qw, Efl.Gfx.IEntity pivot, double cx, double cy, double cz)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate_quat was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                                             
                 try
                 {
-                    ((Object)wrapper).RotateQuat(qx, qy, qz, qw, pivot, cx, cy, cz);
+                    ((Object)ws.Target).RotateQuat(qx, qy, qz, qw, pivot, cx, cy, cz);
                 }
                 catch (Exception e)
                 {
@@ -7015,13 +7398,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void zoom(System.IntPtr obj, System.IntPtr pd, double zoomx, double zoomy, Efl.Gfx.IEntity pivot, double cx, double cy)
         {
             Eina.Log.Debug("function efl_gfx_mapping_zoom was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((Object)wrapper).Zoom(zoomx, zoomy, pivot, cx, cy);
+                    ((Object)ws.Target).Zoom(zoomx, zoomy, pivot, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -7050,13 +7433,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void lighting_3d(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity pivot, double lx, double ly, double lz, int lr, int lg, int lb, int ar, int ag, int ab)
         {
             Eina.Log.Debug("function efl_gfx_mapping_lighting_3d was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                                                                                             
                 try
                 {
-                    ((Object)wrapper).Lighting3d(pivot, lx, ly, lz, lr, lg, lb, ar, ag, ab);
+                    ((Object)ws.Target).Lighting3d(pivot, lx, ly, lz, lr, lg, lb, ar, ag, ab);
                 }
                 catch (Exception e)
                 {
@@ -7085,13 +7468,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void perspective_3d(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity pivot, double px, double py, double z0, double foc)
         {
             Eina.Log.Debug("function efl_gfx_mapping_perspective_3d was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((Object)wrapper).Perspective3d(pivot, px, py, z0, foc);
+                    ((Object)ws.Target).Perspective3d(pivot, px, py, z0, foc);
                 }
                 catch (Exception e)
                 {
@@ -7120,13 +7503,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void rotate_absolute(System.IntPtr obj, System.IntPtr pd, double degrees, double cx, double cy)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Object)wrapper).RotateAbsolute(degrees, cx, cy);
+                    ((Object)ws.Target).RotateAbsolute(degrees, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -7155,13 +7538,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void rotate_3d_absolute(System.IntPtr obj, System.IntPtr pd, double dx, double dy, double dz, double cx, double cy, double cz)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate_3d_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((Object)wrapper).Rotate3dAbsolute(dx, dy, dz, cx, cy, cz);
+                    ((Object)ws.Target).Rotate3dAbsolute(dx, dy, dz, cx, cy, cz);
                 }
                 catch (Exception e)
                 {
@@ -7190,13 +7573,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void rotate_quat_absolute(System.IntPtr obj, System.IntPtr pd, double qx, double qy, double qz, double qw, double cx, double cy, double cz)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate_quat_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                     
                 try
                 {
-                    ((Object)wrapper).RotateQuatAbsolute(qx, qy, qz, qw, cx, cy, cz);
+                    ((Object)ws.Target).RotateQuatAbsolute(qx, qy, qz, qw, cx, cy, cz);
                 }
                 catch (Exception e)
                 {
@@ -7225,13 +7608,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void zoom_absolute(System.IntPtr obj, System.IntPtr pd, double zoomx, double zoomy, double cx, double cy)
         {
             Eina.Log.Debug("function efl_gfx_mapping_zoom_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Object)wrapper).ZoomAbsolute(zoomx, zoomy, cx, cy);
+                    ((Object)ws.Target).ZoomAbsolute(zoomx, zoomy, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -7260,13 +7643,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void lighting_3d_absolute(System.IntPtr obj, System.IntPtr pd, double lx, double ly, double lz, int lr, int lg, int lb, int ar, int ag, int ab)
         {
             Eina.Log.Debug("function efl_gfx_mapping_lighting_3d_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                                                                     
                 try
                 {
-                    ((Object)wrapper).Lighting3dAbsolute(lx, ly, lz, lr, lg, lb, ar, ag, ab);
+                    ((Object)ws.Target).Lighting3dAbsolute(lx, ly, lz, lr, lg, lb, ar, ag, ab);
                 }
                 catch (Exception e)
                 {
@@ -7295,13 +7678,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void perspective_3d_absolute(System.IntPtr obj, System.IntPtr pd, double px, double py, double z0, double foc)
         {
             Eina.Log.Debug("function efl_gfx_mapping_perspective_3d_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Object)wrapper).Perspective3dAbsolute(px, py, z0, foc);
+                    ((Object)ws.Target).Perspective3dAbsolute(px, py, z0, foc);
                 }
                 catch (Exception e)
                 {
@@ -7330,13 +7713,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static short layer_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_layer_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             short _ret_var = default(short);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetLayer();
+                    _ret_var = ((Object)ws.Target).GetLayer();
                 }
                 catch (Exception e)
                 {
@@ -7366,13 +7749,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void layer_set(System.IntPtr obj, System.IntPtr pd, short l)
         {
             Eina.Log.Debug("function efl_gfx_stack_layer_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetLayer(l);
+                    ((Object)ws.Target).SetLayer(l);
                 }
                 catch (Exception e)
                 {
@@ -7401,13 +7784,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Efl.Gfx.IStack below_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_below_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IStack _ret_var = default(Efl.Gfx.IStack);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetBelow();
+                    _ret_var = ((Object)ws.Target).GetBelow();
                 }
                 catch (Exception e)
                 {
@@ -7437,13 +7820,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static Efl.Gfx.IStack above_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_above_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IStack _ret_var = default(Efl.Gfx.IStack);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetAbove();
+                    _ret_var = ((Object)ws.Target).GetAbove();
                 }
                 catch (Exception e)
                 {
@@ -7473,13 +7856,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void stack_below(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IStack below)
         {
             Eina.Log.Debug("function efl_gfx_stack_below was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).StackBelow(below);
+                    ((Object)ws.Target).StackBelow(below);
                 }
                 catch (Exception e)
                 {
@@ -7508,13 +7891,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void raise_to_top(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_raise_to_top was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Object)wrapper).RaiseToTop();
+                    ((Object)ws.Target).RaiseToTop();
                 }
                 catch (Exception e)
                 {
@@ -7543,13 +7926,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void stack_above(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IStack above)
         {
             Eina.Log.Debug("function efl_gfx_stack_above was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).StackAbove(above);
+                    ((Object)ws.Target).StackAbove(above);
                 }
                 catch (Exception e)
                 {
@@ -7578,13 +7961,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void lower_to_bottom(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_lower_to_bottom was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Object)wrapper).LowerToBottom();
+                    ((Object)ws.Target).LowerToBottom();
                 }
                 catch (Exception e)
                 {
@@ -7613,13 +7996,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool seat_event_filter_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_input_seat_event_filter_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetSeatEventFilter(seat);
+                    _ret_var = ((Object)ws.Target).GetSeatEventFilter(seat);
                 }
                 catch (Exception e)
                 {
@@ -7649,13 +8032,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void seat_event_filter_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat, bool enable)
         {
             Eina.Log.Debug("function efl_input_seat_event_filter_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Object)wrapper).SetSeatEventFilter(seat, enable);
+                    ((Object)ws.Target).SetSeatEventFilter(seat, enable);
                 }
                 catch (Exception e)
                 {
@@ -7684,13 +8067,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool mirrored_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_mirrored_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetMirrored();
+                    _ret_var = ((Object)ws.Target).GetMirrored();
                 }
                 catch (Exception e)
                 {
@@ -7720,13 +8103,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mirrored_set(System.IntPtr obj, System.IntPtr pd, bool rtl)
         {
             Eina.Log.Debug("function efl_ui_mirrored_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetMirrored(rtl);
+                    ((Object)ws.Target).SetMirrored(rtl);
                 }
                 catch (Exception e)
                 {
@@ -7755,13 +8138,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static bool mirrored_automatic_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_mirrored_automatic_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetMirroredAutomatic();
+                    _ret_var = ((Object)ws.Target).GetMirroredAutomatic();
                 }
                 catch (Exception e)
                 {
@@ -7791,13 +8174,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void mirrored_automatic_set(System.IntPtr obj, System.IntPtr pd, bool automatic)
         {
             Eina.Log.Debug("function efl_ui_mirrored_automatic_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetMirroredAutomatic(automatic);
+                    ((Object)ws.Target).SetMirroredAutomatic(automatic);
                 }
                 catch (Exception e)
                 {
@@ -7826,13 +8209,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static System.String language_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_language_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetLanguage();
+                    _ret_var = ((Object)ws.Target).GetLanguage();
                 }
                 catch (Exception e)
                 {
@@ -7862,13 +8245,13 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
         private static void language_set(System.IntPtr obj, System.IntPtr pd, System.String language)
         {
             Eina.Log.Debug("function efl_ui_language_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetLanguage(language);
+                    ((Object)ws.Target).SetLanguage(language);
                 }
                 catch (Exception e)
                 {
@@ -7886,7 +8269,7 @@ public abstract class Object : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Canvas.IPoi
 
         private static efl_ui_language_set_delegate efl_ui_language_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -7904,12 +8287,16 @@ public struct ObjectAnimationEvent
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ObjectAnimationEvent(IntPtr ptr)
     {
         var tmp = (ObjectAnimationEvent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ObjectAnimationEvent.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ObjectAnimationEvent.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -7931,6 +8318,8 @@ public struct ObjectAnimationEvent
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -7952,12 +8341,16 @@ public struct EventAnimatorTick
         this.Update_area = Update_area;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator EventAnimatorTick(IntPtr ptr)
     {
         var tmp = (EventAnimatorTick.NativeStruct)Marshal.PtrToStructure(ptr, typeof(EventAnimatorTick.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct EventAnimatorTick.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -7982,6 +8375,8 @@ public struct EventAnimatorTick
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 1e4b516..03658a6 100644 (file)
@@ -28,13 +28,13 @@ bool GetPointerInside(Efl.Input.Device seat);
     }
 /// <summary>Efl Canvas Pointer interface
 /// (Since EFL 1.22)</summary>
-sealed public class IPointerConcrete : 
-
-IPointer
+sealed public class IPointerConcrete :
+    Efl.Eo.EoWrapper
+    , IPointer
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -49,86 +49,12 @@ IPointer
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_canvas_pointer_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IPointer"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPointerConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPointerConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IPointerConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Returns whether the mouse pointer is logically inside the canvas.
@@ -180,7 +106,7 @@ IPointer
             return Efl.Canvas.IPointerConcrete.efl_canvas_pointer_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_canvas_pointer_inside_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.Device seat);
@@ -193,13 +119,13 @@ IPointer
         private static bool pointer_inside_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_canvas_pointer_inside_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPointer)wrapper).GetPointerInside(seat);
+                    _ret_var = ((IPointer)ws.Target).GetPointerInside(seat);
                 }
                 catch (Exception e)
                 {
@@ -218,7 +144,7 @@ IPointer
 
         private static efl_canvas_pointer_inside_get_delegate efl_canvas_pointer_inside_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index bac2787..181a60f 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Low-level polygon object</summary>
 [Efl.Canvas.Polygon.NativeMethods]
-public class Polygon : Efl.Canvas.Object, Efl.Eo.IWrapper
+public class Polygon : Efl.Canvas.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class Polygon : Efl.Canvas.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Polygon(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Polygon"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class Polygon : Efl.Canvas.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Adds the given point to the given evas polygon object.</summary>
     /// <param name="pos">A point coordinate.</param>
     virtual public void AddPoint(Eina.Position2D pos) {
@@ -140,7 +113,7 @@ public class Polygon : Efl.Canvas.Object, Efl.Eo.IWrapper
             return Efl.Canvas.Polygon.efl_canvas_polygon_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_canvas_polygon_point_add_delegate(System.IntPtr obj, System.IntPtr pd,  Eina.Position2D.NativeStruct pos);
@@ -153,14 +126,14 @@ public class Polygon : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static void point_add(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_canvas_polygon_point_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((Polygon)wrapper).AddPoint(_in_pos);
+                    ((Polygon)ws.Target).AddPoint(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -189,13 +162,13 @@ public class Polygon : Efl.Canvas.Object, Efl.Eo.IWrapper
         private static void points_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_polygon_points_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Polygon)wrapper).ClearPoints();
+                    ((Polygon)ws.Target).ClearPoints();
                 }
                 catch (Exception e)
                 {
@@ -213,7 +186,7 @@ public class Polygon : Efl.Canvas.Object, Efl.Eo.IWrapper
 
         private static efl_canvas_polygon_points_clear_delegate efl_canvas_polygon_points_clear_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 55a624d..e7b0e25 100644 (file)
@@ -12,7 +12,7 @@ namespace Canvas {
 /// <summary>Low-level proxy image object.
 /// A proxy is a special kind of image containing the pixels from a source object attached to it. It can be used to apply some sort of image transformation to any object (eg. filters, map or zoom).</summary>
 [Efl.Canvas.Proxy.NativeMethods]
-public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
+public class Proxy : Efl.Canvas.ImageInternal
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Proxy(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Proxy"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,33 +56,6 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The source object for this proxy.
     /// The proxy object will mirror the rendering contents of a given source object in its drawing region, without affecting that source in any way. The source must be another valid <see cref="Efl.Canvas.Object"/>. Other effects may be applied to the proxy, such as a map (see <see cref="Efl.Gfx.IMapping"/>) to create a reflection of the original object (for example).
     /// 
@@ -151,32 +124,32 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>The source object for this proxy.
-/// The proxy object will mirror the rendering contents of a given source object in its drawing region, without affecting that source in any way. The source must be another valid <see cref="Efl.Canvas.Object"/>. Other effects may be applied to the proxy, such as a map (see <see cref="Efl.Gfx.IMapping"/>) to create a reflection of the original object (for example).
-/// 
-/// Any existing source object will be removed after this call.
-/// 
-/// Note: This property should be set as soon as creating a proxy object, otherwise the proxy will do nothing.
-/// 
-/// Warning: You cannot set a proxy as another proxy&apos;s source.</summary>
-/// <value>Source object to use for the proxy.</value>
+    /// The proxy object will mirror the rendering contents of a given source object in its drawing region, without affecting that source in any way. The source must be another valid <see cref="Efl.Canvas.Object"/>. Other effects may be applied to the proxy, such as a map (see <see cref="Efl.Gfx.IMapping"/>) to create a reflection of the original object (for example).
+    /// 
+    /// Any existing source object will be removed after this call.
+    /// 
+    /// Note: This property should be set as soon as creating a proxy object, otherwise the proxy will do nothing.
+    /// 
+    /// Warning: You cannot set a proxy as another proxy&apos;s source.</summary>
+    /// <value>Source object to use for the proxy.</value>
     public Efl.Canvas.Object Source {
         get { return GetSource(); }
         set { SetSource(value); }
     }
     /// <summary>Clip this proxy object with the source object&apos;s clipper.
-/// Use this if you want to overlay an existing object with its proxy, and apply some sort of transformation on it.
-/// 
-/// <c>true</c> means both objects will share the same clip.</summary>
-/// <value>Whether <c>obj</c> is clipped by the source clipper (<c>true</c>) or not (<c>false</c>).</value>
+    /// Use this if you want to overlay an existing object with its proxy, and apply some sort of transformation on it.
+    /// 
+    /// <c>true</c> means both objects will share the same clip.</summary>
+    /// <value>Whether <c>obj</c> is clipped by the source clipper (<c>true</c>) or not (<c>false</c>).</value>
     public bool SourceClip {
         get { return GetSourceClip(); }
         set { SetSourceClip(value); }
     }
     /// <summary>Defines whether the events on this object are repeated to the source.
-/// If <c>source</c> is <c>true</c>, it will make events on <c>obj</c> to also be repeated for the source object (see <see cref="Efl.Canvas.Proxy.SetSource"/>). Even the <c>obj</c> and source geometries are different, the event position will be transformed to the source object&apos;s space.
-/// 
-/// If <c>source</c> is <c>false</c>, events occurring on <c>obj</c> will be processed only on it.</summary>
-/// <value>Whether this object should pass events (<c>true</c>) or not (<c>false</c>) to its source.</value>
+    /// If <c>source</c> is <c>true</c>, it will make events on <c>obj</c> to also be repeated for the source object (see <see cref="Efl.Canvas.Proxy.SetSource"/>). Even the <c>obj</c> and source geometries are different, the event position will be transformed to the source object&apos;s space.
+    /// 
+    /// If <c>source</c> is <c>false</c>, events occurring on <c>obj</c> will be processed only on it.</summary>
+    /// <value>Whether this object should pass events (<c>true</c>) or not (<c>false</c>) to its source.</value>
     public bool SourceEvents {
         get { return GetSourceEvents(); }
         set { SetSourceEvents(value); }
@@ -267,7 +240,7 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
             return Efl.Canvas.Proxy.efl_canvas_proxy_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Canvas.Object efl_canvas_proxy_source_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -280,13 +253,13 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
         private static Efl.Canvas.Object source_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_proxy_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Proxy)wrapper).GetSource();
+                    _ret_var = ((Proxy)ws.Target).GetSource();
                 }
                 catch (Exception e)
                 {
@@ -316,13 +289,13 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
         private static bool source_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object src)
         {
             Eina.Log.Debug("function efl_canvas_proxy_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Proxy)wrapper).SetSource(src);
+                    _ret_var = ((Proxy)ws.Target).SetSource(src);
                 }
                 catch (Exception e)
                 {
@@ -352,13 +325,13 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
         private static bool source_clip_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_proxy_source_clip_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Proxy)wrapper).GetSourceClip();
+                    _ret_var = ((Proxy)ws.Target).GetSourceClip();
                 }
                 catch (Exception e)
                 {
@@ -388,13 +361,13 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
         private static void source_clip_set(System.IntPtr obj, System.IntPtr pd, bool source_clip)
         {
             Eina.Log.Debug("function efl_canvas_proxy_source_clip_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Proxy)wrapper).SetSourceClip(source_clip);
+                    ((Proxy)ws.Target).SetSourceClip(source_clip);
                 }
                 catch (Exception e)
                 {
@@ -423,13 +396,13 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
         private static bool source_events_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_proxy_source_events_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Proxy)wrapper).GetSourceEvents();
+                    _ret_var = ((Proxy)ws.Target).GetSourceEvents();
                 }
                 catch (Exception e)
                 {
@@ -459,13 +432,13 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
         private static void source_events_set(System.IntPtr obj, System.IntPtr pd, bool repeat)
         {
             Eina.Log.Debug("function efl_canvas_proxy_source_events_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Proxy)wrapper).SetSourceEvents(repeat);
+                    ((Proxy)ws.Target).SetSourceEvents(repeat);
                 }
                 catch (Exception e)
                 {
@@ -483,7 +456,7 @@ public class Proxy : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
 
         private static efl_canvas_proxy_source_events_set_delegate efl_canvas_proxy_source_events_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 36263eb..589d9bd 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Evas canvas rectangle class</summary>
 [Efl.Canvas.Rectangle.NativeMethods]
-public class Rectangle : Efl.Canvas.Object, Efl.Eo.IWrapper
+public class Rectangle : Efl.Canvas.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class Rectangle : Efl.Canvas.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Rectangle(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Rectangle"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class Rectangle : Efl.Canvas.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Canvas.Rectangle.efl_canvas_rectangle_class_get();
@@ -105,9 +78,9 @@ public class Rectangle : Efl.Canvas.Object, Efl.Eo.IWrapper
             return Efl.Canvas.Rectangle.efl_canvas_rectangle_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index c33ce54..471d1ed 100644 (file)
@@ -124,17 +124,17 @@ Eina.Iterator<Efl.Input.Device> Seats();
     /// (Since EFL 1.22)</summary>
     event EventHandler<Efl.Canvas.ISceneDeviceRemovedEvt_Args> DeviceRemovedEvt;
     /// <summary>Get if the canvas is currently calculating group objects.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if currently calculating group objects.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if currently calculating group objects.</value>
     bool GroupObjectsCalculating {
         get ;
     }
     /// <summary>Get the default seat attached to this canvas.
-/// A canvas may have exactly one default seat.
-/// 
-/// See also <see cref="Efl.Canvas.IScene.GetDevice"/> to find a seat by name. See also <see cref="Efl.Canvas.IScene.GetSeat"/> to find a seat by id.
-/// (Since EFL 1.22)</summary>
-/// <value>The default seat or <c>null</c> if one does not exist.</value>
+    /// A canvas may have exactly one default seat.
+    /// 
+    /// See also <see cref="Efl.Canvas.IScene.GetDevice"/> to find a seat by name. See also <see cref="Efl.Canvas.IScene.GetSeat"/> to find a seat by id.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The default seat or <c>null</c> if one does not exist.</value>
     Efl.Input.Device SeatDefault {
         get ;
     }
@@ -181,13 +181,13 @@ public class ISceneDeviceRemovedEvt_Args : EventArgs {
 }
 /// <summary>Interface containing basic canvas-related methods and events.
 /// (Since EFL 1.22)</summary>
-sealed public class ISceneConcrete : 
-
-IScene
+sealed public class ISceneConcrete :
+    Efl.Eo.EoWrapper
+    , IScene
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -202,155 +202,12 @@ IScene
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_canvas_scene_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IScene"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ISceneConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ISceneConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
+    private ISceneConcrete(System.IntPtr raw) : base(raw)
     {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when scene got focus
@@ -361,13 +218,12 @@ IScene
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneSceneFocusInEvt_Args args = new Efl.Canvas.ISceneSceneFocusInEvt_Args();
+                        Efl.Canvas.ISceneSceneFocusInEvt_Args args = new Efl.Canvas.ISceneSceneFocusInEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -417,13 +273,12 @@ IScene
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneSceneFocusOutEvt_Args args = new Efl.Canvas.ISceneSceneFocusOutEvt_Args();
+                        Efl.Canvas.ISceneSceneFocusOutEvt_Args args = new Efl.Canvas.ISceneSceneFocusOutEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -473,13 +328,12 @@ IScene
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneObjectFocusInEvt_Args args = new Efl.Canvas.ISceneObjectFocusInEvt_Args();
+                        Efl.Canvas.ISceneObjectFocusInEvt_Args args = new Efl.Canvas.ISceneObjectFocusInEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -529,13 +383,12 @@ IScene
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneObjectFocusOutEvt_Args args = new Efl.Canvas.ISceneObjectFocusOutEvt_Args();
+                        Efl.Canvas.ISceneObjectFocusOutEvt_Args args = new Efl.Canvas.ISceneObjectFocusOutEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -585,10 +438,9 @@ IScene
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -639,13 +491,12 @@ IScene
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneRenderPostEvt_Args args = new Efl.Canvas.ISceneRenderPostEvt_Args();
+                        Efl.Canvas.ISceneRenderPostEvt_Args args = new Efl.Canvas.ISceneRenderPostEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -703,13 +554,12 @@ IScene
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneDeviceChangedEvt_Args args = new Efl.Canvas.ISceneDeviceChangedEvt_Args();
+                        Efl.Canvas.ISceneDeviceChangedEvt_Args args = new Efl.Canvas.ISceneDeviceChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Device);
                         try
                         {
@@ -759,13 +609,12 @@ IScene
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneDeviceAddedEvt_Args args = new Efl.Canvas.ISceneDeviceAddedEvt_Args();
+                        Efl.Canvas.ISceneDeviceAddedEvt_Args args = new Efl.Canvas.ISceneDeviceAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Device);
                         try
                         {
@@ -815,13 +664,12 @@ IScene
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneDeviceRemovedEvt_Args args = new Efl.Canvas.ISceneDeviceRemovedEvt_Args();
+                        Efl.Canvas.ISceneDeviceRemovedEvt_Args args = new Efl.Canvas.ISceneDeviceRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Device);
                         try
                         {
@@ -1000,17 +848,17 @@ IScene
         return new Eina.Iterator<Efl.Input.Device>(_ret_var, true, false);
  }
     /// <summary>Get if the canvas is currently calculating group objects.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if currently calculating group objects.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if currently calculating group objects.</value>
     public bool GroupObjectsCalculating {
         get { return GetGroupObjectsCalculating(); }
     }
     /// <summary>Get the default seat attached to this canvas.
-/// A canvas may have exactly one default seat.
-/// 
-/// See also <see cref="Efl.Canvas.IScene.GetDevice"/> to find a seat by name. See also <see cref="Efl.Canvas.IScene.GetSeat"/> to find a seat by id.
-/// (Since EFL 1.22)</summary>
-/// <value>The default seat or <c>null</c> if one does not exist.</value>
+    /// A canvas may have exactly one default seat.
+    /// 
+    /// See also <see cref="Efl.Canvas.IScene.GetDevice"/> to find a seat by name. See also <see cref="Efl.Canvas.IScene.GetSeat"/> to find a seat by id.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The default seat or <c>null</c> if one does not exist.</value>
     public Efl.Input.Device SeatDefault {
         get { return GetSeatDefault(); }
     }
@@ -1159,7 +1007,7 @@ IScene
             return Efl.Canvas.ISceneConcrete.efl_canvas_scene_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_canvas_scene_image_max_size_get_delegate(System.IntPtr obj, System.IntPtr pd,  out Eina.Size2D.NativeStruct max);
@@ -1172,14 +1020,14 @@ IScene
         private static bool image_max_size_get(System.IntPtr obj, System.IntPtr pd, out Eina.Size2D.NativeStruct max)
         {
             Eina.Log.Debug("function efl_canvas_scene_image_max_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Size2D _out_max = default(Eina.Size2D);
                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).GetImageMaxSize(out _out_max);
+                    _ret_var = ((IScene)ws.Target).GetImageMaxSize(out _out_max);
                 }
                 catch (Exception e)
                 {
@@ -1210,13 +1058,13 @@ IScene
         private static bool group_objects_calculating_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_scene_group_objects_calculating_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).GetGroupObjectsCalculating();
+                    _ret_var = ((IScene)ws.Target).GetGroupObjectsCalculating();
                 }
                 catch (Exception e)
                 {
@@ -1246,13 +1094,13 @@ IScene
         private static Efl.Input.Device device_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_canvas_scene_device_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).GetDevice(name);
+                    _ret_var = ((IScene)ws.Target).GetDevice(name);
                 }
                 catch (Exception e)
                 {
@@ -1282,13 +1130,13 @@ IScene
         private static Efl.Input.Device seat_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_canvas_scene_seat_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).GetSeat(id);
+                    _ret_var = ((IScene)ws.Target).GetSeat(id);
                 }
                 catch (Exception e)
                 {
@@ -1318,13 +1166,13 @@ IScene
         private static Efl.Input.Device seat_default_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_scene_seat_default_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).GetSeatDefault();
+                    _ret_var = ((IScene)ws.Target).GetSeatDefault();
                 }
                 catch (Exception e)
                 {
@@ -1354,14 +1202,14 @@ IScene
         private static bool pointer_position_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat, out Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_canvas_scene_pointer_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 Eina.Position2D _out_pos = default(Eina.Position2D);
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).GetPointerPosition(seat, out _out_pos);
+                    _ret_var = ((IScene)ws.Target).GetPointerPosition(seat, out _out_pos);
                 }
                 catch (Exception e)
                 {
@@ -1392,13 +1240,13 @@ IScene
         private static void group_objects_calculate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_scene_group_objects_calculate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IScene)wrapper).CalculateGroupObjects();
+                    ((IScene)ws.Target).CalculateGroupObjects();
                 }
                 catch (Exception e)
                 {
@@ -1427,14 +1275,14 @@ IScene
         private static System.IntPtr objects_at_xy_get(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos, bool include_pass_events_objects, bool include_hidden_objects)
         {
             Eina.Log.Debug("function efl_canvas_scene_objects_at_xy_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                                                                             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).GetObjectsAtXy(_in_pos, include_pass_events_objects, include_hidden_objects);
+                    _ret_var = ((IScene)ws.Target).GetObjectsAtXy(_in_pos, include_pass_events_objects, include_hidden_objects);
                 }
                 catch (Exception e)
                 {
@@ -1464,14 +1312,14 @@ IScene
         private static Efl.Gfx.IEntity object_top_at_xy_get(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos, bool include_pass_events_objects, bool include_hidden_objects)
         {
             Eina.Log.Debug("function efl_canvas_scene_object_top_at_xy_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                                                                             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).GetObjectTopAtXy(_in_pos, include_pass_events_objects, include_hidden_objects);
+                    _ret_var = ((IScene)ws.Target).GetObjectTopAtXy(_in_pos, include_pass_events_objects, include_hidden_objects);
                 }
                 catch (Exception e)
                 {
@@ -1501,14 +1349,14 @@ IScene
         private static System.IntPtr objects_in_rectangle_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool include_pass_events_objects, bool include_hidden_objects)
         {
             Eina.Log.Debug("function efl_canvas_scene_objects_in_rectangle_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                                             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).GetObjectsInRectangle(_in_rect, include_pass_events_objects, include_hidden_objects);
+                    _ret_var = ((IScene)ws.Target).GetObjectsInRectangle(_in_rect, include_pass_events_objects, include_hidden_objects);
                 }
                 catch (Exception e)
                 {
@@ -1538,14 +1386,14 @@ IScene
         private static Efl.Gfx.IEntity object_top_in_rectangle_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool include_pass_events_objects, bool include_hidden_objects)
         {
             Eina.Log.Debug("function efl_canvas_scene_object_top_in_rectangle_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                                             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).GetObjectTopInRectangle(_in_rect, include_pass_events_objects, include_hidden_objects);
+                    _ret_var = ((IScene)ws.Target).GetObjectTopInRectangle(_in_rect, include_pass_events_objects, include_hidden_objects);
                 }
                 catch (Exception e)
                 {
@@ -1575,13 +1423,13 @@ IScene
         private static System.IntPtr seats(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_scene_seats was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Input.Device> _ret_var = default(Eina.Iterator<Efl.Input.Device>);
                 try
                 {
-                    _ret_var = ((IScene)wrapper).Seats();
+                    _ret_var = ((IScene)ws.Target).Seats();
                 }
                 catch (Exception e)
                 {
@@ -1600,7 +1448,7 @@ IScene
 
         private static efl_canvas_scene_seats_delegate efl_canvas_scene_seats_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index b7f5883..08c839a 100644 (file)
@@ -12,7 +12,7 @@ namespace Canvas {
 /// <summary>Low-level snapshot image object.
 /// A snapshot is a special kind of image containing the pixels from all the objects below it. This allows applications to save screenshots of all or part of their UI, or apply filters to parts of the UI.</summary>
 [Efl.Canvas.Snapshot.NativeMethods]
-public class Snapshot : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
+public class Snapshot : Efl.Canvas.ImageInternal
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class Snapshot : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Snapshot(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Snapshot"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,33 +56,6 @@ public class Snapshot : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Canvas.Snapshot.efl_canvas_snapshot_class_get();
@@ -106,9 +79,9 @@ public class Snapshot : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
             return Efl.Canvas.Snapshot.efl_canvas_snapshot_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3b41cf0..7a65d28 100644 (file)
@@ -12,7 +12,7 @@ namespace Canvas {
 /// <summary>Native surfaces usually bound to an externally-managed buffer.
 /// The attached <see cref="Efl.Canvas.Surface.NativeBuffer"/> is entirely platform-dependent, which means some of this mixin&apos;s subclasses will not work (constructor returns <c>null</c>) on some platforms. This class is meant to be used from native code only (C or C++), with direct access to the display system or a buffer allocation system.</summary>
 [Efl.Canvas.Surface.NativeMethods]
-public abstract class Surface : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
+public abstract class Surface : Efl.Canvas.ImageInternal
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public abstract class Surface : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Surface(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class SurfaceRealized : Surface
@@ -63,33 +63,6 @@ public abstract class Surface : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>External buffer attached to this native surface.
     /// Set to <c>null</c> to detach this surface from the external buffer.</summary>
     /// <returns>The external buffer, depends on its type.</returns>
@@ -107,8 +80,8 @@ public abstract class Surface : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
                         return _ret_var;
  }
     /// <summary>External buffer attached to this native surface.
-/// Set to <c>null</c> to detach this surface from the external buffer.</summary>
-/// <value>The external buffer, depends on its type.</value>
+    /// Set to <c>null</c> to detach this surface from the external buffer.</summary>
+    /// <value>The external buffer, depends on its type.</value>
     public System.IntPtr NativeBuffer {
         get { return GetNativeBuffer(); }
         set { SetNativeBuffer(value); }
@@ -159,7 +132,7 @@ public abstract class Surface : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
             return Efl.Canvas.Surface.efl_canvas_surface_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_canvas_surface_native_buffer_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -172,13 +145,13 @@ public abstract class Surface : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
         private static System.IntPtr native_buffer_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_surface_native_buffer_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((Surface)wrapper).GetNativeBuffer();
+                    _ret_var = ((Surface)ws.Target).GetNativeBuffer();
                 }
                 catch (Exception e)
                 {
@@ -208,13 +181,13 @@ public abstract class Surface : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
         private static bool native_buffer_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr buffer)
         {
             Eina.Log.Debug("function efl_canvas_surface_native_buffer_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Surface)wrapper).SetNativeBuffer(buffer);
+                    _ret_var = ((Surface)ws.Target).SetNativeBuffer(buffer);
                 }
                 catch (Exception e)
                 {
@@ -233,7 +206,7 @@ public abstract class Surface : Efl.Canvas.ImageInternal, Efl.Eo.IWrapper
 
         private static efl_canvas_surface_native_buffer_set_delegate efl_canvas_surface_native_buffer_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e8505f1..ceeb655 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Native Tizen Buffer Manager surface for Efl canvas</summary>
 [Efl.Canvas.SurfaceTbm.NativeMethods]
-public class SurfaceTbm : Efl.Canvas.Surface, Efl.Eo.IWrapper
+public class SurfaceTbm : Efl.Canvas.Surface
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class SurfaceTbm : Efl.Canvas.Surface, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected SurfaceTbm(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="SurfaceTbm"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class SurfaceTbm : Efl.Canvas.Surface, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Canvas.SurfaceTbm.efl_canvas_surface_tbm_class_get();
@@ -105,9 +78,9 @@ public class SurfaceTbm : Efl.Canvas.Surface, Efl.Eo.IWrapper
             return Efl.Canvas.SurfaceTbm.efl_canvas_surface_tbm_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 46047ac..1936cd6 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Native Wayland surface for Efl canvas</summary>
 [Efl.Canvas.SurfaceWayland.NativeMethods]
-public class SurfaceWayland : Efl.Canvas.Surface, Efl.Eo.IWrapper
+public class SurfaceWayland : Efl.Canvas.Surface
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class SurfaceWayland : Efl.Canvas.Surface, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected SurfaceWayland(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="SurfaceWayland"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class SurfaceWayland : Efl.Canvas.Surface, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Canvas.SurfaceWayland.efl_canvas_surface_wayland_class_get();
@@ -105,9 +78,9 @@ public class SurfaceWayland : Efl.Canvas.Surface, Efl.Eo.IWrapper
             return Efl.Canvas.SurfaceWayland.efl_canvas_surface_wayland_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 0c7c629..22d3c90 100644 (file)
@@ -11,7 +11,7 @@ namespace Canvas {
 
 /// <summary>Native X11 surface for Efl canvas</summary>
 [Efl.Canvas.SurfaceX11.NativeMethods]
-public class SurfaceX11 : Efl.Canvas.Surface, Efl.Eo.IWrapper
+public class SurfaceX11 : Efl.Canvas.Surface
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class SurfaceX11 : Efl.Canvas.Surface, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected SurfaceX11(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="SurfaceX11"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class SurfaceX11 : Efl.Canvas.Surface, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>This is a helper for <see cref="Efl.Canvas.Surface.NativeBuffer"/>.</summary>
     /// <param name="visual">X11 Visual for this Pixmap.</param>
     /// <param name="pixmap">X11 Pixmap ID.</param>
@@ -144,7 +117,7 @@ public class SurfaceX11 : Efl.Canvas.Surface, Efl.Eo.IWrapper
             return Efl.Canvas.SurfaceX11.efl_canvas_surface_x11_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_canvas_surface_x11_pixmap_get_delegate(System.IntPtr obj, System.IntPtr pd,  out System.IntPtr visual,  out uint pixmap);
@@ -157,13 +130,13 @@ public class SurfaceX11 : Efl.Canvas.Surface, Efl.Eo.IWrapper
         private static void pixmap_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr visual, out uint pixmap)
         {
             Eina.Log.Debug("function efl_canvas_surface_x11_pixmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         visual = default(System.IntPtr);        pixmap = default(uint);                            
                 try
                 {
-                    ((SurfaceX11)wrapper).GetPixmap(out visual, out pixmap);
+                    ((SurfaceX11)ws.Target).GetPixmap(out visual, out pixmap);
                 }
                 catch (Exception e)
                 {
@@ -192,13 +165,13 @@ public class SurfaceX11 : Efl.Canvas.Surface, Efl.Eo.IWrapper
         private static bool pixmap_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr visual, uint pixmap)
         {
             Eina.Log.Debug("function efl_canvas_surface_x11_pixmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((SurfaceX11)wrapper).SetPixmap(visual, pixmap);
+                    _ret_var = ((SurfaceX11)ws.Target).SetPixmap(visual, pixmap);
                 }
                 catch (Exception e)
                 {
@@ -217,7 +190,7 @@ public class SurfaceX11 : Efl.Canvas.Surface, Efl.Eo.IWrapper
 
         private static efl_canvas_surface_x11_pixmap_set_delegate efl_canvas_surface_x11_pixmap_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -246,12 +219,16 @@ public struct SurfaceX11Pixmap
         this.Pixmap = Pixmap;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator SurfaceX11Pixmap(IntPtr ptr)
     {
         var tmp = (SurfaceX11Pixmap.NativeStruct)Marshal.PtrToStructure(ptr, typeof(SurfaceX11Pixmap.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct SurfaceX11Pixmap.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -280,6 +257,8 @@ public struct SurfaceX11Pixmap
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_text.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_text.eo.cs
new file mode 100644 (file)
index 0000000..f3f1d52
--- /dev/null
@@ -0,0 +1,8920 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>Efl canvas text class</summary>
+[Efl.Canvas.Text.NativeMethods]
+public class Text : Efl.Canvas.Object, Efl.IText, Efl.ITextAnnotate, Efl.ITextCursor, Efl.ITextFont, Efl.ITextFormat, Efl.ITextMarkup, Efl.ITextMarkupInteractive, Efl.ITextStyle, Efl.Canvas.Filter.IInternal, Efl.Gfx.IFilter
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(Text))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_text_class_get();
+    /// <summary>Initializes a new instance of the <see cref="Text"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public Text(Efl.Object parent= null
+            ) : base(efl_canvas_text_class_get(), typeof(Text), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="Text"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected Text(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="Text"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected Text(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Called when cursor changed</summary>
+    public event EventHandler CursorChangedEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        EventArgs args = EventArgs.Empty;
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_CANVAS_TEXT_EVENT_CURSOR_CHANGED";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_CANVAS_TEXT_EVENT_CURSOR_CHANGED";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event CursorChangedEvt.</summary>
+    public void OnCursorChangedEvt(EventArgs e)
+    {
+        var key = "_EFL_CANVAS_TEXT_EVENT_CURSOR_CHANGED";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
+    }
+    /// <summary>Called when canvas text changed</summary>
+    public event EventHandler ChangedEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        EventArgs args = EventArgs.Empty;
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_CANVAS_TEXT_EVENT_CHANGED";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_CANVAS_TEXT_EVENT_CHANGED";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event ChangedEvt.</summary>
+    public void OnChangedEvt(EventArgs e)
+    {
+        var key = "_EFL_CANVAS_TEXT_EVENT_CHANGED";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
+    }
+    /// <summary>Called when the property <see cref="Efl.Canvas.Text.GetStyleInsets"/> changed.</summary>
+    public event EventHandler StyleInsetsChangedEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        EventArgs args = EventArgs.Empty;
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_CANVAS_TEXT_EVENT_STYLE_INSETS_CHANGED";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_CANVAS_TEXT_EVENT_STYLE_INSETS_CHANGED";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event StyleInsetsChangedEvt.</summary>
+    public void OnStyleInsetsChangedEvt(EventArgs e)
+    {
+        var key = "_EFL_CANVAS_TEXT_EVENT_STYLE_INSETS_CHANGED";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
+    }
+    /// <summary>Whether the object is empty (no text) or not</summary>
+    /// <returns><c>true</c> if empty, <c>false</c> otherwise</returns>
+    virtual public bool GetIsEmpty() {
+         var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_is_empty_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Gets the left, right, top and bottom insets of the text.
+    /// The inset is any applied padding on the text.</summary>
+    /// <param name="l">Left padding</param>
+    /// <param name="r">Right padding</param>
+    /// <param name="t">Top padding</param>
+    /// <param name="b">Bottom padding</param>
+    virtual public void GetStyleInsets(out int l, out int r, out int t, out int b) {
+                                                                                                         Efl.Canvas.Text.NativeMethods.efl_canvas_text_style_insets_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out l, out r, out t, out b);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>BiDi delimiters are used for in-paragraph separation of bidi segments. This is useful, for example, in the recipient fields of e-mail clients where bidi oddities can occur when mixing RTL and LTR.</summary>
+    /// <returns>A null terminated string of delimiters, e.g &quot;,|&quot; or <c>null</c> if empty</returns>
+    virtual public System.String GetBidiDelimiters() {
+         var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_bidi_delimiters_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>BiDi delimiters are used for in-paragraph separation of bidi segments. This is useful, for example, in the recipient fields of e-mail clients where bidi oddities can occur when mixing RTL and LTR.</summary>
+    /// <param name="delim">A null terminated string of delimiters, e.g &quot;,|&quot; or <c>null</c> if empty</param>
+    virtual public void SetBidiDelimiters(System.String delim) {
+                                 Efl.Canvas.Text.NativeMethods.efl_canvas_text_bidi_delimiters_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),delim);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>When <c>true</c>, newline character will behave as a paragraph separator.</summary>
+    /// <returns><c>true</c> for legacy mode, <c>false</c> otherwise</returns>
+    virtual public bool GetLegacyNewline() {
+         var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_legacy_newline_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>When <c>true</c>, newline character will behave as a paragraph separator.</summary>
+    /// <param name="mode"><c>true</c> for legacy mode, <c>false</c> otherwise</param>
+    virtual public void SetLegacyNewline(bool mode) {
+                                 Efl.Canvas.Text.NativeMethods.efl_canvas_text_legacy_newline_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),mode);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>The text style of the object.
+    /// <c>key</c> is how you reference the style (for deletion or fetching). <c>NULL</c> as key indicates the style has the highest priority (default style). The style priority is the order of creation, styles created first are applied first with the exception of <c>NULL</c> which is implicitly first.
+    /// 
+    /// Set <c>style</c> to <c>NULL</c> to delete it.</summary>
+    /// <param name="key">The name to the style. <c>NULL</c> is the default style</param>
+    /// <returns>The style</returns>
+    virtual public System.String GetStyle(System.String key) {
+                                 var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_style_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),key);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>The text style of the object.
+    /// <c>key</c> is how you reference the style (for deletion or fetching). <c>NULL</c> as key indicates the style has the highest priority (default style). The style priority is the order of creation, styles created first are applied first with the exception of <c>NULL</c> which is implicitly first.
+    /// 
+    /// Set <c>style</c> to <c>NULL</c> to delete it.</summary>
+    /// <param name="key">The name to the style. <c>NULL</c> is the default style</param>
+    /// <param name="style">The style</param>
+    virtual public void SetStyle(System.String key, System.String style) {
+                                                         Efl.Canvas.Text.NativeMethods.efl_canvas_text_style_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),key, style);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>The formatted width and height.
+    /// This calculates the actual size after restricting the textblock to the current size of the object.
+    /// 
+    /// The main difference between this and <see cref="Efl.Canvas.Text.GetSizeNative"/> is that the &quot;native&quot; function does not wrapping into account it just calculates the real width of the object if it was placed on an infinite canvas, while this function gives the size after wrapping according to the size restrictions of the object.
+    /// 
+    /// For example for a textblock containing the text: &quot;You shall not pass!&quot; with no margins or padding and assuming a monospace font and a size of 7x10 char widths (for simplicity) has a native size of 19x1 and a formatted size of 5x4.</summary>
+    /// <param name="w">The width of the object.</param>
+    /// <param name="h">The height of the object.</param>
+    virtual public void GetSizeFormatted(out int w, out int h) {
+                                                         Efl.Canvas.Text.NativeMethods.efl_canvas_text_size_formatted_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out w, out h);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>The native width and height.
+    /// This calculates the actual size without taking account the current size of the object.
+    /// 
+    /// The main difference between this and <see cref="Efl.Canvas.Text.GetSizeFormatted"/> is that the &quot;native&quot; function does not take wrapping into account it just calculates the real width of the object if it was placed on an infinite canvas, while the &quot;formatted&quot; function gives the size after  wrapping text according to the size restrictions of the object.
+    /// 
+    /// For example for a textblock containing the text: &quot;You shall not pass!&quot; with no margins or padding and assuming a monospace font and a size of 7x10 char widths (for simplicity) has a native size of 19x1 and a formatted size of 5x4.</summary>
+    /// <param name="w">The width returned.</param>
+    /// <param name="h">The height returned.</param>
+    virtual public void GetSizeNative(out int w, out int h) {
+                                                         Efl.Canvas.Text.NativeMethods.efl_canvas_text_size_native_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out w, out h);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Returns the currently visible range.
+    /// The given <c>start</c> and <c>end</c> cursor act like out-variables here, as they are set to the positions of the start and the end of the visible range in the text, respectively.</summary>
+    /// <param name="start">Range start position</param>
+    /// <param name="end">Range end position</param>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    virtual public bool GetVisibleRange(Efl.TextCursorCursor start, Efl.TextCursorCursor end) {
+                                                         var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_visible_range_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),start, end);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>Returns the text in the range between <c>cur1</c> and <c>cur2</c>.</summary>
+    /// <param name="cur1">Start of range</param>
+    /// <param name="cur2">End of range</param>
+    /// <returns>The text in the given range</returns>
+    virtual public System.String GetRangeText(Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2) {
+                                                         var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_range_text_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur1, cur2);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>Get the geometry of a range in the text.
+    /// The geometry is represented as rectangles for each of the line segments in the given range [<c>cur1</c>, <c>cur2</c>].</summary>
+    /// <param name="cur1">Start of range</param>
+    /// <param name="cur2">End of range</param>
+    /// <returns>Iterator on all geoemtries of the given range</returns>
+    virtual public Eina.Iterator<Eina.Rect> GetRangeGeometry(Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2) {
+                                                         var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_range_geometry_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur1, cur2);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return new Eina.Iterator<Eina.Rect>(_ret_var, true, false);
+ }
+    /// <summary>Get the &quot;simple&quot; geometry of a range.
+    /// The geometry is the geometry in which rectangles in middle lines of range are merged into one big rectangle. This is an optimized version of <see cref="Efl.Canvas.Text.GetRangeGeometry"/>.</summary>
+    /// <param name="cur1">Start of range</param>
+    /// <param name="cur2">End of range</param>
+    /// <returns>Iterator on all simple geometries of the given range</returns>
+    virtual public Eina.Iterator<Eina.Rect> GetRangeSimpleGeometry(Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2) {
+                                                         var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_range_simple_geometry_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur1, cur2);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return new Eina.Iterator<Eina.Rect>(_ret_var, true, false);
+ }
+    /// <summary>Deletes the range between given cursors.
+    /// This removes all the text in given range [<c>start</c>,<c>end</c>].</summary>
+    /// <param name="cur1">Range start position</param>
+    /// <param name="cur2">Range end position</param>
+    virtual public void RangeDelete(Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2) {
+                                                         Efl.Canvas.Text.NativeMethods.efl_canvas_text_range_delete_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur1, cur2);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Add obstacle evas object <c>eo_obs</c> to be observed during layout of text.
+    /// The textblock does the layout of the text according to the position of the obstacle.</summary>
+    /// <param name="eo_obs">Obstacle object</param>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
+    virtual public bool AddObstacle(Efl.Canvas.Object eo_obs) {
+                                 var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_obstacle_add_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),eo_obs);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Removes <c>eo_obs</c> from observation during text layout.</summary>
+    /// <param name="eo_obs">Obstacle object</param>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
+    virtual public bool DelObstacle(Efl.Canvas.Object eo_obs) {
+                                 var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_obstacle_del_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),eo_obs);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Triggers for relayout due to obstacles&apos; state change.
+    /// The obstacles alone don&apos;t affect the layout, until this is called. Use this after doing changes (moving, positioning etc.) in the obstacles that you  would like to be considered in the layout.
+    /// 
+    /// For example: if you have just repositioned the obstacles to differrent coordinates relative to the textblock, you need to call this so it will consider this new state and will relayout the text.</summary>
+    virtual public void UpdateObstacles() {
+         Efl.Canvas.Text.NativeMethods.efl_canvas_text_obstacles_update_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+         }
+    /// <summary>Requests to layout the text off the mainloop.
+    /// Once layout is complete, the result is returned as <see cref="Eina.Rect"/>, with w, h fields set.</summary>
+    /// <returns>Future for layout result</returns>
+    virtual public  Eina.Future AsyncLayout() {
+         var _ret_var = Efl.Canvas.Text.NativeMethods.efl_canvas_text_async_layout_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Retrieves the text string currently being displayed by the given text object.
+    /// Do not free() the return value.
+    /// 
+    /// See also <see cref="Efl.IText.GetText"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <returns>Text string to display on it.</returns>
+    virtual public System.String GetText() {
+         var _ret_var = Efl.ITextConcrete.NativeMethods.efl_text_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Sets the text string to be displayed by the given text object.
+    /// See also <see cref="Efl.IText.GetText"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <param name="text">Text string to display on it.</param>
+    virtual public void SetText(System.String text) {
+                                 Efl.ITextConcrete.NativeMethods.efl_text_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),text);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>A new format for <c>annotation</c>.
+    /// This will replace the format applied by <c>annotation</c> with <c>format</c>. Assumes that <c>annotation</c> is a handle for an existing annotation, i.e. one that was added using <see cref="Efl.ITextAnnotate.AnnotationInsert"/> to this object. Otherwise, this will fail and return <c>false</c>.</summary>
+    /// <param name="annotation">Given annotation</param>
+    /// <returns>The new format for the given annotation</returns>
+    virtual public System.String GetAnnotation(Efl.TextAnnotateAnnotation annotation) {
+                                 var _ret_var = Efl.ITextAnnotateConcrete.NativeMethods.efl_text_annotation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),annotation);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>A new format for <c>annotation</c>.
+    /// This will replace the format applied by <c>annotation</c> with <c>format</c>. Assumes that <c>annotation</c> is a handle for an existing annotation, i.e. one that was added using <see cref="Efl.ITextAnnotate.AnnotationInsert"/> to this object. Otherwise, this will fail and return <c>false</c>.</summary>
+    /// <param name="annotation">Given annotation</param>
+    /// <param name="format">The new format for the given annotation</param>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
+    virtual public bool SetAnnotation(Efl.TextAnnotateAnnotation annotation, System.String format) {
+                                                         var _ret_var = Efl.ITextAnnotateConcrete.NativeMethods.efl_text_annotation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),annotation, format);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>The object-item annotation at the cursor&apos;s position.</summary>
+    /// <param name="cur">Cursor object</param>
+    /// <returns>Annotation</returns>
+    virtual public Efl.TextAnnotateAnnotation GetCursorItemAnnotation(Efl.TextCursorCursor cur) {
+                                 var _ret_var = Efl.ITextAnnotateConcrete.NativeMethods.efl_text_cursor_item_annotation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Returns an iterator of all the handles in a range.</summary>
+    /// <param name="start">Start of range</param>
+    /// <param name="end">End of range</param>
+    /// <returns>Handle of the Annotation</returns>
+    virtual public Eina.Iterator<Efl.TextAnnotateAnnotation> GetRangeAnnotations(Efl.TextCursorCursor start, Efl.TextCursorCursor end) {
+                                                         var _ret_var = Efl.ITextAnnotateConcrete.NativeMethods.efl_text_range_annotations_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),start, end);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return new Eina.Iterator<Efl.TextAnnotateAnnotation>(_ret_var, true, false);
+ }
+    /// <summary>Inserts an annotation format in a specified range [<c>start</c>, <c>end</c> - 1].
+    /// The <c>format</c> will be applied to the given range, and the <c>annotation</c> handle will be returned for further handling.</summary>
+    /// <param name="start">Start of range</param>
+    /// <param name="end">End of range</param>
+    /// <param name="format">Annotation format</param>
+    /// <returns>Handle of inserted annotation</returns>
+    virtual public Efl.TextAnnotateAnnotation AnnotationInsert(Efl.TextCursorCursor start, Efl.TextCursorCursor end, System.String format) {
+                                                                                 var _ret_var = Efl.ITextAnnotateConcrete.NativeMethods.efl_text_annotation_insert_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),start, end, format);
+        Eina.Error.RaiseIfUnhandledException();
+                                                        return _ret_var;
+ }
+    /// <summary>Deletes given annotation.
+    /// All formats applied by <c>annotation</c> will be removed and it will be deleted.</summary>
+    /// <param name="annotation">Annotation to be removed</param>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
+    virtual public bool DelAnnotation(Efl.TextAnnotateAnnotation annotation) {
+                                 var _ret_var = Efl.ITextAnnotateConcrete.NativeMethods.efl_text_annotation_del_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),annotation);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Sets given cursors to the start and end positions of the annotation.
+    /// The cursors <c>start</c> and <c>end</c> will be set to the start and end positions of the given annotation <c>annotation</c>.</summary>
+    /// <param name="annotation">Annotation handle to query</param>
+    /// <param name="start">Cursor to be set to the start position of the annotation in the text</param>
+    /// <param name="end">Cursor to be set to the end position of the annotation in the text</param>
+    virtual public void GetAnnotationPositions(Efl.TextAnnotateAnnotation annotation, Efl.TextCursorCursor start, Efl.TextCursorCursor end) {
+                                                                                 Efl.ITextAnnotateConcrete.NativeMethods.efl_text_annotation_positions_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),annotation, start, end);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Whether this is an &quot;item&quot; type of annotation. Should be used before querying the annotation&apos;s geometry, as only &quot;item&quot; annotations have a geometry.
+    /// see <see cref="Efl.ITextAnnotate.CursorItemInsert"/> see <see cref="Efl.ITextAnnotate.GetItemGeometry"/></summary>
+    /// <param name="annotation">Given annotation</param>
+    /// <returns><c>true</c> if given annotation is an object item, <c>false</c> otherwise</returns>
+    virtual public bool AnnotationIsItem(Efl.TextAnnotateAnnotation annotation) {
+                                 var _ret_var = Efl.ITextAnnotateConcrete.NativeMethods.efl_text_annotation_is_item_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),annotation);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Queries a given object item for its geometry.
+    /// Note that the provided annotation should be an object item type.</summary>
+    /// <param name="an">Given annotation to query</param>
+    /// <param name="x">X coordinate of the annotation</param>
+    /// <param name="y">Y coordinate of the annotation</param>
+    /// <param name="w">Width of the annotation</param>
+    /// <param name="h">Height of the annotation</param>
+    /// <returns><c>true</c> if given annotation is an object item, <c>false</c> otherwise</returns>
+    virtual public bool GetItemGeometry(Efl.TextAnnotateAnnotation an, out int x, out int y, out int w, out int h) {
+                                                                                                                                 var _ret_var = Efl.ITextAnnotateConcrete.NativeMethods.efl_text_item_geometry_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),an, out x, out y, out w, out h);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                                        return _ret_var;
+ }
+    /// <summary>Inserts a object item at specified position.
+    /// This adds a placeholder to be queried by higher-level code, which in turn place graphics on top of it. It essentially places an OBJECT REPLACEMENT CHARACTER and set a special annotation to it.</summary>
+    /// <param name="cur">Cursor object</param>
+    /// <param name="item">Item key to be used in higher-up code to query and decided what image, emoticon etc. to embed.</param>
+    /// <param name="format">Size format of the inserted item. This hints how to size the item in the text.</param>
+    /// <returns>The annotation handle of the inserted item.</returns>
+    virtual public Efl.TextAnnotateAnnotation CursorItemInsert(Efl.TextCursorCursor cur, System.String item, System.String format) {
+                                                                                 var _ret_var = Efl.ITextAnnotateConcrete.NativeMethods.efl_text_cursor_item_insert_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur, item, format);
+        Eina.Error.RaiseIfUnhandledException();
+                                                        return _ret_var;
+ }
+    /// <summary>The object&apos;s main cursor.</summary>
+    /// <param name="get_type">Cursor type</param>
+    /// <returns>Text cursor object</returns>
+    virtual public Efl.TextCursorCursor GetTextCursor(Efl.TextCursorGetType get_type) {
+                                 var _ret_var = Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),get_type);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Cursor position</summary>
+    /// <param name="cur">Cursor object</param>
+    /// <returns>Cursor position</returns>
+    virtual public int GetCursorPosition(Efl.TextCursorCursor cur) {
+                                 var _ret_var = Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_position_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Cursor position</summary>
+    /// <param name="cur">Cursor object</param>
+    /// <param name="position">Cursor position</param>
+    virtual public void SetCursorPosition(Efl.TextCursorCursor cur, int position) {
+                                                         Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_position_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur, position);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>The content of the cursor (the character under the cursor)</summary>
+    /// <param name="cur">Cursor object</param>
+    /// <returns>The unicode codepoint of the character</returns>
+    virtual public Eina.Unicode GetCursorContent(Efl.TextCursorCursor cur) {
+                                 var _ret_var = Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Returns the geometry of two cursors (&quot;split cursor&quot;), if logical cursor is between LTR/RTL text, also considering paragraph direction. Upper cursor is shown for the text of the same direction as paragraph, lower cursor - for opposite.
+    /// Split cursor geometry is valid only  in &apos;|&apos; cursor mode. In this case <c>true</c> is returned and <c>cx2</c>, <c>cy2</c>, <c>cw2</c>, <c>ch2</c> are set.</summary>
+    /// <param name="cur">Cursor object</param>
+    /// <param name="ctype">The type of the cursor.</param>
+    /// <param name="cx">The x of the cursor (or upper cursor)</param>
+    /// <param name="cy">The y of the cursor (or upper cursor)</param>
+    /// <param name="cw">The width of the cursor (or upper cursor)</param>
+    /// <param name="ch">The height of the cursor (or upper cursor)</param>
+    /// <param name="cx2">The x of the lower cursor</param>
+    /// <param name="cy2">The y of the lower cursor</param>
+    /// <param name="cw2">The width of the lower cursor</param>
+    /// <param name="ch2">The height of the lower cursor</param>
+    /// <returns><c>true</c> if split cursor, <c>false</c> otherwise.</returns>
+    virtual public bool GetCursorGeometry(Efl.TextCursorCursor cur, Efl.TextCursorType ctype, out int cx, out int cy, out int cw, out int ch, out int cx2, out int cy2, out int cw2, out int ch2) {
+                                                                                                                                                                                                                                                         var _ret_var = Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_geometry_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur, ctype, out cx, out cy, out cw, out ch, out cx2, out cy2, out cw2, out ch2);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                                                                                                                        return _ret_var;
+ }
+    /// <summary>Create new cursor</summary>
+    /// <returns>Cursor object</returns>
+    virtual public Efl.TextCursorCursor NewCursor() {
+         var _ret_var = Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_new_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Free existing cursor</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorFree(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_free_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Check if two cursors are equal</summary>
+    /// <param name="cur1">Cursor 1 object</param>
+    /// <param name="cur2">Cursor 2 object</param>
+    /// <returns><c>true</c> if cursors are equal, <c>false</c> otherwise</returns>
+    virtual public bool CursorEqual(Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2) {
+                                                         var _ret_var = Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_equal_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur1, cur2);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>Compare two cursors</summary>
+    /// <param name="cur1">Cursor 1 object</param>
+    /// <param name="cur2">Cursor 2 object</param>
+    /// <returns>Difference between cursors</returns>
+    virtual public int CursorCompare(Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2) {
+                                                         var _ret_var = Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_compare_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur1, cur2);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>Copy existing cursor</summary>
+    /// <param name="dst">Destination cursor</param>
+    /// <param name="src">Source cursor</param>
+    virtual public void CursorCopy(Efl.TextCursorCursor dst, Efl.TextCursorCursor src) {
+                                                         Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_copy_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dst, src);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Advances to the next character</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorCharNext(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_char_next_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advances to the previous character</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorCharPrev(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_char_prev_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advances to the next grapheme cluster</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorClusterNext(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_cluster_next_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advances to the previous grapheme cluster</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorClusterPrev(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_cluster_prev_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advances to the first character in this paragraph</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorParagraphCharFirst(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_paragraph_char_first_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advances to the last character in this paragraph</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorParagraphCharLast(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_paragraph_char_last_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advance to current word start</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorWordStart(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_word_start_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advance to current word end</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorWordEnd(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_word_end_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advance to current line first character</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorLineCharFirst(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_line_char_first_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advance to current line last character</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorLineCharLast(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_line_char_last_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advance to current paragraph first character</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorParagraphFirst(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_paragraph_first_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advance to current paragraph last character</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorParagraphLast(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_paragraph_last_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advances to the start of the next text node</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorParagraphNext(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_paragraph_next_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Advances to the end of the previous text node</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorParagraphPrev(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_paragraph_prev_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Jump the cursor by the given number of lines</summary>
+    /// <param name="cur">Cursor object</param>
+    /// <param name="by">Number of lines</param>
+    virtual public void CursorLineJumpBy(Efl.TextCursorCursor cur, int by) {
+                                                         Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_line_jump_by_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur, by);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Set cursor coordinates</summary>
+    /// <param name="cur">Cursor object</param>
+    /// <param name="x">X coord to set by.</param>
+    /// <param name="y">Y coord to set by.</param>
+    virtual public void SetCursorCoord(Efl.TextCursorCursor cur, int x, int y) {
+                                                                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_coord_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur, x, y);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Set cursor coordinates according to grapheme clusters. It does not allow to put a cursor to the middle of a grapheme cluster.</summary>
+    /// <param name="cur">Cursor object</param>
+    /// <param name="x">X coord to set by.</param>
+    /// <param name="y">Y coord to set by.</param>
+    virtual public void SetCursorClusterCoord(Efl.TextCursorCursor cur, int x, int y) {
+                                                                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_cluster_coord_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur, x, y);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Adds text to the current cursor position and set the cursor to *after* the start of the text just added.</summary>
+    /// <param name="cur">Cursor object</param>
+    /// <param name="text">Text to append (UTF-8 format).</param>
+    /// <returns>Length of the appended text.</returns>
+    virtual public int CursorTextInsert(Efl.TextCursorCursor cur, System.String text) {
+                                                         var _ret_var = Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_text_insert_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur, text);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>Deletes a single character from position pointed by given cursor.</summary>
+    /// <param name="cur">Cursor object</param>
+    virtual public void CursorCharDelete(Efl.TextCursorCursor cur) {
+                                 Efl.ITextCursorConcrete.NativeMethods.efl_text_cursor_char_delete_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Retrieve the font family and size in use on a given text object.
+    /// This function allows the font name and size of a text object to be queried. Remember that the font name string is still owned by Evas and should not have free() called on it by the caller of the function.
+    /// 
+    /// See also <see cref="Efl.ITextFont.GetFont"/>.</summary>
+    /// <param name="font">The font family name or filename.</param>
+    /// <param name="size">The font size, in points.</param>
+    virtual public void GetFont(out System.String font, out Efl.Font.Size size) {
+                                                         Efl.ITextFontConcrete.NativeMethods.efl_text_font_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out font, out size);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Set the font family, filename and size for a given text object.
+    /// This function allows the font name and size of a text object to be set. The font string has to follow fontconfig&apos;s convention for naming fonts, as it&apos;s the underlying library used to query system fonts by Evas (see the fc-list command&apos;s output, on your system, to get an idea). Alternatively, youe can use the full path to a font file.
+    /// 
+    /// See also <see cref="Efl.ITextFont.GetFont"/>, <see cref="Efl.ITextFont.GetFontSource"/>.</summary>
+    /// <param name="font">The font family name or filename.</param>
+    /// <param name="size">The font size, in points.</param>
+    virtual public void SetFont(System.String font, Efl.Font.Size size) {
+                                                         Efl.ITextFontConcrete.NativeMethods.efl_text_font_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),font, size);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Get the font file&apos;s path which is being used on a given text object.
+    /// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
+    /// <returns>The font file&apos;s path.</returns>
+    virtual public System.String GetFontSource() {
+         var _ret_var = Efl.ITextFontConcrete.NativeMethods.efl_text_font_source_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Set the font (source) file to be used on a given text object.
+    /// This function allows the font file to be explicitly set for a given text object, overriding system lookup, which will first occur in the given file&apos;s contents.
+    /// 
+    /// See also <see cref="Efl.ITextFont.GetFont"/>.</summary>
+    /// <param name="font_source">The font file&apos;s path.</param>
+    virtual public void SetFontSource(System.String font_source) {
+                                 Efl.ITextFontConcrete.NativeMethods.efl_text_font_source_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),font_source);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Comma-separated list of font fallbacks
+    /// Will be used in case the primary font isn&apos;t available.</summary>
+    /// <returns>Font name fallbacks</returns>
+    virtual public System.String GetFontFallbacks() {
+         var _ret_var = Efl.ITextFontConcrete.NativeMethods.efl_text_font_fallbacks_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Comma-separated list of font fallbacks
+    /// Will be used in case the primary font isn&apos;t available.</summary>
+    /// <param name="font_fallbacks">Font name fallbacks</param>
+    virtual public void SetFontFallbacks(System.String font_fallbacks) {
+                                 Efl.ITextFontConcrete.NativeMethods.efl_text_font_fallbacks_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),font_fallbacks);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Type of weight of the displayed font
+    /// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
+    /// <returns>Font weight</returns>
+    virtual public Efl.TextFontWeight GetFontWeight() {
+         var _ret_var = Efl.ITextFontConcrete.NativeMethods.efl_text_font_weight_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Type of weight of the displayed font
+    /// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
+    /// <param name="font_weight">Font weight</param>
+    virtual public void SetFontWeight(Efl.TextFontWeight font_weight) {
+                                 Efl.ITextFontConcrete.NativeMethods.efl_text_font_weight_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),font_weight);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Type of slant of the displayed font
+    /// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
+    /// <returns>Font slant</returns>
+    virtual public Efl.TextFontSlant GetFontSlant() {
+         var _ret_var = Efl.ITextFontConcrete.NativeMethods.efl_text_font_slant_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Type of slant of the displayed font
+    /// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
+    /// <param name="style">Font slant</param>
+    virtual public void SetFontSlant(Efl.TextFontSlant style) {
+                                 Efl.ITextFontConcrete.NativeMethods.efl_text_font_slant_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),style);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Type of width of the displayed font
+    /// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
+    /// <returns>Font width</returns>
+    virtual public Efl.TextFontWidth GetFontWidth() {
+         var _ret_var = Efl.ITextFontConcrete.NativeMethods.efl_text_font_width_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Type of width of the displayed font
+    /// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
+    /// <param name="width">Font width</param>
+    virtual public void SetFontWidth(Efl.TextFontWidth width) {
+                                 Efl.ITextFontConcrete.NativeMethods.efl_text_font_width_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),width);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Specific language of the displayed font
+    /// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
+    /// <returns>Language</returns>
+    virtual public System.String GetFontLang() {
+         var _ret_var = Efl.ITextFontConcrete.NativeMethods.efl_text_font_lang_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Specific language of the displayed font
+    /// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
+    /// <param name="lang">Language</param>
+    virtual public void SetFontLang(System.String lang) {
+                                 Efl.ITextFontConcrete.NativeMethods.efl_text_font_lang_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),lang);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>The bitmap fonts have fixed size glyphs for several available sizes. Basically, it is not scalable. But, it needs to be scalable for some use cases. (ex. colorful emoji fonts)
+    /// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
+    /// <returns>Scalable</returns>
+    virtual public Efl.TextFontBitmapScalable GetFontBitmapScalable() {
+         var _ret_var = Efl.ITextFontConcrete.NativeMethods.efl_text_font_bitmap_scalable_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>The bitmap fonts have fixed size glyphs for several available sizes. Basically, it is not scalable. But, it needs to be scalable for some use cases. (ex. colorful emoji fonts)
+    /// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
+    /// <param name="scalable">Scalable</param>
+    virtual public void SetFontBitmapScalable(Efl.TextFontBitmapScalable scalable) {
+                                 Efl.ITextFontConcrete.NativeMethods.efl_text_font_bitmap_scalable_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Ellipsis value (number from -1.0 to 1.0)</summary>
+    /// <returns>Ellipsis value</returns>
+    virtual public double GetEllipsis() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_ellipsis_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Ellipsis value (number from -1.0 to 1.0)</summary>
+    /// <param name="value">Ellipsis value</param>
+    virtual public void SetEllipsis(double value) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_ellipsis_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),value);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Wrap mode for use in the text</summary>
+    /// <returns>Wrap mode</returns>
+    virtual public Efl.TextFormatWrap GetWrap() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_wrap_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Wrap mode for use in the text</summary>
+    /// <param name="wrap">Wrap mode</param>
+    virtual public void SetWrap(Efl.TextFormatWrap wrap) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_wrap_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),wrap);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Multiline is enabled or not</summary>
+    /// <returns><c>true</c> if multiline is enabled, <c>false</c> otherwise</returns>
+    virtual public bool GetMultiline() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_multiline_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Multiline is enabled or not</summary>
+    /// <param name="enabled"><c>true</c> if multiline is enabled, <c>false</c> otherwise</param>
+    virtual public void SetMultiline(bool enabled) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_multiline_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),enabled);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Horizontal alignment of text</summary>
+    /// <returns>Alignment type</returns>
+    virtual public Efl.TextFormatHorizontalAlignmentAutoType GetHalignAutoType() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_halign_auto_type_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Horizontal alignment of text</summary>
+    /// <param name="value">Alignment type</param>
+    virtual public void SetHalignAutoType(Efl.TextFormatHorizontalAlignmentAutoType value) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_halign_auto_type_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),value);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Horizontal alignment of text</summary>
+    /// <returns>Horizontal alignment value</returns>
+    virtual public double GetHalign() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_halign_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Horizontal alignment of text</summary>
+    /// <param name="value">Horizontal alignment value</param>
+    virtual public void SetHalign(double value) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_halign_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),value);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Vertical alignment of text</summary>
+    /// <returns>Vertical alignment value</returns>
+    virtual public double GetValign() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_valign_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Vertical alignment of text</summary>
+    /// <param name="value">Vertical alignment value</param>
+    virtual public void SetValign(double value) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_valign_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),value);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Minimal line gap (top and bottom) for each line in the text
+    /// <c>value</c> is absolute size.</summary>
+    /// <returns>Line gap value</returns>
+    virtual public double GetLinegap() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_linegap_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Minimal line gap (top and bottom) for each line in the text
+    /// <c>value</c> is absolute size.</summary>
+    /// <param name="value">Line gap value</param>
+    virtual public void SetLinegap(double value) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_linegap_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),value);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Relative line gap (top and bottom) for each line in the text
+    /// The original line gap value is multiplied by <c>value</c>.</summary>
+    /// <returns>Relative line gap value</returns>
+    virtual public double GetLinerelgap() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_linerelgap_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Relative line gap (top and bottom) for each line in the text
+    /// The original line gap value is multiplied by <c>value</c>.</summary>
+    /// <param name="value">Relative line gap value</param>
+    virtual public void SetLinerelgap(double value) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_linerelgap_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),value);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Tabstops value</summary>
+    /// <returns>Tapstops value</returns>
+    virtual public int GetTabstops() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_tabstops_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Tabstops value</summary>
+    /// <param name="value">Tapstops value</param>
+    virtual public void SetTabstops(int value) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_tabstops_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),value);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Whether text is a password</summary>
+    /// <returns><c>true</c> if the text is a password, <c>false</c> otherwise</returns>
+    virtual public bool GetPassword() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_password_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Whether text is a password</summary>
+    /// <param name="enabled"><c>true</c> if the text is a password, <c>false</c> otherwise</param>
+    virtual public void SetPassword(bool enabled) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_password_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),enabled);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>The character used to replace characters that can&apos;t be displayed
+    /// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
+    /// <returns>Replacement character</returns>
+    virtual public System.String GetReplacementChar() {
+         var _ret_var = Efl.ITextFormatConcrete.NativeMethods.efl_text_replacement_char_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>The character used to replace characters that can&apos;t be displayed
+    /// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
+    /// <param name="repch">Replacement character</param>
+    virtual public void SetReplacementChar(System.String repch) {
+                                 Efl.ITextFormatConcrete.NativeMethods.efl_text_replacement_char_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),repch);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Markup property</summary>
+    /// <returns>The markup-text representation set to this text.</returns>
+    virtual public System.String GetMarkup() {
+         var _ret_var = Efl.ITextMarkupConcrete.NativeMethods.efl_text_markup_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Markup property</summary>
+    /// <param name="markup">The markup-text representation set to this text.</param>
+    virtual public void SetMarkup(System.String markup) {
+                                 Efl.ITextMarkupConcrete.NativeMethods.efl_text_markup_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),markup);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Markup of a given range in the text</summary>
+    /// <param name="start">Start of the markup region</param>
+    /// <param name="end">End of markup region</param>
+    /// <returns>The markup-text representation set to this text of a given range</returns>
+    virtual public System.String GetMarkupRange(Efl.TextCursorCursor start, Efl.TextCursorCursor end) {
+                                                         var _ret_var = Efl.ITextMarkupInteractiveConcrete.NativeMethods.efl_text_markup_interactive_markup_range_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),start, end);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>Markup of a given range in the text</summary>
+    /// <param name="start">Start of the markup region</param>
+    /// <param name="end">End of markup region</param>
+    /// <param name="markup">The markup-text representation set to this text of a given range</param>
+    virtual public void SetMarkupRange(Efl.TextCursorCursor start, Efl.TextCursorCursor end, System.String markup) {
+                                                                                 Efl.ITextMarkupInteractiveConcrete.NativeMethods.efl_text_markup_interactive_markup_range_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),start, end, markup);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Inserts a markup text to the text object in a given cursor position</summary>
+    /// <param name="cur">Cursor position to insert markup</param>
+    /// <param name="markup">The markup text to insert</param>
+    virtual public void CursorMarkupInsert(Efl.TextCursorCursor cur, System.String markup) {
+                                                         Efl.ITextMarkupInteractiveConcrete.NativeMethods.efl_text_markup_interactive_cursor_markup_insert_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur, markup);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Color of text, excluding style</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void GetNormalColor(out byte r, out byte g, out byte b, out byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_normal_color_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out r, out g, out b, out a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Color of text, excluding style</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void SetNormalColor(byte r, byte g, byte b, byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_normal_color_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),r, g, b, a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Enable or disable backing type</summary>
+    /// <returns>Backing type</returns>
+    virtual public Efl.TextStyleBackingType GetBackingType() {
+         var _ret_var = Efl.ITextStyleConcrete.NativeMethods.efl_text_backing_type_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Enable or disable backing type</summary>
+    /// <param name="type">Backing type</param>
+    virtual public void SetBackingType(Efl.TextStyleBackingType type) {
+                                 Efl.ITextStyleConcrete.NativeMethods.efl_text_backing_type_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),type);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Backing color</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void GetBackingColor(out byte r, out byte g, out byte b, out byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_backing_color_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out r, out g, out b, out a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Backing color</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void SetBackingColor(byte r, byte g, byte b, byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_backing_color_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),r, g, b, a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Sets an underline style on the text</summary>
+    /// <returns>Underline type</returns>
+    virtual public Efl.TextStyleUnderlineType GetUnderlineType() {
+         var _ret_var = Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_type_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Sets an underline style on the text</summary>
+    /// <param name="type">Underline type</param>
+    virtual public void SetUnderlineType(Efl.TextStyleUnderlineType type) {
+                                 Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_type_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),type);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Color of normal underline style</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void GetUnderlineColor(out byte r, out byte g, out byte b, out byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_color_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out r, out g, out b, out a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Color of normal underline style</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void SetUnderlineColor(byte r, byte g, byte b, byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_color_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),r, g, b, a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Height of underline style</summary>
+    /// <returns>Height</returns>
+    virtual public double GetUnderlineHeight() {
+         var _ret_var = Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_height_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Height of underline style</summary>
+    /// <param name="height">Height</param>
+    virtual public void SetUnderlineHeight(double height) {
+                                 Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_height_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),height);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Color of dashed underline style</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void GetUnderlineDashedColor(out byte r, out byte g, out byte b, out byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_dashed_color_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out r, out g, out b, out a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Color of dashed underline style</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void SetUnderlineDashedColor(byte r, byte g, byte b, byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_dashed_color_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),r, g, b, a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Width of dashed underline style</summary>
+    /// <returns>Width</returns>
+    virtual public int GetUnderlineDashedWidth() {
+         var _ret_var = Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_dashed_width_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Width of dashed underline style</summary>
+    /// <param name="width">Width</param>
+    virtual public void SetUnderlineDashedWidth(int width) {
+                                 Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_dashed_width_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),width);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Gap of dashed underline style</summary>
+    /// <returns>Gap</returns>
+    virtual public int GetUnderlineDashedGap() {
+         var _ret_var = Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_dashed_gap_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Gap of dashed underline style</summary>
+    /// <param name="gap">Gap</param>
+    virtual public void SetUnderlineDashedGap(int gap) {
+                                 Efl.ITextStyleConcrete.NativeMethods.efl_text_underline_dashed_gap_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),gap);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Color of underline2 style</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void GetUnderline2Color(out byte r, out byte g, out byte b, out byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_underline2_color_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out r, out g, out b, out a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Color of underline2 style</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void SetUnderline2Color(byte r, byte g, byte b, byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_underline2_color_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),r, g, b, a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Type of strikethrough style</summary>
+    /// <returns>Strikethrough type</returns>
+    virtual public Efl.TextStyleStrikethroughType GetStrikethroughType() {
+         var _ret_var = Efl.ITextStyleConcrete.NativeMethods.efl_text_strikethrough_type_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Type of strikethrough style</summary>
+    /// <param name="type">Strikethrough type</param>
+    virtual public void SetStrikethroughType(Efl.TextStyleStrikethroughType type) {
+                                 Efl.ITextStyleConcrete.NativeMethods.efl_text_strikethrough_type_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),type);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Color of strikethrough_style</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void GetStrikethroughColor(out byte r, out byte g, out byte b, out byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_strikethrough_color_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out r, out g, out b, out a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Color of strikethrough_style</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void SetStrikethroughColor(byte r, byte g, byte b, byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_strikethrough_color_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),r, g, b, a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Type of effect used for the displayed text</summary>
+    /// <returns>Effect type</returns>
+    virtual public Efl.TextStyleEffectType GetEffectType() {
+         var _ret_var = Efl.ITextStyleConcrete.NativeMethods.efl_text_effect_type_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Type of effect used for the displayed text</summary>
+    /// <param name="type">Effect type</param>
+    virtual public void SetEffectType(Efl.TextStyleEffectType type) {
+                                 Efl.ITextStyleConcrete.NativeMethods.efl_text_effect_type_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),type);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Color of outline effect</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void GetOutlineColor(out byte r, out byte g, out byte b, out byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_outline_color_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out r, out g, out b, out a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Color of outline effect</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void SetOutlineColor(byte r, byte g, byte b, byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_outline_color_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),r, g, b, a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Direction of shadow effect</summary>
+    /// <returns>Shadow direction</returns>
+    virtual public Efl.TextStyleShadowDirection GetShadowDirection() {
+         var _ret_var = Efl.ITextStyleConcrete.NativeMethods.efl_text_shadow_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Direction of shadow effect</summary>
+    /// <param name="type">Shadow direction</param>
+    virtual public void SetShadowDirection(Efl.TextStyleShadowDirection type) {
+                                 Efl.ITextStyleConcrete.NativeMethods.efl_text_shadow_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),type);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Color of shadow effect</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void GetShadowColor(out byte r, out byte g, out byte b, out byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_shadow_color_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out r, out g, out b, out a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Color of shadow effect</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void SetShadowColor(byte r, byte g, byte b, byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_shadow_color_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),r, g, b, a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Color of glow effect</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void GetGlowColor(out byte r, out byte g, out byte b, out byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_glow_color_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out r, out g, out b, out a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Color of glow effect</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void SetGlowColor(byte r, byte g, byte b, byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_glow_color_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),r, g, b, a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Second color of the glow effect</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void GetGlow2Color(out byte r, out byte g, out byte b, out byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_glow2_color_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out r, out g, out b, out a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Second color of the glow effect</summary>
+    /// <param name="r">Red component</param>
+    /// <param name="g">Green component</param>
+    /// <param name="b">Blue component</param>
+    /// <param name="a">Alpha component</param>
+    virtual public void SetGlow2Color(byte r, byte g, byte b, byte a) {
+                                                                                                         Efl.ITextStyleConcrete.NativeMethods.efl_text_glow2_color_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),r, g, b, a);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Program that applies a special filter
+    /// See <see cref="Efl.Gfx.IFilter"/>.</summary>
+    /// <returns>Filter code</returns>
+    virtual public System.String GetGfxFilter() {
+         var _ret_var = Efl.ITextStyleConcrete.NativeMethods.efl_text_gfx_filter_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Program that applies a special filter
+    /// See <see cref="Efl.Gfx.IFilter"/>.</summary>
+    /// <param name="code">Filter code</param>
+    virtual public void SetGfxFilter(System.String code) {
+                                 Efl.ITextStyleConcrete.NativeMethods.efl_text_gfx_filter_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),code);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Marks this filter as changed.</summary>
+    /// <param name="val"><c>true</c> if filter changed, <c>false</c> otherwise</param>
+    virtual public void SetFilterChanged(bool val) {
+                                 Efl.Canvas.Filter.IInternalConcrete.NativeMethods.evas_filter_changed_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),val);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Marks this filter as invalid.</summary>
+    /// <param name="val"><c>true</c> if filter is invalid, <c>false</c> otherwise</param>
+    virtual public void SetFilterInvalid(bool val) {
+                                 Efl.Canvas.Filter.IInternalConcrete.NativeMethods.evas_filter_invalid_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),val);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Retrieve cached output buffer, if any.
+    /// Does not increment the reference count.</summary>
+    /// <returns>Output buffer</returns>
+    virtual public System.IntPtr GetFilterOutputBuffer() {
+         var _ret_var = Efl.Canvas.Filter.IInternalConcrete.NativeMethods.evas_filter_output_buffer_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Called by Efl.Canvas.Filter.Internal to determine whether the input is alpha or rgba.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    virtual public bool FilterInputAlpha() {
+         var _ret_var = Efl.Canvas.Filter.IInternalConcrete.NativeMethods.evas_filter_input_alpha_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Called by Efl.Canvas.Filter.Internal to request the parent class for state information (color, etc...).</summary>
+    /// <param name="state">State info to fill in</param>
+    /// <param name="data">Private data for the class</param>
+    virtual public void FilterStatePrepare(out Efl.Canvas.Filter.State state, System.IntPtr data) {
+                         var _out_state = new Efl.Canvas.Filter.State.NativeStruct();
+                                Efl.Canvas.Filter.IInternalConcrete.NativeMethods.evas_filter_state_prepare_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out _out_state, data);
+        Eina.Error.RaiseIfUnhandledException();
+        state = _out_state;
+                                 }
+    /// <summary>Called by Efl.Canvas.Filter.Internal when the parent class must render the input.</summary>
+    /// <param name="filter">Current filter context</param>
+    /// <param name="engine">Engine context</param>
+    /// <param name="output">Output context</param>
+    /// <param name="drawctx">Draw context (for evas engine)</param>
+    /// <param name="data">Private data used by textblock</param>
+    /// <param name="l">Left</param>
+    /// <param name="r">Right</param>
+    /// <param name="t">Top</param>
+    /// <param name="b">Bottom</param>
+    /// <param name="x">X offset</param>
+    /// <param name="y">Y offset</param>
+    /// <param name="do_async"><c>true</c> when the operation should be done asynchronously, <c>false</c> otherwise</param>
+    /// <returns>Indicates success from the object render function.</returns>
+    virtual public bool FilterInputRender(System.IntPtr filter, System.IntPtr engine, System.IntPtr output, System.IntPtr drawctx, System.IntPtr data, int l, int r, int t, int b, int x, int y, bool do_async) {
+                                                                                                                                                                                                                                                                                                         var _ret_var = Efl.Canvas.Filter.IInternalConcrete.NativeMethods.evas_filter_input_render_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),filter, engine, output, drawctx, data, l, r, t, b, x, y, do_async);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                                                                                                                                                        return _ret_var;
+ }
+    /// <summary>Called when filter changes must trigger a redraw of the object.
+    /// Virtual, to be implemented in the parent class.</summary>
+    virtual public void FilterDirty() {
+         Efl.Canvas.Filter.IInternalConcrete.NativeMethods.evas_filter_dirty_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+         }
+    /// <summary>Gets the code of the filter program set on this object. May be <c>null</c>.</summary>
+    /// <param name="code">The Lua program source code.</param>
+    /// <param name="name">An optional name for this filter.</param>
+    virtual public void GetFilterProgram(out System.String code, out System.String name) {
+                                                         Efl.Gfx.IFilterConcrete.NativeMethods.efl_gfx_filter_program_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out code, out name);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Set a graphical filter program on this object.
+    /// Valid for Text and Image objects at the moment.
+    /// 
+    /// The argument passed to this function is a string containing a valid Lua program based on the filters API as described in the &quot;EFL Graphics Filters&quot; reference page.
+    /// 
+    /// Set to <c>null</c> to disable filtering.</summary>
+    /// <param name="code">The Lua program source code.</param>
+    /// <param name="name">An optional name for this filter.</param>
+    virtual public void SetFilterProgram(System.String code, System.String name) {
+                                                         Efl.Gfx.IFilterConcrete.NativeMethods.efl_gfx_filter_program_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),code, name);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Set the current state of the filter.
+    /// This should be used by Edje (EFL&apos;s internal layout engine), but could also be used when implementing animations programmatically.
+    /// 
+    /// A full state is defined by two states (name + value): origin state and target state of an ongoing animation, as well as the <c>pos</c> progress (from 0 to 1) of that animation timeline. The second state can be omitted if there is no ongoing animation.</summary>
+    /// <param name="cur_state">Current state of the filter</param>
+    /// <param name="cur_val">Current value</param>
+    /// <param name="next_state">Next filter state, optional</param>
+    /// <param name="next_val">Next value, optional</param>
+    /// <param name="pos">Position, optional</param>
+    virtual public void GetFilterState(out System.String cur_state, out double cur_val, out System.String next_state, out double next_val, out double pos) {
+                                                                                                                                 Efl.Gfx.IFilterConcrete.NativeMethods.efl_gfx_filter_state_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out cur_state, out cur_val, out next_state, out next_val, out pos);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                                         }
+    /// <summary>Set the current state of the filter.
+    /// This should be used by Edje (EFL&apos;s internal layout engine), but could also be used when implementing animations programmatically.
+    /// 
+    /// A full state is defined by two states (name + value): origin state and target state of an ongoing animation, as well as the <c>pos</c> progress (from 0 to 1) of that animation timeline. The second state can be omitted if there is no ongoing animation.</summary>
+    /// <param name="cur_state">Current state of the filter</param>
+    /// <param name="cur_val">Current value</param>
+    /// <param name="next_state">Next filter state, optional</param>
+    /// <param name="next_val">Next value, optional</param>
+    /// <param name="pos">Position, optional</param>
+    virtual public void SetFilterState(System.String cur_state, double cur_val, System.String next_state, double next_val, double pos) {
+                                                                                                                                 Efl.Gfx.IFilterConcrete.NativeMethods.efl_gfx_filter_state_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cur_state, cur_val, next_state, next_val, pos);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                                         }
+    /// <summary>Gets the padding required to apply this filter.</summary>
+    /// <param name="l">Padding on the left</param>
+    /// <param name="r">Padding on the right</param>
+    /// <param name="t">Padding on the top</param>
+    /// <param name="b">Padding on the bottom</param>
+    virtual public void GetFilterPadding(out int l, out int r, out int t, out int b) {
+                                                                                                         Efl.Gfx.IFilterConcrete.NativeMethods.efl_gfx_filter_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out l, out r, out t, out b);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                         }
+    /// <summary>Bind an object to use as a mask or texture in a filter program.
+    /// This will create automatically a new RGBA buffer containing the source object&apos;s pixels (as it is rendered).</summary>
+    /// <param name="name">Buffer name as used in the program.</param>
+    /// <returns>Object to use as a source of pixels.</returns>
+    virtual public Efl.Gfx.IEntity GetFilterSource(System.String name) {
+                                 var _ret_var = Efl.Gfx.IFilterConcrete.NativeMethods.efl_gfx_filter_source_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),name);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Bind an object to use as a mask or texture in a filter program.
+    /// This will create automatically a new RGBA buffer containing the source object&apos;s pixels (as it is rendered).</summary>
+    /// <param name="name">Buffer name as used in the program.</param>
+    /// <param name="source">Object to use as a source of pixels.</param>
+    virtual public void SetFilterSource(System.String name, Efl.Gfx.IEntity source) {
+                                                         Efl.Gfx.IFilterConcrete.NativeMethods.efl_gfx_filter_source_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),name, source);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Extra data used by the filter program.
+    /// Each data element is a string (<c>value</c>) stored as a global variable <c>name</c>. The program is then responsible for conversion to numbers, tables, etc...
+    /// 
+    /// If the <c>execute</c> flag is set, then the <c>value</c> can be complex and run, as if the original Lua program contained a line &apos;name = value&apos;. This can be used to pass in tables.</summary>
+    /// <param name="name">Name of the global variable</param>
+    /// <param name="value">String value to use as data</param>
+    /// <param name="execute">If <c>true</c>, execute &apos;name = value&apos;</param>
+    virtual public void GetFilterData(System.String name, out System.String value, out bool execute) {
+                                                                                 Efl.Gfx.IFilterConcrete.NativeMethods.efl_gfx_filter_data_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),name, out value, out execute);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Extra data used by the filter program.
+    /// Each data element is a string (<c>value</c>) stored as a global variable <c>name</c>. The program is then responsible for conversion to numbers, tables, etc...
+    /// 
+    /// If the <c>execute</c> flag is set, then the <c>value</c> can be complex and run, as if the original Lua program contained a line &apos;name = value&apos;. This can be used to pass in tables.</summary>
+    /// <param name="name">Name of the global variable</param>
+    /// <param name="value">String value to use as data</param>
+    /// <param name="execute">If <c>true</c>, execute &apos;name = value&apos;</param>
+    virtual public void SetFilterData(System.String name, System.String value, bool execute) {
+                                                                                 Efl.Gfx.IFilterConcrete.NativeMethods.efl_gfx_filter_data_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),name, value, execute);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Async wrapper for <see cref="AsyncLayout" />.</summary>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
+    public System.Threading.Tasks.Task<Eina.Value> AsyncLayoutAsync( System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
+    {
+        Eina.Future future = AsyncLayout();
+        return Efl.Eo.Globals.WrapAsync(future, token);
+    }
+
+    /// <summary>Whether the object is empty (no text) or not</summary>
+    /// <value><c>true</c> if empty, <c>false</c> otherwise</value>
+    public bool IsEmpty {
+        get { return GetIsEmpty(); }
+    }
+    /// <summary>BiDi delimiters are used for in-paragraph separation of bidi segments. This is useful, for example, in the recipient fields of e-mail clients where bidi oddities can occur when mixing RTL and LTR.</summary>
+    /// <value>A null terminated string of delimiters, e.g &quot;,|&quot; or <c>null</c> if empty</value>
+    public System.String BidiDelimiters {
+        get { return GetBidiDelimiters(); }
+        set { SetBidiDelimiters(value); }
+    }
+    /// <summary>When <c>true</c>, newline character will behave as a paragraph separator.</summary>
+    /// <value><c>true</c> for legacy mode, <c>false</c> otherwise</value>
+    public bool LegacyNewline {
+        get { return GetLegacyNewline(); }
+        set { SetLegacyNewline(value); }
+    }
+    /// <summary>Get the font file&apos;s path which is being used on a given text object.
+    /// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
+    /// <value>The font file&apos;s path.</value>
+    public System.String FontSource {
+        get { return GetFontSource(); }
+        set { SetFontSource(value); }
+    }
+    /// <summary>Comma-separated list of font fallbacks
+    /// Will be used in case the primary font isn&apos;t available.</summary>
+    /// <value>Font name fallbacks</value>
+    public System.String FontFallbacks {
+        get { return GetFontFallbacks(); }
+        set { SetFontFallbacks(value); }
+    }
+    /// <summary>Type of weight of the displayed font
+    /// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
+    /// <value>Font weight</value>
+    public Efl.TextFontWeight FontWeight {
+        get { return GetFontWeight(); }
+        set { SetFontWeight(value); }
+    }
+    /// <summary>Type of slant of the displayed font
+    /// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
+    /// <value>Font slant</value>
+    public Efl.TextFontSlant FontSlant {
+        get { return GetFontSlant(); }
+        set { SetFontSlant(value); }
+    }
+    /// <summary>Type of width of the displayed font
+    /// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
+    /// <value>Font width</value>
+    public Efl.TextFontWidth FontWidth {
+        get { return GetFontWidth(); }
+        set { SetFontWidth(value); }
+    }
+    /// <summary>Specific language of the displayed font
+    /// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
+    /// <value>Language</value>
+    public System.String FontLang {
+        get { return GetFontLang(); }
+        set { SetFontLang(value); }
+    }
+    /// <summary>The bitmap fonts have fixed size glyphs for several available sizes. Basically, it is not scalable. But, it needs to be scalable for some use cases. (ex. colorful emoji fonts)
+    /// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
+    /// <value>Scalable</value>
+    public Efl.TextFontBitmapScalable FontBitmapScalable {
+        get { return GetFontBitmapScalable(); }
+        set { SetFontBitmapScalable(value); }
+    }
+    /// <summary>Ellipsis value (number from -1.0 to 1.0)</summary>
+    /// <value>Ellipsis value</value>
+    public double Ellipsis {
+        get { return GetEllipsis(); }
+        set { SetEllipsis(value); }
+    }
+    /// <summary>Wrap mode for use in the text</summary>
+    /// <value>Wrap mode</value>
+    public Efl.TextFormatWrap Wrap {
+        get { return GetWrap(); }
+        set { SetWrap(value); }
+    }
+    /// <summary>Multiline is enabled or not</summary>
+    /// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
+    public bool Multiline {
+        get { return GetMultiline(); }
+        set { SetMultiline(value); }
+    }
+    /// <summary>Horizontal alignment of text</summary>
+    /// <value>Alignment type</value>
+    public Efl.TextFormatHorizontalAlignmentAutoType HalignAutoType {
+        get { return GetHalignAutoType(); }
+        set { SetHalignAutoType(value); }
+    }
+    /// <summary>Horizontal alignment of text</summary>
+    /// <value>Horizontal alignment value</value>
+    public double Halign {
+        get { return GetHalign(); }
+        set { SetHalign(value); }
+    }
+    /// <summary>Vertical alignment of text</summary>
+    /// <value>Vertical alignment value</value>
+    public double Valign {
+        get { return GetValign(); }
+        set { SetValign(value); }
+    }
+    /// <summary>Minimal line gap (top and bottom) for each line in the text
+    /// <c>value</c> is absolute size.</summary>
+    /// <value>Line gap value</value>
+    public double Linegap {
+        get { return GetLinegap(); }
+        set { SetLinegap(value); }
+    }
+    /// <summary>Relative line gap (top and bottom) for each line in the text
+    /// The original line gap value is multiplied by <c>value</c>.</summary>
+    /// <value>Relative line gap value</value>
+    public double Linerelgap {
+        get { return GetLinerelgap(); }
+        set { SetLinerelgap(value); }
+    }
+    /// <summary>Tabstops value</summary>
+    /// <value>Tapstops value</value>
+    public int Tabstops {
+        get { return GetTabstops(); }
+        set { SetTabstops(value); }
+    }
+    /// <summary>Whether text is a password</summary>
+    /// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
+    public bool Password {
+        get { return GetPassword(); }
+        set { SetPassword(value); }
+    }
+    /// <summary>The character used to replace characters that can&apos;t be displayed
+    /// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
+    /// <value>Replacement character</value>
+    public System.String ReplacementChar {
+        get { return GetReplacementChar(); }
+        set { SetReplacementChar(value); }
+    }
+    /// <summary>Markup property</summary>
+    /// <value>The markup-text representation set to this text.</value>
+    public System.String Markup {
+        get { return GetMarkup(); }
+        set { SetMarkup(value); }
+    }
+    /// <summary>Enable or disable backing type</summary>
+    /// <value>Backing type</value>
+    public Efl.TextStyleBackingType BackingType {
+        get { return GetBackingType(); }
+        set { SetBackingType(value); }
+    }
+    /// <summary>Sets an underline style on the text</summary>
+    /// <value>Underline type</value>
+    public Efl.TextStyleUnderlineType UnderlineType {
+        get { return GetUnderlineType(); }
+        set { SetUnderlineType(value); }
+    }
+    /// <summary>Height of underline style</summary>
+    /// <value>Height</value>
+    public double UnderlineHeight {
+        get { return GetUnderlineHeight(); }
+        set { SetUnderlineHeight(value); }
+    }
+    /// <summary>Width of dashed underline style</summary>
+    /// <value>Width</value>
+    public int UnderlineDashedWidth {
+        get { return GetUnderlineDashedWidth(); }
+        set { SetUnderlineDashedWidth(value); }
+    }
+    /// <summary>Gap of dashed underline style</summary>
+    /// <value>Gap</value>
+    public int UnderlineDashedGap {
+        get { return GetUnderlineDashedGap(); }
+        set { SetUnderlineDashedGap(value); }
+    }
+    /// <summary>Type of strikethrough style</summary>
+    /// <value>Strikethrough type</value>
+    public Efl.TextStyleStrikethroughType StrikethroughType {
+        get { return GetStrikethroughType(); }
+        set { SetStrikethroughType(value); }
+    }
+    /// <summary>Type of effect used for the displayed text</summary>
+    /// <value>Effect type</value>
+    public Efl.TextStyleEffectType EffectType {
+        get { return GetEffectType(); }
+        set { SetEffectType(value); }
+    }
+    /// <summary>Direction of shadow effect</summary>
+    /// <value>Shadow direction</value>
+    public Efl.TextStyleShadowDirection ShadowDirection {
+        get { return GetShadowDirection(); }
+        set { SetShadowDirection(value); }
+    }
+    /// <summary>Program that applies a special filter
+    /// See <see cref="Efl.Gfx.IFilter"/>.</summary>
+    /// <value>Filter code</value>
+    public System.String GfxFilter {
+        get { return GetGfxFilter(); }
+        set { SetGfxFilter(value); }
+    }
+    /// <summary>Marks this filter as changed.</summary>
+    /// <value><c>true</c> if filter changed, <c>false</c> otherwise</value>
+    public bool FilterChanged {
+        set { SetFilterChanged(value); }
+    }
+    /// <summary>Marks this filter as invalid.</summary>
+    /// <value><c>true</c> if filter is invalid, <c>false</c> otherwise</value>
+    public bool FilterInvalid {
+        set { SetFilterInvalid(value); }
+    }
+    /// <summary>Retrieve cached output buffer, if any.
+    /// Does not increment the reference count.</summary>
+    /// <value>Output buffer</value>
+    public System.IntPtr FilterOutputBuffer {
+        get { return GetFilterOutputBuffer(); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.Text.efl_canvas_text_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.Object.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Evas);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_canvas_text_is_empty_get_static_delegate == null)
+            {
+                efl_canvas_text_is_empty_get_static_delegate = new efl_canvas_text_is_empty_get_delegate(is_empty_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetIsEmpty") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_is_empty_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_is_empty_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_style_insets_get_static_delegate == null)
+            {
+                efl_canvas_text_style_insets_get_static_delegate = new efl_canvas_text_style_insets_get_delegate(style_insets_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetStyleInsets") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_style_insets_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_style_insets_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_bidi_delimiters_get_static_delegate == null)
+            {
+                efl_canvas_text_bidi_delimiters_get_static_delegate = new efl_canvas_text_bidi_delimiters_get_delegate(bidi_delimiters_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetBidiDelimiters") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_bidi_delimiters_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_bidi_delimiters_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_bidi_delimiters_set_static_delegate == null)
+            {
+                efl_canvas_text_bidi_delimiters_set_static_delegate = new efl_canvas_text_bidi_delimiters_set_delegate(bidi_delimiters_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetBidiDelimiters") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_bidi_delimiters_set"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_bidi_delimiters_set_static_delegate) });
+            }
+
+            if (efl_canvas_text_legacy_newline_get_static_delegate == null)
+            {
+                efl_canvas_text_legacy_newline_get_static_delegate = new efl_canvas_text_legacy_newline_get_delegate(legacy_newline_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetLegacyNewline") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_legacy_newline_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_legacy_newline_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_legacy_newline_set_static_delegate == null)
+            {
+                efl_canvas_text_legacy_newline_set_static_delegate = new efl_canvas_text_legacy_newline_set_delegate(legacy_newline_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetLegacyNewline") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_legacy_newline_set"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_legacy_newline_set_static_delegate) });
+            }
+
+            if (efl_canvas_text_style_get_static_delegate == null)
+            {
+                efl_canvas_text_style_get_static_delegate = new efl_canvas_text_style_get_delegate(style_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetStyle") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_style_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_style_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_style_set_static_delegate == null)
+            {
+                efl_canvas_text_style_set_static_delegate = new efl_canvas_text_style_set_delegate(style_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetStyle") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_style_set"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_style_set_static_delegate) });
+            }
+
+            if (efl_canvas_text_size_formatted_get_static_delegate == null)
+            {
+                efl_canvas_text_size_formatted_get_static_delegate = new efl_canvas_text_size_formatted_get_delegate(size_formatted_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetSizeFormatted") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_size_formatted_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_size_formatted_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_size_native_get_static_delegate == null)
+            {
+                efl_canvas_text_size_native_get_static_delegate = new efl_canvas_text_size_native_get_delegate(size_native_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetSizeNative") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_size_native_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_size_native_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_visible_range_get_static_delegate == null)
+            {
+                efl_canvas_text_visible_range_get_static_delegate = new efl_canvas_text_visible_range_get_delegate(visible_range_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetVisibleRange") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_visible_range_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_visible_range_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_range_text_get_static_delegate == null)
+            {
+                efl_canvas_text_range_text_get_static_delegate = new efl_canvas_text_range_text_get_delegate(range_text_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetRangeText") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_range_text_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_range_text_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_range_geometry_get_static_delegate == null)
+            {
+                efl_canvas_text_range_geometry_get_static_delegate = new efl_canvas_text_range_geometry_get_delegate(range_geometry_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetRangeGeometry") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_range_geometry_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_range_geometry_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_range_simple_geometry_get_static_delegate == null)
+            {
+                efl_canvas_text_range_simple_geometry_get_static_delegate = new efl_canvas_text_range_simple_geometry_get_delegate(range_simple_geometry_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetRangeSimpleGeometry") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_range_simple_geometry_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_range_simple_geometry_get_static_delegate) });
+            }
+
+            if (efl_canvas_text_range_delete_static_delegate == null)
+            {
+                efl_canvas_text_range_delete_static_delegate = new efl_canvas_text_range_delete_delegate(range_delete);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "RangeDelete") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_range_delete"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_range_delete_static_delegate) });
+            }
+
+            if (efl_canvas_text_obstacle_add_static_delegate == null)
+            {
+                efl_canvas_text_obstacle_add_static_delegate = new efl_canvas_text_obstacle_add_delegate(obstacle_add);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "AddObstacle") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_obstacle_add"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_obstacle_add_static_delegate) });
+            }
+
+            if (efl_canvas_text_obstacle_del_static_delegate == null)
+            {
+                efl_canvas_text_obstacle_del_static_delegate = new efl_canvas_text_obstacle_del_delegate(obstacle_del);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "DelObstacle") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_obstacle_del"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_obstacle_del_static_delegate) });
+            }
+
+            if (efl_canvas_text_obstacles_update_static_delegate == null)
+            {
+                efl_canvas_text_obstacles_update_static_delegate = new efl_canvas_text_obstacles_update_delegate(obstacles_update);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "UpdateObstacles") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_obstacles_update"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_obstacles_update_static_delegate) });
+            }
+
+            if (efl_canvas_text_async_layout_static_delegate == null)
+            {
+                efl_canvas_text_async_layout_static_delegate = new efl_canvas_text_async_layout_delegate(async_layout);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "AsyncLayout") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_text_async_layout"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_text_async_layout_static_delegate) });
+            }
+
+            if (efl_text_get_static_delegate == null)
+            {
+                efl_text_get_static_delegate = new efl_text_get_delegate(text_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetText") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_get_static_delegate) });
+            }
+
+            if (efl_text_set_static_delegate == null)
+            {
+                efl_text_set_static_delegate = new efl_text_set_delegate(text_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetText") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_set_static_delegate) });
+            }
+
+            if (efl_text_annotation_get_static_delegate == null)
+            {
+                efl_text_annotation_get_static_delegate = new efl_text_annotation_get_delegate(annotation_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetAnnotation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_annotation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_annotation_get_static_delegate) });
+            }
+
+            if (efl_text_annotation_set_static_delegate == null)
+            {
+                efl_text_annotation_set_static_delegate = new efl_text_annotation_set_delegate(annotation_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetAnnotation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_annotation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_annotation_set_static_delegate) });
+            }
+
+            if (efl_text_cursor_item_annotation_get_static_delegate == null)
+            {
+                efl_text_cursor_item_annotation_get_static_delegate = new efl_text_cursor_item_annotation_get_delegate(cursor_item_annotation_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetCursorItemAnnotation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_item_annotation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_item_annotation_get_static_delegate) });
+            }
+
+            if (efl_text_range_annotations_get_static_delegate == null)
+            {
+                efl_text_range_annotations_get_static_delegate = new efl_text_range_annotations_get_delegate(range_annotations_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetRangeAnnotations") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_range_annotations_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_range_annotations_get_static_delegate) });
+            }
+
+            if (efl_text_annotation_insert_static_delegate == null)
+            {
+                efl_text_annotation_insert_static_delegate = new efl_text_annotation_insert_delegate(annotation_insert);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "AnnotationInsert") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_annotation_insert"), func = Marshal.GetFunctionPointerForDelegate(efl_text_annotation_insert_static_delegate) });
+            }
+
+            if (efl_text_annotation_del_static_delegate == null)
+            {
+                efl_text_annotation_del_static_delegate = new efl_text_annotation_del_delegate(annotation_del);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "DelAnnotation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_annotation_del"), func = Marshal.GetFunctionPointerForDelegate(efl_text_annotation_del_static_delegate) });
+            }
+
+            if (efl_text_annotation_positions_get_static_delegate == null)
+            {
+                efl_text_annotation_positions_get_static_delegate = new efl_text_annotation_positions_get_delegate(annotation_positions_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetAnnotationPositions") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_annotation_positions_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_annotation_positions_get_static_delegate) });
+            }
+
+            if (efl_text_annotation_is_item_static_delegate == null)
+            {
+                efl_text_annotation_is_item_static_delegate = new efl_text_annotation_is_item_delegate(annotation_is_item);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "AnnotationIsItem") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_annotation_is_item"), func = Marshal.GetFunctionPointerForDelegate(efl_text_annotation_is_item_static_delegate) });
+            }
+
+            if (efl_text_item_geometry_get_static_delegate == null)
+            {
+                efl_text_item_geometry_get_static_delegate = new efl_text_item_geometry_get_delegate(item_geometry_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetItemGeometry") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_item_geometry_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_item_geometry_get_static_delegate) });
+            }
+
+            if (efl_text_cursor_item_insert_static_delegate == null)
+            {
+                efl_text_cursor_item_insert_static_delegate = new efl_text_cursor_item_insert_delegate(cursor_item_insert);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorItemInsert") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_item_insert"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_item_insert_static_delegate) });
+            }
+
+            if (efl_text_cursor_get_static_delegate == null)
+            {
+                efl_text_cursor_get_static_delegate = new efl_text_cursor_get_delegate(text_cursor_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetTextCursor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_get_static_delegate) });
+            }
+
+            if (efl_text_cursor_position_get_static_delegate == null)
+            {
+                efl_text_cursor_position_get_static_delegate = new efl_text_cursor_position_get_delegate(cursor_position_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetCursorPosition") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_position_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_position_get_static_delegate) });
+            }
+
+            if (efl_text_cursor_position_set_static_delegate == null)
+            {
+                efl_text_cursor_position_set_static_delegate = new efl_text_cursor_position_set_delegate(cursor_position_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetCursorPosition") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_position_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_position_set_static_delegate) });
+            }
+
+            if (efl_text_cursor_content_get_static_delegate == null)
+            {
+                efl_text_cursor_content_get_static_delegate = new efl_text_cursor_content_get_delegate(cursor_content_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetCursorContent") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_content_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_content_get_static_delegate) });
+            }
+
+            if (efl_text_cursor_geometry_get_static_delegate == null)
+            {
+                efl_text_cursor_geometry_get_static_delegate = new efl_text_cursor_geometry_get_delegate(cursor_geometry_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetCursorGeometry") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_geometry_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_geometry_get_static_delegate) });
+            }
+
+            if (efl_text_cursor_new_static_delegate == null)
+            {
+                efl_text_cursor_new_static_delegate = new efl_text_cursor_new_delegate(cursor_new);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "NewCursor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_new"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_new_static_delegate) });
+            }
+
+            if (efl_text_cursor_free_static_delegate == null)
+            {
+                efl_text_cursor_free_static_delegate = new efl_text_cursor_free_delegate(cursor_free);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorFree") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_free"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_free_static_delegate) });
+            }
+
+            if (efl_text_cursor_equal_static_delegate == null)
+            {
+                efl_text_cursor_equal_static_delegate = new efl_text_cursor_equal_delegate(cursor_equal);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorEqual") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_equal"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_equal_static_delegate) });
+            }
+
+            if (efl_text_cursor_compare_static_delegate == null)
+            {
+                efl_text_cursor_compare_static_delegate = new efl_text_cursor_compare_delegate(cursor_compare);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorCompare") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_compare"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_compare_static_delegate) });
+            }
+
+            if (efl_text_cursor_copy_static_delegate == null)
+            {
+                efl_text_cursor_copy_static_delegate = new efl_text_cursor_copy_delegate(cursor_copy);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorCopy") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_copy"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_copy_static_delegate) });
+            }
+
+            if (efl_text_cursor_char_next_static_delegate == null)
+            {
+                efl_text_cursor_char_next_static_delegate = new efl_text_cursor_char_next_delegate(cursor_char_next);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorCharNext") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_char_next"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_char_next_static_delegate) });
+            }
+
+            if (efl_text_cursor_char_prev_static_delegate == null)
+            {
+                efl_text_cursor_char_prev_static_delegate = new efl_text_cursor_char_prev_delegate(cursor_char_prev);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorCharPrev") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_char_prev"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_char_prev_static_delegate) });
+            }
+
+            if (efl_text_cursor_cluster_next_static_delegate == null)
+            {
+                efl_text_cursor_cluster_next_static_delegate = new efl_text_cursor_cluster_next_delegate(cursor_cluster_next);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorClusterNext") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_cluster_next"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_cluster_next_static_delegate) });
+            }
+
+            if (efl_text_cursor_cluster_prev_static_delegate == null)
+            {
+                efl_text_cursor_cluster_prev_static_delegate = new efl_text_cursor_cluster_prev_delegate(cursor_cluster_prev);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorClusterPrev") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_cluster_prev"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_cluster_prev_static_delegate) });
+            }
+
+            if (efl_text_cursor_paragraph_char_first_static_delegate == null)
+            {
+                efl_text_cursor_paragraph_char_first_static_delegate = new efl_text_cursor_paragraph_char_first_delegate(cursor_paragraph_char_first);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorParagraphCharFirst") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_paragraph_char_first"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_paragraph_char_first_static_delegate) });
+            }
+
+            if (efl_text_cursor_paragraph_char_last_static_delegate == null)
+            {
+                efl_text_cursor_paragraph_char_last_static_delegate = new efl_text_cursor_paragraph_char_last_delegate(cursor_paragraph_char_last);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorParagraphCharLast") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_paragraph_char_last"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_paragraph_char_last_static_delegate) });
+            }
+
+            if (efl_text_cursor_word_start_static_delegate == null)
+            {
+                efl_text_cursor_word_start_static_delegate = new efl_text_cursor_word_start_delegate(cursor_word_start);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorWordStart") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_word_start"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_word_start_static_delegate) });
+            }
+
+            if (efl_text_cursor_word_end_static_delegate == null)
+            {
+                efl_text_cursor_word_end_static_delegate = new efl_text_cursor_word_end_delegate(cursor_word_end);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorWordEnd") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_word_end"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_word_end_static_delegate) });
+            }
+
+            if (efl_text_cursor_line_char_first_static_delegate == null)
+            {
+                efl_text_cursor_line_char_first_static_delegate = new efl_text_cursor_line_char_first_delegate(cursor_line_char_first);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorLineCharFirst") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_line_char_first"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_line_char_first_static_delegate) });
+            }
+
+            if (efl_text_cursor_line_char_last_static_delegate == null)
+            {
+                efl_text_cursor_line_char_last_static_delegate = new efl_text_cursor_line_char_last_delegate(cursor_line_char_last);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorLineCharLast") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_line_char_last"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_line_char_last_static_delegate) });
+            }
+
+            if (efl_text_cursor_paragraph_first_static_delegate == null)
+            {
+                efl_text_cursor_paragraph_first_static_delegate = new efl_text_cursor_paragraph_first_delegate(cursor_paragraph_first);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorParagraphFirst") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_paragraph_first"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_paragraph_first_static_delegate) });
+            }
+
+            if (efl_text_cursor_paragraph_last_static_delegate == null)
+            {
+                efl_text_cursor_paragraph_last_static_delegate = new efl_text_cursor_paragraph_last_delegate(cursor_paragraph_last);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorParagraphLast") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_paragraph_last"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_paragraph_last_static_delegate) });
+            }
+
+            if (efl_text_cursor_paragraph_next_static_delegate == null)
+            {
+                efl_text_cursor_paragraph_next_static_delegate = new efl_text_cursor_paragraph_next_delegate(cursor_paragraph_next);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorParagraphNext") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_paragraph_next"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_paragraph_next_static_delegate) });
+            }
+
+            if (efl_text_cursor_paragraph_prev_static_delegate == null)
+            {
+                efl_text_cursor_paragraph_prev_static_delegate = new efl_text_cursor_paragraph_prev_delegate(cursor_paragraph_prev);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorParagraphPrev") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_paragraph_prev"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_paragraph_prev_static_delegate) });
+            }
+
+            if (efl_text_cursor_line_jump_by_static_delegate == null)
+            {
+                efl_text_cursor_line_jump_by_static_delegate = new efl_text_cursor_line_jump_by_delegate(cursor_line_jump_by);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorLineJumpBy") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_line_jump_by"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_line_jump_by_static_delegate) });
+            }
+
+            if (efl_text_cursor_coord_set_static_delegate == null)
+            {
+                efl_text_cursor_coord_set_static_delegate = new efl_text_cursor_coord_set_delegate(cursor_coord_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetCursorCoord") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_coord_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_coord_set_static_delegate) });
+            }
+
+            if (efl_text_cursor_cluster_coord_set_static_delegate == null)
+            {
+                efl_text_cursor_cluster_coord_set_static_delegate = new efl_text_cursor_cluster_coord_set_delegate(cursor_cluster_coord_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetCursorClusterCoord") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_cluster_coord_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_cluster_coord_set_static_delegate) });
+            }
+
+            if (efl_text_cursor_text_insert_static_delegate == null)
+            {
+                efl_text_cursor_text_insert_static_delegate = new efl_text_cursor_text_insert_delegate(cursor_text_insert);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorTextInsert") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_text_insert"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_text_insert_static_delegate) });
+            }
+
+            if (efl_text_cursor_char_delete_static_delegate == null)
+            {
+                efl_text_cursor_char_delete_static_delegate = new efl_text_cursor_char_delete_delegate(cursor_char_delete);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorCharDelete") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_cursor_char_delete"), func = Marshal.GetFunctionPointerForDelegate(efl_text_cursor_char_delete_static_delegate) });
+            }
+
+            if (efl_text_font_get_static_delegate == null)
+            {
+                efl_text_font_get_static_delegate = new efl_text_font_get_delegate(font_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFont") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_get_static_delegate) });
+            }
+
+            if (efl_text_font_set_static_delegate == null)
+            {
+                efl_text_font_set_static_delegate = new efl_text_font_set_delegate(font_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFont") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_set_static_delegate) });
+            }
+
+            if (efl_text_font_source_get_static_delegate == null)
+            {
+                efl_text_font_source_get_static_delegate = new efl_text_font_source_get_delegate(font_source_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFontSource") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_source_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_source_get_static_delegate) });
+            }
+
+            if (efl_text_font_source_set_static_delegate == null)
+            {
+                efl_text_font_source_set_static_delegate = new efl_text_font_source_set_delegate(font_source_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFontSource") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_source_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_source_set_static_delegate) });
+            }
+
+            if (efl_text_font_fallbacks_get_static_delegate == null)
+            {
+                efl_text_font_fallbacks_get_static_delegate = new efl_text_font_fallbacks_get_delegate(font_fallbacks_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFontFallbacks") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_fallbacks_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_fallbacks_get_static_delegate) });
+            }
+
+            if (efl_text_font_fallbacks_set_static_delegate == null)
+            {
+                efl_text_font_fallbacks_set_static_delegate = new efl_text_font_fallbacks_set_delegate(font_fallbacks_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFontFallbacks") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_fallbacks_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_fallbacks_set_static_delegate) });
+            }
+
+            if (efl_text_font_weight_get_static_delegate == null)
+            {
+                efl_text_font_weight_get_static_delegate = new efl_text_font_weight_get_delegate(font_weight_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFontWeight") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_weight_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_weight_get_static_delegate) });
+            }
+
+            if (efl_text_font_weight_set_static_delegate == null)
+            {
+                efl_text_font_weight_set_static_delegate = new efl_text_font_weight_set_delegate(font_weight_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFontWeight") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_weight_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_weight_set_static_delegate) });
+            }
+
+            if (efl_text_font_slant_get_static_delegate == null)
+            {
+                efl_text_font_slant_get_static_delegate = new efl_text_font_slant_get_delegate(font_slant_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFontSlant") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_slant_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_slant_get_static_delegate) });
+            }
+
+            if (efl_text_font_slant_set_static_delegate == null)
+            {
+                efl_text_font_slant_set_static_delegate = new efl_text_font_slant_set_delegate(font_slant_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFontSlant") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_slant_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_slant_set_static_delegate) });
+            }
+
+            if (efl_text_font_width_get_static_delegate == null)
+            {
+                efl_text_font_width_get_static_delegate = new efl_text_font_width_get_delegate(font_width_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFontWidth") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_width_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_width_get_static_delegate) });
+            }
+
+            if (efl_text_font_width_set_static_delegate == null)
+            {
+                efl_text_font_width_set_static_delegate = new efl_text_font_width_set_delegate(font_width_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFontWidth") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_width_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_width_set_static_delegate) });
+            }
+
+            if (efl_text_font_lang_get_static_delegate == null)
+            {
+                efl_text_font_lang_get_static_delegate = new efl_text_font_lang_get_delegate(font_lang_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFontLang") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_lang_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_lang_get_static_delegate) });
+            }
+
+            if (efl_text_font_lang_set_static_delegate == null)
+            {
+                efl_text_font_lang_set_static_delegate = new efl_text_font_lang_set_delegate(font_lang_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFontLang") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_lang_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_lang_set_static_delegate) });
+            }
+
+            if (efl_text_font_bitmap_scalable_get_static_delegate == null)
+            {
+                efl_text_font_bitmap_scalable_get_static_delegate = new efl_text_font_bitmap_scalable_get_delegate(font_bitmap_scalable_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFontBitmapScalable") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_bitmap_scalable_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_bitmap_scalable_get_static_delegate) });
+            }
+
+            if (efl_text_font_bitmap_scalable_set_static_delegate == null)
+            {
+                efl_text_font_bitmap_scalable_set_static_delegate = new efl_text_font_bitmap_scalable_set_delegate(font_bitmap_scalable_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFontBitmapScalable") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_font_bitmap_scalable_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_font_bitmap_scalable_set_static_delegate) });
+            }
+
+            if (efl_text_ellipsis_get_static_delegate == null)
+            {
+                efl_text_ellipsis_get_static_delegate = new efl_text_ellipsis_get_delegate(ellipsis_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetEllipsis") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_ellipsis_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_ellipsis_get_static_delegate) });
+            }
+
+            if (efl_text_ellipsis_set_static_delegate == null)
+            {
+                efl_text_ellipsis_set_static_delegate = new efl_text_ellipsis_set_delegate(ellipsis_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetEllipsis") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_ellipsis_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_ellipsis_set_static_delegate) });
+            }
+
+            if (efl_text_wrap_get_static_delegate == null)
+            {
+                efl_text_wrap_get_static_delegate = new efl_text_wrap_get_delegate(wrap_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetWrap") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_wrap_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_wrap_get_static_delegate) });
+            }
+
+            if (efl_text_wrap_set_static_delegate == null)
+            {
+                efl_text_wrap_set_static_delegate = new efl_text_wrap_set_delegate(wrap_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetWrap") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_wrap_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_wrap_set_static_delegate) });
+            }
+
+            if (efl_text_multiline_get_static_delegate == null)
+            {
+                efl_text_multiline_get_static_delegate = new efl_text_multiline_get_delegate(multiline_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetMultiline") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_multiline_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_multiline_get_static_delegate) });
+            }
+
+            if (efl_text_multiline_set_static_delegate == null)
+            {
+                efl_text_multiline_set_static_delegate = new efl_text_multiline_set_delegate(multiline_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetMultiline") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_multiline_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_multiline_set_static_delegate) });
+            }
+
+            if (efl_text_halign_auto_type_get_static_delegate == null)
+            {
+                efl_text_halign_auto_type_get_static_delegate = new efl_text_halign_auto_type_get_delegate(halign_auto_type_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetHalignAutoType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_halign_auto_type_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_halign_auto_type_get_static_delegate) });
+            }
+
+            if (efl_text_halign_auto_type_set_static_delegate == null)
+            {
+                efl_text_halign_auto_type_set_static_delegate = new efl_text_halign_auto_type_set_delegate(halign_auto_type_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetHalignAutoType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_halign_auto_type_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_halign_auto_type_set_static_delegate) });
+            }
+
+            if (efl_text_halign_get_static_delegate == null)
+            {
+                efl_text_halign_get_static_delegate = new efl_text_halign_get_delegate(halign_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetHalign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_halign_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_halign_get_static_delegate) });
+            }
+
+            if (efl_text_halign_set_static_delegate == null)
+            {
+                efl_text_halign_set_static_delegate = new efl_text_halign_set_delegate(halign_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetHalign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_halign_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_halign_set_static_delegate) });
+            }
+
+            if (efl_text_valign_get_static_delegate == null)
+            {
+                efl_text_valign_get_static_delegate = new efl_text_valign_get_delegate(valign_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetValign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_valign_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_valign_get_static_delegate) });
+            }
+
+            if (efl_text_valign_set_static_delegate == null)
+            {
+                efl_text_valign_set_static_delegate = new efl_text_valign_set_delegate(valign_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetValign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_valign_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_valign_set_static_delegate) });
+            }
+
+            if (efl_text_linegap_get_static_delegate == null)
+            {
+                efl_text_linegap_get_static_delegate = new efl_text_linegap_get_delegate(linegap_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetLinegap") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_linegap_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_linegap_get_static_delegate) });
+            }
+
+            if (efl_text_linegap_set_static_delegate == null)
+            {
+                efl_text_linegap_set_static_delegate = new efl_text_linegap_set_delegate(linegap_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetLinegap") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_linegap_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_linegap_set_static_delegate) });
+            }
+
+            if (efl_text_linerelgap_get_static_delegate == null)
+            {
+                efl_text_linerelgap_get_static_delegate = new efl_text_linerelgap_get_delegate(linerelgap_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetLinerelgap") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_linerelgap_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_linerelgap_get_static_delegate) });
+            }
+
+            if (efl_text_linerelgap_set_static_delegate == null)
+            {
+                efl_text_linerelgap_set_static_delegate = new efl_text_linerelgap_set_delegate(linerelgap_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetLinerelgap") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_linerelgap_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_linerelgap_set_static_delegate) });
+            }
+
+            if (efl_text_tabstops_get_static_delegate == null)
+            {
+                efl_text_tabstops_get_static_delegate = new efl_text_tabstops_get_delegate(tabstops_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetTabstops") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_tabstops_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_tabstops_get_static_delegate) });
+            }
+
+            if (efl_text_tabstops_set_static_delegate == null)
+            {
+                efl_text_tabstops_set_static_delegate = new efl_text_tabstops_set_delegate(tabstops_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetTabstops") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_tabstops_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_tabstops_set_static_delegate) });
+            }
+
+            if (efl_text_password_get_static_delegate == null)
+            {
+                efl_text_password_get_static_delegate = new efl_text_password_get_delegate(password_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetPassword") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_password_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_password_get_static_delegate) });
+            }
+
+            if (efl_text_password_set_static_delegate == null)
+            {
+                efl_text_password_set_static_delegate = new efl_text_password_set_delegate(password_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetPassword") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_password_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_password_set_static_delegate) });
+            }
+
+            if (efl_text_replacement_char_get_static_delegate == null)
+            {
+                efl_text_replacement_char_get_static_delegate = new efl_text_replacement_char_get_delegate(replacement_char_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetReplacementChar") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_replacement_char_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_replacement_char_get_static_delegate) });
+            }
+
+            if (efl_text_replacement_char_set_static_delegate == null)
+            {
+                efl_text_replacement_char_set_static_delegate = new efl_text_replacement_char_set_delegate(replacement_char_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetReplacementChar") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_replacement_char_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_replacement_char_set_static_delegate) });
+            }
+
+            if (efl_text_markup_get_static_delegate == null)
+            {
+                efl_text_markup_get_static_delegate = new efl_text_markup_get_delegate(markup_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetMarkup") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_markup_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_markup_get_static_delegate) });
+            }
+
+            if (efl_text_markup_set_static_delegate == null)
+            {
+                efl_text_markup_set_static_delegate = new efl_text_markup_set_delegate(markup_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetMarkup") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_markup_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_markup_set_static_delegate) });
+            }
+
+            if (efl_text_markup_interactive_markup_range_get_static_delegate == null)
+            {
+                efl_text_markup_interactive_markup_range_get_static_delegate = new efl_text_markup_interactive_markup_range_get_delegate(markup_range_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetMarkupRange") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_markup_interactive_markup_range_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_markup_interactive_markup_range_get_static_delegate) });
+            }
+
+            if (efl_text_markup_interactive_markup_range_set_static_delegate == null)
+            {
+                efl_text_markup_interactive_markup_range_set_static_delegate = new efl_text_markup_interactive_markup_range_set_delegate(markup_range_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetMarkupRange") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_markup_interactive_markup_range_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_markup_interactive_markup_range_set_static_delegate) });
+            }
+
+            if (efl_text_markup_interactive_cursor_markup_insert_static_delegate == null)
+            {
+                efl_text_markup_interactive_cursor_markup_insert_static_delegate = new efl_text_markup_interactive_cursor_markup_insert_delegate(cursor_markup_insert);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "CursorMarkupInsert") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_markup_interactive_cursor_markup_insert"), func = Marshal.GetFunctionPointerForDelegate(efl_text_markup_interactive_cursor_markup_insert_static_delegate) });
+            }
+
+            if (efl_text_normal_color_get_static_delegate == null)
+            {
+                efl_text_normal_color_get_static_delegate = new efl_text_normal_color_get_delegate(normal_color_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetNormalColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_normal_color_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_normal_color_get_static_delegate) });
+            }
+
+            if (efl_text_normal_color_set_static_delegate == null)
+            {
+                efl_text_normal_color_set_static_delegate = new efl_text_normal_color_set_delegate(normal_color_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetNormalColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_normal_color_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_normal_color_set_static_delegate) });
+            }
+
+            if (efl_text_backing_type_get_static_delegate == null)
+            {
+                efl_text_backing_type_get_static_delegate = new efl_text_backing_type_get_delegate(backing_type_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetBackingType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_backing_type_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_backing_type_get_static_delegate) });
+            }
+
+            if (efl_text_backing_type_set_static_delegate == null)
+            {
+                efl_text_backing_type_set_static_delegate = new efl_text_backing_type_set_delegate(backing_type_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetBackingType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_backing_type_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_backing_type_set_static_delegate) });
+            }
+
+            if (efl_text_backing_color_get_static_delegate == null)
+            {
+                efl_text_backing_color_get_static_delegate = new efl_text_backing_color_get_delegate(backing_color_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetBackingColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_backing_color_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_backing_color_get_static_delegate) });
+            }
+
+            if (efl_text_backing_color_set_static_delegate == null)
+            {
+                efl_text_backing_color_set_static_delegate = new efl_text_backing_color_set_delegate(backing_color_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetBackingColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_backing_color_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_backing_color_set_static_delegate) });
+            }
+
+            if (efl_text_underline_type_get_static_delegate == null)
+            {
+                efl_text_underline_type_get_static_delegate = new efl_text_underline_type_get_delegate(underline_type_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetUnderlineType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_type_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_type_get_static_delegate) });
+            }
+
+            if (efl_text_underline_type_set_static_delegate == null)
+            {
+                efl_text_underline_type_set_static_delegate = new efl_text_underline_type_set_delegate(underline_type_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetUnderlineType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_type_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_type_set_static_delegate) });
+            }
+
+            if (efl_text_underline_color_get_static_delegate == null)
+            {
+                efl_text_underline_color_get_static_delegate = new efl_text_underline_color_get_delegate(underline_color_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetUnderlineColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_color_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_color_get_static_delegate) });
+            }
+
+            if (efl_text_underline_color_set_static_delegate == null)
+            {
+                efl_text_underline_color_set_static_delegate = new efl_text_underline_color_set_delegate(underline_color_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetUnderlineColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_color_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_color_set_static_delegate) });
+            }
+
+            if (efl_text_underline_height_get_static_delegate == null)
+            {
+                efl_text_underline_height_get_static_delegate = new efl_text_underline_height_get_delegate(underline_height_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetUnderlineHeight") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_height_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_height_get_static_delegate) });
+            }
+
+            if (efl_text_underline_height_set_static_delegate == null)
+            {
+                efl_text_underline_height_set_static_delegate = new efl_text_underline_height_set_delegate(underline_height_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetUnderlineHeight") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_height_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_height_set_static_delegate) });
+            }
+
+            if (efl_text_underline_dashed_color_get_static_delegate == null)
+            {
+                efl_text_underline_dashed_color_get_static_delegate = new efl_text_underline_dashed_color_get_delegate(underline_dashed_color_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetUnderlineDashedColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_dashed_color_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_dashed_color_get_static_delegate) });
+            }
+
+            if (efl_text_underline_dashed_color_set_static_delegate == null)
+            {
+                efl_text_underline_dashed_color_set_static_delegate = new efl_text_underline_dashed_color_set_delegate(underline_dashed_color_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetUnderlineDashedColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_dashed_color_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_dashed_color_set_static_delegate) });
+            }
+
+            if (efl_text_underline_dashed_width_get_static_delegate == null)
+            {
+                efl_text_underline_dashed_width_get_static_delegate = new efl_text_underline_dashed_width_get_delegate(underline_dashed_width_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetUnderlineDashedWidth") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_dashed_width_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_dashed_width_get_static_delegate) });
+            }
+
+            if (efl_text_underline_dashed_width_set_static_delegate == null)
+            {
+                efl_text_underline_dashed_width_set_static_delegate = new efl_text_underline_dashed_width_set_delegate(underline_dashed_width_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetUnderlineDashedWidth") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_dashed_width_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_dashed_width_set_static_delegate) });
+            }
+
+            if (efl_text_underline_dashed_gap_get_static_delegate == null)
+            {
+                efl_text_underline_dashed_gap_get_static_delegate = new efl_text_underline_dashed_gap_get_delegate(underline_dashed_gap_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetUnderlineDashedGap") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_dashed_gap_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_dashed_gap_get_static_delegate) });
+            }
+
+            if (efl_text_underline_dashed_gap_set_static_delegate == null)
+            {
+                efl_text_underline_dashed_gap_set_static_delegate = new efl_text_underline_dashed_gap_set_delegate(underline_dashed_gap_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetUnderlineDashedGap") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline_dashed_gap_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline_dashed_gap_set_static_delegate) });
+            }
+
+            if (efl_text_underline2_color_get_static_delegate == null)
+            {
+                efl_text_underline2_color_get_static_delegate = new efl_text_underline2_color_get_delegate(underline2_color_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetUnderline2Color") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline2_color_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline2_color_get_static_delegate) });
+            }
+
+            if (efl_text_underline2_color_set_static_delegate == null)
+            {
+                efl_text_underline2_color_set_static_delegate = new efl_text_underline2_color_set_delegate(underline2_color_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetUnderline2Color") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_underline2_color_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_underline2_color_set_static_delegate) });
+            }
+
+            if (efl_text_strikethrough_type_get_static_delegate == null)
+            {
+                efl_text_strikethrough_type_get_static_delegate = new efl_text_strikethrough_type_get_delegate(strikethrough_type_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetStrikethroughType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_strikethrough_type_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_strikethrough_type_get_static_delegate) });
+            }
+
+            if (efl_text_strikethrough_type_set_static_delegate == null)
+            {
+                efl_text_strikethrough_type_set_static_delegate = new efl_text_strikethrough_type_set_delegate(strikethrough_type_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetStrikethroughType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_strikethrough_type_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_strikethrough_type_set_static_delegate) });
+            }
+
+            if (efl_text_strikethrough_color_get_static_delegate == null)
+            {
+                efl_text_strikethrough_color_get_static_delegate = new efl_text_strikethrough_color_get_delegate(strikethrough_color_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetStrikethroughColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_strikethrough_color_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_strikethrough_color_get_static_delegate) });
+            }
+
+            if (efl_text_strikethrough_color_set_static_delegate == null)
+            {
+                efl_text_strikethrough_color_set_static_delegate = new efl_text_strikethrough_color_set_delegate(strikethrough_color_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetStrikethroughColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_strikethrough_color_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_strikethrough_color_set_static_delegate) });
+            }
+
+            if (efl_text_effect_type_get_static_delegate == null)
+            {
+                efl_text_effect_type_get_static_delegate = new efl_text_effect_type_get_delegate(effect_type_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetEffectType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_effect_type_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_effect_type_get_static_delegate) });
+            }
+
+            if (efl_text_effect_type_set_static_delegate == null)
+            {
+                efl_text_effect_type_set_static_delegate = new efl_text_effect_type_set_delegate(effect_type_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetEffectType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_effect_type_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_effect_type_set_static_delegate) });
+            }
+
+            if (efl_text_outline_color_get_static_delegate == null)
+            {
+                efl_text_outline_color_get_static_delegate = new efl_text_outline_color_get_delegate(outline_color_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetOutlineColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_outline_color_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_outline_color_get_static_delegate) });
+            }
+
+            if (efl_text_outline_color_set_static_delegate == null)
+            {
+                efl_text_outline_color_set_static_delegate = new efl_text_outline_color_set_delegate(outline_color_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetOutlineColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_outline_color_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_outline_color_set_static_delegate) });
+            }
+
+            if (efl_text_shadow_direction_get_static_delegate == null)
+            {
+                efl_text_shadow_direction_get_static_delegate = new efl_text_shadow_direction_get_delegate(shadow_direction_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetShadowDirection") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_shadow_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_shadow_direction_get_static_delegate) });
+            }
+
+            if (efl_text_shadow_direction_set_static_delegate == null)
+            {
+                efl_text_shadow_direction_set_static_delegate = new efl_text_shadow_direction_set_delegate(shadow_direction_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetShadowDirection") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_shadow_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_shadow_direction_set_static_delegate) });
+            }
+
+            if (efl_text_shadow_color_get_static_delegate == null)
+            {
+                efl_text_shadow_color_get_static_delegate = new efl_text_shadow_color_get_delegate(shadow_color_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetShadowColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_shadow_color_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_shadow_color_get_static_delegate) });
+            }
+
+            if (efl_text_shadow_color_set_static_delegate == null)
+            {
+                efl_text_shadow_color_set_static_delegate = new efl_text_shadow_color_set_delegate(shadow_color_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetShadowColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_shadow_color_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_shadow_color_set_static_delegate) });
+            }
+
+            if (efl_text_glow_color_get_static_delegate == null)
+            {
+                efl_text_glow_color_get_static_delegate = new efl_text_glow_color_get_delegate(glow_color_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetGlowColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_glow_color_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_glow_color_get_static_delegate) });
+            }
+
+            if (efl_text_glow_color_set_static_delegate == null)
+            {
+                efl_text_glow_color_set_static_delegate = new efl_text_glow_color_set_delegate(glow_color_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetGlowColor") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_glow_color_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_glow_color_set_static_delegate) });
+            }
+
+            if (efl_text_glow2_color_get_static_delegate == null)
+            {
+                efl_text_glow2_color_get_static_delegate = new efl_text_glow2_color_get_delegate(glow2_color_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetGlow2Color") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_glow2_color_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_glow2_color_get_static_delegate) });
+            }
+
+            if (efl_text_glow2_color_set_static_delegate == null)
+            {
+                efl_text_glow2_color_set_static_delegate = new efl_text_glow2_color_set_delegate(glow2_color_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetGlow2Color") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_glow2_color_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_glow2_color_set_static_delegate) });
+            }
+
+            if (efl_text_gfx_filter_get_static_delegate == null)
+            {
+                efl_text_gfx_filter_get_static_delegate = new efl_text_gfx_filter_get_delegate(gfx_filter_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetGfxFilter") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_gfx_filter_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_gfx_filter_get_static_delegate) });
+            }
+
+            if (efl_text_gfx_filter_set_static_delegate == null)
+            {
+                efl_text_gfx_filter_set_static_delegate = new efl_text_gfx_filter_set_delegate(gfx_filter_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetGfxFilter") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_gfx_filter_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_gfx_filter_set_static_delegate) });
+            }
+
+            if (evas_filter_changed_set_static_delegate == null)
+            {
+                evas_filter_changed_set_static_delegate = new evas_filter_changed_set_delegate(filter_changed_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFilterChanged") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "evas_filter_changed_set"), func = Marshal.GetFunctionPointerForDelegate(evas_filter_changed_set_static_delegate) });
+            }
+
+            if (evas_filter_invalid_set_static_delegate == null)
+            {
+                evas_filter_invalid_set_static_delegate = new evas_filter_invalid_set_delegate(filter_invalid_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFilterInvalid") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "evas_filter_invalid_set"), func = Marshal.GetFunctionPointerForDelegate(evas_filter_invalid_set_static_delegate) });
+            }
+
+            if (evas_filter_output_buffer_get_static_delegate == null)
+            {
+                evas_filter_output_buffer_get_static_delegate = new evas_filter_output_buffer_get_delegate(filter_output_buffer_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFilterOutputBuffer") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "evas_filter_output_buffer_get"), func = Marshal.GetFunctionPointerForDelegate(evas_filter_output_buffer_get_static_delegate) });
+            }
+
+            if (evas_filter_input_alpha_static_delegate == null)
+            {
+                evas_filter_input_alpha_static_delegate = new evas_filter_input_alpha_delegate(filter_input_alpha);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "FilterInputAlpha") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "evas_filter_input_alpha"), func = Marshal.GetFunctionPointerForDelegate(evas_filter_input_alpha_static_delegate) });
+            }
+
+            if (evas_filter_state_prepare_static_delegate == null)
+            {
+                evas_filter_state_prepare_static_delegate = new evas_filter_state_prepare_delegate(filter_state_prepare);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "FilterStatePrepare") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "evas_filter_state_prepare"), func = Marshal.GetFunctionPointerForDelegate(evas_filter_state_prepare_static_delegate) });
+            }
+
+            if (evas_filter_input_render_static_delegate == null)
+            {
+                evas_filter_input_render_static_delegate = new evas_filter_input_render_delegate(filter_input_render);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "FilterInputRender") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "evas_filter_input_render"), func = Marshal.GetFunctionPointerForDelegate(evas_filter_input_render_static_delegate) });
+            }
+
+            if (evas_filter_dirty_static_delegate == null)
+            {
+                evas_filter_dirty_static_delegate = new evas_filter_dirty_delegate(filter_dirty);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "FilterDirty") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "evas_filter_dirty"), func = Marshal.GetFunctionPointerForDelegate(evas_filter_dirty_static_delegate) });
+            }
+
+            if (efl_gfx_filter_program_get_static_delegate == null)
+            {
+                efl_gfx_filter_program_get_static_delegate = new efl_gfx_filter_program_get_delegate(filter_program_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFilterProgram") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_filter_program_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_filter_program_get_static_delegate) });
+            }
+
+            if (efl_gfx_filter_program_set_static_delegate == null)
+            {
+                efl_gfx_filter_program_set_static_delegate = new efl_gfx_filter_program_set_delegate(filter_program_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFilterProgram") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_filter_program_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_filter_program_set_static_delegate) });
+            }
+
+            if (efl_gfx_filter_state_get_static_delegate == null)
+            {
+                efl_gfx_filter_state_get_static_delegate = new efl_gfx_filter_state_get_delegate(filter_state_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFilterState") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_filter_state_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_filter_state_get_static_delegate) });
+            }
+
+            if (efl_gfx_filter_state_set_static_delegate == null)
+            {
+                efl_gfx_filter_state_set_static_delegate = new efl_gfx_filter_state_set_delegate(filter_state_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFilterState") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_filter_state_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_filter_state_set_static_delegate) });
+            }
+
+            if (efl_gfx_filter_padding_get_static_delegate == null)
+            {
+                efl_gfx_filter_padding_get_static_delegate = new efl_gfx_filter_padding_get_delegate(filter_padding_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFilterPadding") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_filter_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_filter_padding_get_static_delegate) });
+            }
+
+            if (efl_gfx_filter_source_get_static_delegate == null)
+            {
+                efl_gfx_filter_source_get_static_delegate = new efl_gfx_filter_source_get_delegate(filter_source_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFilterSource") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_filter_source_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_filter_source_get_static_delegate) });
+            }
+
+            if (efl_gfx_filter_source_set_static_delegate == null)
+            {
+                efl_gfx_filter_source_set_static_delegate = new efl_gfx_filter_source_set_delegate(filter_source_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFilterSource") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_filter_source_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_filter_source_set_static_delegate) });
+            }
+
+            if (efl_gfx_filter_data_get_static_delegate == null)
+            {
+                efl_gfx_filter_data_get_static_delegate = new efl_gfx_filter_data_get_delegate(filter_data_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFilterData") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_filter_data_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_filter_data_get_static_delegate) });
+            }
+
+            if (efl_gfx_filter_data_set_static_delegate == null)
+            {
+                efl_gfx_filter_data_set_static_delegate = new efl_gfx_filter_data_set_delegate(filter_data_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFilterData") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_filter_data_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_filter_data_set_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.Text.efl_canvas_text_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_canvas_text_is_empty_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_canvas_text_is_empty_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_is_empty_get_api_delegate> efl_canvas_text_is_empty_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_is_empty_get_api_delegate>(Module, "efl_canvas_text_is_empty_get");
+
+        private static bool is_empty_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_canvas_text_is_empty_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetIsEmpty();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_text_is_empty_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_canvas_text_is_empty_get_delegate efl_canvas_text_is_empty_get_static_delegate;
+
+        
+        private delegate void efl_canvas_text_style_insets_get_delegate(System.IntPtr obj, System.IntPtr pd,  out int l,  out int r,  out int t,  out int b);
+
+        
+        public delegate void efl_canvas_text_style_insets_get_api_delegate(System.IntPtr obj,  out int l,  out int r,  out int t,  out int b);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_style_insets_get_api_delegate> efl_canvas_text_style_insets_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_style_insets_get_api_delegate>(Module, "efl_canvas_text_style_insets_get");
+
+        private static void style_insets_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
+        {
+            Eina.Log.Debug("function efl_canvas_text_style_insets_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
+                try
+                {
+                    ((Text)ws.Target).GetStyleInsets(out l, out r, out t, out b);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_canvas_text_style_insets_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out l, out r, out t, out b);
+            }
+        }
+
+        private static efl_canvas_text_style_insets_get_delegate efl_canvas_text_style_insets_get_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_canvas_text_bidi_delimiters_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_canvas_text_bidi_delimiters_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_bidi_delimiters_get_api_delegate> efl_canvas_text_bidi_delimiters_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_bidi_delimiters_get_api_delegate>(Module, "efl_canvas_text_bidi_delimiters_get");
+
+        private static System.String bidi_delimiters_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_canvas_text_bidi_delimiters_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetBidiDelimiters();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_text_bidi_delimiters_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_canvas_text_bidi_delimiters_get_delegate efl_canvas_text_bidi_delimiters_get_static_delegate;
+
+        
+        private delegate void efl_canvas_text_bidi_delimiters_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String delim);
+
+        
+        public delegate void efl_canvas_text_bidi_delimiters_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String delim);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_bidi_delimiters_set_api_delegate> efl_canvas_text_bidi_delimiters_set_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_bidi_delimiters_set_api_delegate>(Module, "efl_canvas_text_bidi_delimiters_set");
+
+        private static void bidi_delimiters_set(System.IntPtr obj, System.IntPtr pd, System.String delim)
+        {
+            Eina.Log.Debug("function efl_canvas_text_bidi_delimiters_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetBidiDelimiters(delim);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_canvas_text_bidi_delimiters_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), delim);
+            }
+        }
+
+        private static efl_canvas_text_bidi_delimiters_set_delegate efl_canvas_text_bidi_delimiters_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_canvas_text_legacy_newline_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_canvas_text_legacy_newline_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_legacy_newline_get_api_delegate> efl_canvas_text_legacy_newline_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_legacy_newline_get_api_delegate>(Module, "efl_canvas_text_legacy_newline_get");
+
+        private static bool legacy_newline_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_canvas_text_legacy_newline_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetLegacyNewline();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_text_legacy_newline_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_canvas_text_legacy_newline_get_delegate efl_canvas_text_legacy_newline_get_static_delegate;
+
+        
+        private delegate void efl_canvas_text_legacy_newline_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] bool mode);
+
+        
+        public delegate void efl_canvas_text_legacy_newline_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.U1)] bool mode);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_legacy_newline_set_api_delegate> efl_canvas_text_legacy_newline_set_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_legacy_newline_set_api_delegate>(Module, "efl_canvas_text_legacy_newline_set");
+
+        private static void legacy_newline_set(System.IntPtr obj, System.IntPtr pd, bool mode)
+        {
+            Eina.Log.Debug("function efl_canvas_text_legacy_newline_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetLegacyNewline(mode);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_canvas_text_legacy_newline_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), mode);
+            }
+        }
+
+        private static efl_canvas_text_legacy_newline_set_delegate efl_canvas_text_legacy_newline_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_canvas_text_style_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_canvas_text_style_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_style_get_api_delegate> efl_canvas_text_style_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_style_get_api_delegate>(Module, "efl_canvas_text_style_get");
+
+        private static System.String style_get(System.IntPtr obj, System.IntPtr pd, System.String key)
+        {
+            Eina.Log.Debug("function efl_canvas_text_style_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetStyle(key);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_text_style_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), key);
+            }
+        }
+
+        private static efl_canvas_text_style_get_delegate efl_canvas_text_style_get_static_delegate;
+
+        
+        private delegate void efl_canvas_text_style_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String style);
+
+        
+        public delegate void efl_canvas_text_style_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String style);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_style_set_api_delegate> efl_canvas_text_style_set_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_style_set_api_delegate>(Module, "efl_canvas_text_style_set");
+
+        private static void style_set(System.IntPtr obj, System.IntPtr pd, System.String key, System.String style)
+        {
+            Eina.Log.Debug("function efl_canvas_text_style_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Text)ws.Target).SetStyle(key, style);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_canvas_text_style_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), key, style);
+            }
+        }
+
+        private static efl_canvas_text_style_set_delegate efl_canvas_text_style_set_static_delegate;
+
+        
+        private delegate void efl_canvas_text_size_formatted_get_delegate(System.IntPtr obj, System.IntPtr pd,  out int w,  out int h);
+
+        
+        public delegate void efl_canvas_text_size_formatted_get_api_delegate(System.IntPtr obj,  out int w,  out int h);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_size_formatted_get_api_delegate> efl_canvas_text_size_formatted_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_size_formatted_get_api_delegate>(Module, "efl_canvas_text_size_formatted_get");
+
+        private static void size_formatted_get(System.IntPtr obj, System.IntPtr pd, out int w, out int h)
+        {
+            Eina.Log.Debug("function efl_canvas_text_size_formatted_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        w = default(int);        h = default(int);                            
+                try
+                {
+                    ((Text)ws.Target).GetSizeFormatted(out w, out h);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_canvas_text_size_formatted_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out w, out h);
+            }
+        }
+
+        private static efl_canvas_text_size_formatted_get_delegate efl_canvas_text_size_formatted_get_static_delegate;
+
+        
+        private delegate void efl_canvas_text_size_native_get_delegate(System.IntPtr obj, System.IntPtr pd,  out int w,  out int h);
+
+        
+        public delegate void efl_canvas_text_size_native_get_api_delegate(System.IntPtr obj,  out int w,  out int h);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_size_native_get_api_delegate> efl_canvas_text_size_native_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_size_native_get_api_delegate>(Module, "efl_canvas_text_size_native_get");
+
+        private static void size_native_get(System.IntPtr obj, System.IntPtr pd, out int w, out int h)
+        {
+            Eina.Log.Debug("function efl_canvas_text_size_native_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        w = default(int);        h = default(int);                            
+                try
+                {
+                    ((Text)ws.Target).GetSizeNative(out w, out h);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_canvas_text_size_native_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out w, out h);
+            }
+        }
+
+        private static efl_canvas_text_size_native_get_delegate efl_canvas_text_size_native_get_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_canvas_text_visible_range_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_canvas_text_visible_range_get_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_visible_range_get_api_delegate> efl_canvas_text_visible_range_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_visible_range_get_api_delegate>(Module, "efl_canvas_text_visible_range_get");
+
+        private static bool visible_range_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end)
+        {
+            Eina.Log.Debug("function efl_canvas_text_visible_range_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetVisibleRange(start, end);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_text_visible_range_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), start, end);
+            }
+        }
+
+        private static efl_canvas_text_visible_range_get_delegate efl_canvas_text_visible_range_get_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringPassOwnershipMarshaler))]
+        private delegate System.String efl_canvas_text_range_text_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringPassOwnershipMarshaler))]
+        public delegate System.String efl_canvas_text_range_text_get_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_range_text_get_api_delegate> efl_canvas_text_range_text_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_range_text_get_api_delegate>(Module, "efl_canvas_text_range_text_get");
+
+        private static System.String range_text_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
+        {
+            Eina.Log.Debug("function efl_canvas_text_range_text_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetRangeText(cur1, cur2);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_text_range_text_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur1, cur2);
+            }
+        }
+
+        private static efl_canvas_text_range_text_get_delegate efl_canvas_text_range_text_get_static_delegate;
+
+        
+        private delegate System.IntPtr efl_canvas_text_range_geometry_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        
+        public delegate System.IntPtr efl_canvas_text_range_geometry_get_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_range_geometry_get_api_delegate> efl_canvas_text_range_geometry_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_range_geometry_get_api_delegate>(Module, "efl_canvas_text_range_geometry_get");
+
+        private static System.IntPtr range_geometry_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
+        {
+            Eina.Log.Debug("function efl_canvas_text_range_geometry_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            Eina.Iterator<Eina.Rect> _ret_var = default(Eina.Iterator<Eina.Rect>);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetRangeGeometry(cur1, cur2);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        _ret_var.Own = false; return _ret_var.Handle;
+
+            }
+            else
+            {
+                return efl_canvas_text_range_geometry_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur1, cur2);
+            }
+        }
+
+        private static efl_canvas_text_range_geometry_get_delegate efl_canvas_text_range_geometry_get_static_delegate;
+
+        
+        private delegate System.IntPtr efl_canvas_text_range_simple_geometry_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        
+        public delegate System.IntPtr efl_canvas_text_range_simple_geometry_get_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_range_simple_geometry_get_api_delegate> efl_canvas_text_range_simple_geometry_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_range_simple_geometry_get_api_delegate>(Module, "efl_canvas_text_range_simple_geometry_get");
+
+        private static System.IntPtr range_simple_geometry_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
+        {
+            Eina.Log.Debug("function efl_canvas_text_range_simple_geometry_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            Eina.Iterator<Eina.Rect> _ret_var = default(Eina.Iterator<Eina.Rect>);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetRangeSimpleGeometry(cur1, cur2);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        _ret_var.Own = false; return _ret_var.Handle;
+
+            }
+            else
+            {
+                return efl_canvas_text_range_simple_geometry_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur1, cur2);
+            }
+        }
+
+        private static efl_canvas_text_range_simple_geometry_get_delegate efl_canvas_text_range_simple_geometry_get_static_delegate;
+
+        
+        private delegate void efl_canvas_text_range_delete_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        
+        public delegate void efl_canvas_text_range_delete_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_range_delete_api_delegate> efl_canvas_text_range_delete_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_range_delete_api_delegate>(Module, "efl_canvas_text_range_delete");
+
+        private static void range_delete(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
+        {
+            Eina.Log.Debug("function efl_canvas_text_range_delete was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Text)ws.Target).RangeDelete(cur1, cur2);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_canvas_text_range_delete_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur1, cur2);
+            }
+        }
+
+        private static efl_canvas_text_range_delete_delegate efl_canvas_text_range_delete_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_canvas_text_obstacle_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Object eo_obs);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_canvas_text_obstacle_add_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Object eo_obs);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_obstacle_add_api_delegate> efl_canvas_text_obstacle_add_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_obstacle_add_api_delegate>(Module, "efl_canvas_text_obstacle_add");
+
+        private static bool obstacle_add(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object eo_obs)
+        {
+            Eina.Log.Debug("function efl_canvas_text_obstacle_add was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).AddObstacle(eo_obs);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_text_obstacle_add_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), eo_obs);
+            }
+        }
+
+        private static efl_canvas_text_obstacle_add_delegate efl_canvas_text_obstacle_add_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_canvas_text_obstacle_del_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Object eo_obs);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_canvas_text_obstacle_del_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Object eo_obs);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_obstacle_del_api_delegate> efl_canvas_text_obstacle_del_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_obstacle_del_api_delegate>(Module, "efl_canvas_text_obstacle_del");
+
+        private static bool obstacle_del(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object eo_obs)
+        {
+            Eina.Log.Debug("function efl_canvas_text_obstacle_del was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).DelObstacle(eo_obs);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_text_obstacle_del_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), eo_obs);
+            }
+        }
+
+        private static efl_canvas_text_obstacle_del_delegate efl_canvas_text_obstacle_del_static_delegate;
+
+        
+        private delegate void efl_canvas_text_obstacles_update_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate void efl_canvas_text_obstacles_update_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_obstacles_update_api_delegate> efl_canvas_text_obstacles_update_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_obstacles_update_api_delegate>(Module, "efl_canvas_text_obstacles_update");
+
+        private static void obstacles_update(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_canvas_text_obstacles_update was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            
+                try
+                {
+                    ((Text)ws.Target).UpdateObstacles();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        
+            }
+            else
+            {
+                efl_canvas_text_obstacles_update_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_canvas_text_obstacles_update_delegate efl_canvas_text_obstacles_update_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Eina.FutureMarshaler))]
+        private delegate  Eina.Future efl_canvas_text_async_layout_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Eina.FutureMarshaler))]
+        public delegate  Eina.Future efl_canvas_text_async_layout_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_text_async_layout_api_delegate> efl_canvas_text_async_layout_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_text_async_layout_api_delegate>(Module, "efl_canvas_text_async_layout");
+
+        private static  Eina.Future async_layout(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_canvas_text_async_layout was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+             Eina.Future _ret_var = default( Eina.Future);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).AsyncLayout();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_text_async_layout_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_canvas_text_async_layout_delegate efl_canvas_text_async_layout_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_get_api_delegate> efl_text_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_get_api_delegate>(Module, "efl_text_get");
+
+        private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetText();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_get_delegate efl_text_get_static_delegate;
+
+        
+        private delegate void efl_text_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text);
+
+        
+        public delegate void efl_text_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_set_api_delegate> efl_text_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_set_api_delegate>(Module, "efl_text_set");
+
+        private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
+        {
+            Eina.Log.Debug("function efl_text_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetText(text);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), text);
+            }
+        }
+
+        private static efl_text_set_delegate efl_text_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_annotation_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextAnnotateAnnotation annotation);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_annotation_get_api_delegate(System.IntPtr obj,  Efl.TextAnnotateAnnotation annotation);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_annotation_get_api_delegate> efl_text_annotation_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_annotation_get_api_delegate>(Module, "efl_text_annotation_get");
+
+        private static System.String annotation_get(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation annotation)
+        {
+            Eina.Log.Debug("function efl_text_annotation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetAnnotation(annotation);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_annotation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), annotation);
+            }
+        }
+
+        private static efl_text_annotation_get_delegate efl_text_annotation_get_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_text_annotation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextAnnotateAnnotation annotation, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String format);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_text_annotation_set_api_delegate(System.IntPtr obj,  Efl.TextAnnotateAnnotation annotation, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String format);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_annotation_set_api_delegate> efl_text_annotation_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_annotation_set_api_delegate>(Module, "efl_text_annotation_set");
+
+        private static bool annotation_set(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation annotation, System.String format)
+        {
+            Eina.Log.Debug("function efl_text_annotation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).SetAnnotation(annotation, format);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_annotation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), annotation, format);
+            }
+        }
+
+        private static efl_text_annotation_set_delegate efl_text_annotation_set_static_delegate;
+
+        
+        private delegate Efl.TextAnnotateAnnotation efl_text_cursor_item_annotation_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate Efl.TextAnnotateAnnotation efl_text_cursor_item_annotation_get_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_item_annotation_get_api_delegate> efl_text_cursor_item_annotation_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_item_annotation_get_api_delegate>(Module, "efl_text_cursor_item_annotation_get");
+
+        private static Efl.TextAnnotateAnnotation cursor_item_annotation_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_item_annotation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    Efl.TextAnnotateAnnotation _ret_var = default(Efl.TextAnnotateAnnotation);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetCursorItemAnnotation(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_cursor_item_annotation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_item_annotation_get_delegate efl_text_cursor_item_annotation_get_static_delegate;
+
+        
+        private delegate System.IntPtr efl_text_range_annotations_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end);
+
+        
+        public delegate System.IntPtr efl_text_range_annotations_get_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_range_annotations_get_api_delegate> efl_text_range_annotations_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_range_annotations_get_api_delegate>(Module, "efl_text_range_annotations_get");
+
+        private static System.IntPtr range_annotations_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end)
+        {
+            Eina.Log.Debug("function efl_text_range_annotations_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            Eina.Iterator<Efl.TextAnnotateAnnotation> _ret_var = default(Eina.Iterator<Efl.TextAnnotateAnnotation>);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetRangeAnnotations(start, end);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        _ret_var.Own = false; return _ret_var.Handle;
+
+            }
+            else
+            {
+                return efl_text_range_annotations_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), start, end);
+            }
+        }
+
+        private static efl_text_range_annotations_get_delegate efl_text_range_annotations_get_static_delegate;
+
+        
+        private delegate Efl.TextAnnotateAnnotation efl_text_annotation_insert_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String format);
+
+        
+        public delegate Efl.TextAnnotateAnnotation efl_text_annotation_insert_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String format);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_annotation_insert_api_delegate> efl_text_annotation_insert_ptr = new Efl.Eo.FunctionWrapper<efl_text_annotation_insert_api_delegate>(Module, "efl_text_annotation_insert");
+
+        private static Efl.TextAnnotateAnnotation annotation_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end, System.String format)
+        {
+            Eina.Log.Debug("function efl_text_annotation_insert was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    Efl.TextAnnotateAnnotation _ret_var = default(Efl.TextAnnotateAnnotation);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).AnnotationInsert(start, end, format);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_annotation_insert_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), start, end, format);
+            }
+        }
+
+        private static efl_text_annotation_insert_delegate efl_text_annotation_insert_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_text_annotation_del_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextAnnotateAnnotation annotation);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_text_annotation_del_api_delegate(System.IntPtr obj,  Efl.TextAnnotateAnnotation annotation);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_annotation_del_api_delegate> efl_text_annotation_del_ptr = new Efl.Eo.FunctionWrapper<efl_text_annotation_del_api_delegate>(Module, "efl_text_annotation_del");
+
+        private static bool annotation_del(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation annotation)
+        {
+            Eina.Log.Debug("function efl_text_annotation_del was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).DelAnnotation(annotation);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_annotation_del_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), annotation);
+            }
+        }
+
+        private static efl_text_annotation_del_delegate efl_text_annotation_del_static_delegate;
+
+        
+        private delegate void efl_text_annotation_positions_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextAnnotateAnnotation annotation,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end);
+
+        
+        public delegate void efl_text_annotation_positions_get_api_delegate(System.IntPtr obj,  Efl.TextAnnotateAnnotation annotation,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_annotation_positions_get_api_delegate> efl_text_annotation_positions_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_annotation_positions_get_api_delegate>(Module, "efl_text_annotation_positions_get");
+
+        private static void annotation_positions_get(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation annotation, Efl.TextCursorCursor start, Efl.TextCursorCursor end)
+        {
+            Eina.Log.Debug("function efl_text_annotation_positions_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    
+                try
+                {
+                    ((Text)ws.Target).GetAnnotationPositions(annotation, start, end);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_text_annotation_positions_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), annotation, start, end);
+            }
+        }
+
+        private static efl_text_annotation_positions_get_delegate efl_text_annotation_positions_get_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_text_annotation_is_item_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextAnnotateAnnotation annotation);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_text_annotation_is_item_api_delegate(System.IntPtr obj,  Efl.TextAnnotateAnnotation annotation);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_annotation_is_item_api_delegate> efl_text_annotation_is_item_ptr = new Efl.Eo.FunctionWrapper<efl_text_annotation_is_item_api_delegate>(Module, "efl_text_annotation_is_item");
+
+        private static bool annotation_is_item(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation annotation)
+        {
+            Eina.Log.Debug("function efl_text_annotation_is_item was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).AnnotationIsItem(annotation);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_annotation_is_item_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), annotation);
+            }
+        }
+
+        private static efl_text_annotation_is_item_delegate efl_text_annotation_is_item_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_text_item_geometry_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextAnnotateAnnotation an,  out int x,  out int y,  out int w,  out int h);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_text_item_geometry_get_api_delegate(System.IntPtr obj,  Efl.TextAnnotateAnnotation an,  out int x,  out int y,  out int w,  out int h);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_item_geometry_get_api_delegate> efl_text_item_geometry_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_item_geometry_get_api_delegate>(Module, "efl_text_item_geometry_get");
+
+        private static bool item_geometry_get(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation an, out int x, out int y, out int w, out int h)
+        {
+            Eina.Log.Debug("function efl_text_item_geometry_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                        x = default(int);        y = default(int);        w = default(int);        h = default(int);                                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetItemGeometry(an, out x, out y, out w, out h);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_item_geometry_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), an, out x, out y, out w, out h);
+            }
+        }
+
+        private static efl_text_item_geometry_get_delegate efl_text_item_geometry_get_static_delegate;
+
+        
+        private delegate Efl.TextAnnotateAnnotation efl_text_cursor_item_insert_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String item, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String format);
+
+        
+        public delegate Efl.TextAnnotateAnnotation efl_text_cursor_item_insert_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String item, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String format);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_item_insert_api_delegate> efl_text_cursor_item_insert_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_item_insert_api_delegate>(Module, "efl_text_cursor_item_insert");
+
+        private static Efl.TextAnnotateAnnotation cursor_item_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, System.String item, System.String format)
+        {
+            Eina.Log.Debug("function efl_text_cursor_item_insert was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    Efl.TextAnnotateAnnotation _ret_var = default(Efl.TextAnnotateAnnotation);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).CursorItemInsert(cur, item, format);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_cursor_item_insert_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur, item, format);
+            }
+        }
+
+        private static efl_text_cursor_item_insert_delegate efl_text_cursor_item_insert_static_delegate;
+
+        
+        private delegate Efl.TextCursorCursor efl_text_cursor_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorGetType get_type);
+
+        
+        public delegate Efl.TextCursorCursor efl_text_cursor_get_api_delegate(System.IntPtr obj,  Efl.TextCursorGetType get_type);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_get_api_delegate> efl_text_cursor_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_get_api_delegate>(Module, "efl_text_cursor_get");
+
+        private static Efl.TextCursorCursor text_cursor_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorGetType get_type)
+        {
+            Eina.Log.Debug("function efl_text_cursor_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    Efl.TextCursorCursor _ret_var = default(Efl.TextCursorCursor);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetTextCursor(get_type);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_cursor_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), get_type);
+            }
+        }
+
+        private static efl_text_cursor_get_delegate efl_text_cursor_get_static_delegate;
+
+        
+        private delegate int efl_text_cursor_position_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate int efl_text_cursor_position_get_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_position_get_api_delegate> efl_text_cursor_position_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_position_get_api_delegate>(Module, "efl_text_cursor_position_get");
+
+        private static int cursor_position_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_position_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetCursorPosition(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_cursor_position_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_position_get_delegate efl_text_cursor_position_get_static_delegate;
+
+        
+        private delegate void efl_text_cursor_position_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur,  int position);
+
+        
+        public delegate void efl_text_cursor_position_set_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur,  int position);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_position_set_api_delegate> efl_text_cursor_position_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_position_set_api_delegate>(Module, "efl_text_cursor_position_set");
+
+        private static void cursor_position_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int position)
+        {
+            Eina.Log.Debug("function efl_text_cursor_position_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Text)ws.Target).SetCursorPosition(cur, position);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_text_cursor_position_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur, position);
+            }
+        }
+
+        private static efl_text_cursor_position_set_delegate efl_text_cursor_position_set_static_delegate;
+
+        
+        private delegate Eina.Unicode efl_text_cursor_content_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate Eina.Unicode efl_text_cursor_content_get_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_content_get_api_delegate> efl_text_cursor_content_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_content_get_api_delegate>(Module, "efl_text_cursor_content_get");
+
+        private static Eina.Unicode cursor_content_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_content_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    Eina.Unicode _ret_var = default(Eina.Unicode);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetCursorContent(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_cursor_content_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_content_get_delegate efl_text_cursor_content_get_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_text_cursor_geometry_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur,  Efl.TextCursorType ctype,  out int cx,  out int cy,  out int cw,  out int ch,  out int cx2,  out int cy2,  out int cw2,  out int ch2);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_text_cursor_geometry_get_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur,  Efl.TextCursorType ctype,  out int cx,  out int cy,  out int cw,  out int ch,  out int cx2,  out int cy2,  out int cw2,  out int ch2);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_geometry_get_api_delegate> efl_text_cursor_geometry_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_geometry_get_api_delegate>(Module, "efl_text_cursor_geometry_get");
+
+        private static bool cursor_geometry_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, Efl.TextCursorType ctype, out int cx, out int cy, out int cw, out int ch, out int cx2, out int cy2, out int cw2, out int ch2)
+        {
+            Eina.Log.Debug("function efl_text_cursor_geometry_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                        cx = default(int);        cy = default(int);        cw = default(int);        ch = default(int);        cx2 = default(int);        cy2 = default(int);        cw2 = default(int);        ch2 = default(int);                                                                                            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetCursorGeometry(cur, ctype, out cx, out cy, out cw, out ch, out cx2, out cy2, out cw2, out ch2);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                                                                                                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_cursor_geometry_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur, ctype, out cx, out cy, out cw, out ch, out cx2, out cy2, out cw2, out ch2);
+            }
+        }
+
+        private static efl_text_cursor_geometry_get_delegate efl_text_cursor_geometry_get_static_delegate;
+
+        
+        private delegate Efl.TextCursorCursor efl_text_cursor_new_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextCursorCursor efl_text_cursor_new_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_new_api_delegate> efl_text_cursor_new_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_new_api_delegate>(Module, "efl_text_cursor_new");
+
+        private static Efl.TextCursorCursor cursor_new(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_cursor_new was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextCursorCursor _ret_var = default(Efl.TextCursorCursor);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).NewCursor();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_cursor_new_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_cursor_new_delegate efl_text_cursor_new_static_delegate;
+
+        
+        private delegate void efl_text_cursor_free_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_free_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_free_api_delegate> efl_text_cursor_free_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_free_api_delegate>(Module, "efl_text_cursor_free");
+
+        private static void cursor_free(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_free was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorFree(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_free_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_free_delegate efl_text_cursor_free_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_text_cursor_equal_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_text_cursor_equal_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_equal_api_delegate> efl_text_cursor_equal_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_equal_api_delegate>(Module, "efl_text_cursor_equal");
+
+        private static bool cursor_equal(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
+        {
+            Eina.Log.Debug("function efl_text_cursor_equal was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).CursorEqual(cur1, cur2);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_cursor_equal_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur1, cur2);
+            }
+        }
+
+        private static efl_text_cursor_equal_delegate efl_text_cursor_equal_static_delegate;
+
+        
+        private delegate int efl_text_cursor_compare_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        
+        public delegate int efl_text_cursor_compare_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur1,  Efl.TextCursorCursor cur2);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_compare_api_delegate> efl_text_cursor_compare_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_compare_api_delegate>(Module, "efl_text_cursor_compare");
+
+        private static int cursor_compare(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
+        {
+            Eina.Log.Debug("function efl_text_cursor_compare was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).CursorCompare(cur1, cur2);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_cursor_compare_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur1, cur2);
+            }
+        }
+
+        private static efl_text_cursor_compare_delegate efl_text_cursor_compare_static_delegate;
+
+        
+        private delegate void efl_text_cursor_copy_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor dst,  Efl.TextCursorCursor src);
+
+        
+        public delegate void efl_text_cursor_copy_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor dst,  Efl.TextCursorCursor src);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_copy_api_delegate> efl_text_cursor_copy_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_copy_api_delegate>(Module, "efl_text_cursor_copy");
+
+        private static void cursor_copy(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor dst, Efl.TextCursorCursor src)
+        {
+            Eina.Log.Debug("function efl_text_cursor_copy was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Text)ws.Target).CursorCopy(dst, src);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_text_cursor_copy_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dst, src);
+            }
+        }
+
+        private static efl_text_cursor_copy_delegate efl_text_cursor_copy_static_delegate;
+
+        
+        private delegate void efl_text_cursor_char_next_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_char_next_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_char_next_api_delegate> efl_text_cursor_char_next_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_char_next_api_delegate>(Module, "efl_text_cursor_char_next");
+
+        private static void cursor_char_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_char_next was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorCharNext(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_char_next_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_char_next_delegate efl_text_cursor_char_next_static_delegate;
+
+        
+        private delegate void efl_text_cursor_char_prev_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_char_prev_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_char_prev_api_delegate> efl_text_cursor_char_prev_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_char_prev_api_delegate>(Module, "efl_text_cursor_char_prev");
+
+        private static void cursor_char_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_char_prev was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorCharPrev(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_char_prev_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_char_prev_delegate efl_text_cursor_char_prev_static_delegate;
+
+        
+        private delegate void efl_text_cursor_cluster_next_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_cluster_next_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_cluster_next_api_delegate> efl_text_cursor_cluster_next_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_cluster_next_api_delegate>(Module, "efl_text_cursor_cluster_next");
+
+        private static void cursor_cluster_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_cluster_next was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorClusterNext(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_cluster_next_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_cluster_next_delegate efl_text_cursor_cluster_next_static_delegate;
+
+        
+        private delegate void efl_text_cursor_cluster_prev_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_cluster_prev_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_cluster_prev_api_delegate> efl_text_cursor_cluster_prev_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_cluster_prev_api_delegate>(Module, "efl_text_cursor_cluster_prev");
+
+        private static void cursor_cluster_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_cluster_prev was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorClusterPrev(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_cluster_prev_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_cluster_prev_delegate efl_text_cursor_cluster_prev_static_delegate;
+
+        
+        private delegate void efl_text_cursor_paragraph_char_first_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_paragraph_char_first_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_char_first_api_delegate> efl_text_cursor_paragraph_char_first_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_char_first_api_delegate>(Module, "efl_text_cursor_paragraph_char_first");
+
+        private static void cursor_paragraph_char_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_paragraph_char_first was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorParagraphCharFirst(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_paragraph_char_first_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_paragraph_char_first_delegate efl_text_cursor_paragraph_char_first_static_delegate;
+
+        
+        private delegate void efl_text_cursor_paragraph_char_last_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_paragraph_char_last_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_char_last_api_delegate> efl_text_cursor_paragraph_char_last_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_char_last_api_delegate>(Module, "efl_text_cursor_paragraph_char_last");
+
+        private static void cursor_paragraph_char_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_paragraph_char_last was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorParagraphCharLast(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_paragraph_char_last_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_paragraph_char_last_delegate efl_text_cursor_paragraph_char_last_static_delegate;
+
+        
+        private delegate void efl_text_cursor_word_start_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_word_start_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_word_start_api_delegate> efl_text_cursor_word_start_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_word_start_api_delegate>(Module, "efl_text_cursor_word_start");
+
+        private static void cursor_word_start(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_word_start was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorWordStart(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_word_start_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_word_start_delegate efl_text_cursor_word_start_static_delegate;
+
+        
+        private delegate void efl_text_cursor_word_end_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_word_end_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_word_end_api_delegate> efl_text_cursor_word_end_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_word_end_api_delegate>(Module, "efl_text_cursor_word_end");
+
+        private static void cursor_word_end(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_word_end was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorWordEnd(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_word_end_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_word_end_delegate efl_text_cursor_word_end_static_delegate;
+
+        
+        private delegate void efl_text_cursor_line_char_first_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_line_char_first_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_line_char_first_api_delegate> efl_text_cursor_line_char_first_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_line_char_first_api_delegate>(Module, "efl_text_cursor_line_char_first");
+
+        private static void cursor_line_char_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_line_char_first was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorLineCharFirst(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_line_char_first_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_line_char_first_delegate efl_text_cursor_line_char_first_static_delegate;
+
+        
+        private delegate void efl_text_cursor_line_char_last_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_line_char_last_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_line_char_last_api_delegate> efl_text_cursor_line_char_last_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_line_char_last_api_delegate>(Module, "efl_text_cursor_line_char_last");
+
+        private static void cursor_line_char_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_line_char_last was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorLineCharLast(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_line_char_last_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_line_char_last_delegate efl_text_cursor_line_char_last_static_delegate;
+
+        
+        private delegate void efl_text_cursor_paragraph_first_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_paragraph_first_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_first_api_delegate> efl_text_cursor_paragraph_first_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_first_api_delegate>(Module, "efl_text_cursor_paragraph_first");
+
+        private static void cursor_paragraph_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_paragraph_first was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorParagraphFirst(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_paragraph_first_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_paragraph_first_delegate efl_text_cursor_paragraph_first_static_delegate;
+
+        
+        private delegate void efl_text_cursor_paragraph_last_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_paragraph_last_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_last_api_delegate> efl_text_cursor_paragraph_last_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_last_api_delegate>(Module, "efl_text_cursor_paragraph_last");
+
+        private static void cursor_paragraph_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_paragraph_last was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorParagraphLast(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_paragraph_last_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_paragraph_last_delegate efl_text_cursor_paragraph_last_static_delegate;
+
+        
+        private delegate void efl_text_cursor_paragraph_next_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_paragraph_next_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_next_api_delegate> efl_text_cursor_paragraph_next_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_next_api_delegate>(Module, "efl_text_cursor_paragraph_next");
+
+        private static void cursor_paragraph_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_paragraph_next was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorParagraphNext(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_paragraph_next_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_paragraph_next_delegate efl_text_cursor_paragraph_next_static_delegate;
+
+        
+        private delegate void efl_text_cursor_paragraph_prev_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_paragraph_prev_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_prev_api_delegate> efl_text_cursor_paragraph_prev_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_paragraph_prev_api_delegate>(Module, "efl_text_cursor_paragraph_prev");
+
+        private static void cursor_paragraph_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_paragraph_prev was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorParagraphPrev(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_paragraph_prev_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_paragraph_prev_delegate efl_text_cursor_paragraph_prev_static_delegate;
+
+        
+        private delegate void efl_text_cursor_line_jump_by_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur,  int by);
+
+        
+        public delegate void efl_text_cursor_line_jump_by_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur,  int by);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_line_jump_by_api_delegate> efl_text_cursor_line_jump_by_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_line_jump_by_api_delegate>(Module, "efl_text_cursor_line_jump_by");
+
+        private static void cursor_line_jump_by(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int by)
+        {
+            Eina.Log.Debug("function efl_text_cursor_line_jump_by was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Text)ws.Target).CursorLineJumpBy(cur, by);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_text_cursor_line_jump_by_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur, by);
+            }
+        }
+
+        private static efl_text_cursor_line_jump_by_delegate efl_text_cursor_line_jump_by_static_delegate;
+
+        
+        private delegate void efl_text_cursor_coord_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur,  int x,  int y);
+
+        
+        public delegate void efl_text_cursor_coord_set_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur,  int x,  int y);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_coord_set_api_delegate> efl_text_cursor_coord_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_coord_set_api_delegate>(Module, "efl_text_cursor_coord_set");
+
+        private static void cursor_coord_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int x, int y)
+        {
+            Eina.Log.Debug("function efl_text_cursor_coord_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    
+                try
+                {
+                    ((Text)ws.Target).SetCursorCoord(cur, x, y);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_text_cursor_coord_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur, x, y);
+            }
+        }
+
+        private static efl_text_cursor_coord_set_delegate efl_text_cursor_coord_set_static_delegate;
+
+        
+        private delegate void efl_text_cursor_cluster_coord_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur,  int x,  int y);
+
+        
+        public delegate void efl_text_cursor_cluster_coord_set_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur,  int x,  int y);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_cluster_coord_set_api_delegate> efl_text_cursor_cluster_coord_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_cluster_coord_set_api_delegate>(Module, "efl_text_cursor_cluster_coord_set");
+
+        private static void cursor_cluster_coord_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int x, int y)
+        {
+            Eina.Log.Debug("function efl_text_cursor_cluster_coord_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    
+                try
+                {
+                    ((Text)ws.Target).SetCursorClusterCoord(cur, x, y);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_text_cursor_cluster_coord_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur, x, y);
+            }
+        }
+
+        private static efl_text_cursor_cluster_coord_set_delegate efl_text_cursor_cluster_coord_set_static_delegate;
+
+        
+        private delegate int efl_text_cursor_text_insert_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text);
+
+        
+        public delegate int efl_text_cursor_text_insert_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_text_insert_api_delegate> efl_text_cursor_text_insert_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_text_insert_api_delegate>(Module, "efl_text_cursor_text_insert");
+
+        private static int cursor_text_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, System.String text)
+        {
+            Eina.Log.Debug("function efl_text_cursor_text_insert was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).CursorTextInsert(cur, text);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_cursor_text_insert_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur, text);
+            }
+        }
+
+        private static efl_text_cursor_text_insert_delegate efl_text_cursor_text_insert_static_delegate;
+
+        
+        private delegate void efl_text_cursor_char_delete_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur);
+
+        
+        public delegate void efl_text_cursor_char_delete_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_cursor_char_delete_api_delegate> efl_text_cursor_char_delete_ptr = new Efl.Eo.FunctionWrapper<efl_text_cursor_char_delete_api_delegate>(Module, "efl_text_cursor_char_delete");
+
+        private static void cursor_char_delete(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
+        {
+            Eina.Log.Debug("function efl_text_cursor_char_delete was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).CursorCharDelete(cur);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_cursor_char_delete_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur);
+            }
+        }
+
+        private static efl_text_cursor_char_delete_delegate efl_text_cursor_char_delete_static_delegate;
+
+        
+        private delegate void efl_text_font_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String font,  out Efl.Font.Size size);
+
+        
+        public delegate void efl_text_font_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String font,  out Efl.Font.Size size);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_get_api_delegate> efl_text_font_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_get_api_delegate>(Module, "efl_text_font_get");
+
+        private static void font_get(System.IntPtr obj, System.IntPtr pd, out System.String font, out Efl.Font.Size size)
+        {
+            Eina.Log.Debug("function efl_text_font_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        System.String _out_font = default(System.String);
+        size = default(Efl.Font.Size);                            
+                try
+                {
+                    ((Text)ws.Target).GetFont(out _out_font, out size);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        font = _out_font;
+                                
+            }
+            else
+            {
+                efl_text_font_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out font, out size);
+            }
+        }
+
+        private static efl_text_font_get_delegate efl_text_font_get_static_delegate;
+
+        
+        private delegate void efl_text_font_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String font,  Efl.Font.Size size);
+
+        
+        public delegate void efl_text_font_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String font,  Efl.Font.Size size);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_set_api_delegate> efl_text_font_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_set_api_delegate>(Module, "efl_text_font_set");
+
+        private static void font_set(System.IntPtr obj, System.IntPtr pd, System.String font, Efl.Font.Size size)
+        {
+            Eina.Log.Debug("function efl_text_font_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Text)ws.Target).SetFont(font, size);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_text_font_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), font, size);
+            }
+        }
+
+        private static efl_text_font_set_delegate efl_text_font_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_font_source_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_font_source_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_source_get_api_delegate> efl_text_font_source_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_source_get_api_delegate>(Module, "efl_text_font_source_get");
+
+        private static System.String font_source_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_font_source_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetFontSource();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_font_source_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_font_source_get_delegate efl_text_font_source_get_static_delegate;
+
+        
+        private delegate void efl_text_font_source_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String font_source);
+
+        
+        public delegate void efl_text_font_source_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String font_source);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_source_set_api_delegate> efl_text_font_source_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_source_set_api_delegate>(Module, "efl_text_font_source_set");
+
+        private static void font_source_set(System.IntPtr obj, System.IntPtr pd, System.String font_source)
+        {
+            Eina.Log.Debug("function efl_text_font_source_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetFontSource(font_source);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_font_source_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), font_source);
+            }
+        }
+
+        private static efl_text_font_source_set_delegate efl_text_font_source_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_font_fallbacks_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_font_fallbacks_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_fallbacks_get_api_delegate> efl_text_font_fallbacks_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_fallbacks_get_api_delegate>(Module, "efl_text_font_fallbacks_get");
+
+        private static System.String font_fallbacks_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_font_fallbacks_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetFontFallbacks();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_font_fallbacks_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_font_fallbacks_get_delegate efl_text_font_fallbacks_get_static_delegate;
+
+        
+        private delegate void efl_text_font_fallbacks_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String font_fallbacks);
+
+        
+        public delegate void efl_text_font_fallbacks_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String font_fallbacks);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_fallbacks_set_api_delegate> efl_text_font_fallbacks_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_fallbacks_set_api_delegate>(Module, "efl_text_font_fallbacks_set");
+
+        private static void font_fallbacks_set(System.IntPtr obj, System.IntPtr pd, System.String font_fallbacks)
+        {
+            Eina.Log.Debug("function efl_text_font_fallbacks_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetFontFallbacks(font_fallbacks);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_font_fallbacks_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), font_fallbacks);
+            }
+        }
+
+        private static efl_text_font_fallbacks_set_delegate efl_text_font_fallbacks_set_static_delegate;
+
+        
+        private delegate Efl.TextFontWeight efl_text_font_weight_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextFontWeight efl_text_font_weight_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_weight_get_api_delegate> efl_text_font_weight_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_weight_get_api_delegate>(Module, "efl_text_font_weight_get");
+
+        private static Efl.TextFontWeight font_weight_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_font_weight_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextFontWeight _ret_var = default(Efl.TextFontWeight);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetFontWeight();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_font_weight_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_font_weight_get_delegate efl_text_font_weight_get_static_delegate;
+
+        
+        private delegate void efl_text_font_weight_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextFontWeight font_weight);
+
+        
+        public delegate void efl_text_font_weight_set_api_delegate(System.IntPtr obj,  Efl.TextFontWeight font_weight);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_weight_set_api_delegate> efl_text_font_weight_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_weight_set_api_delegate>(Module, "efl_text_font_weight_set");
+
+        private static void font_weight_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontWeight font_weight)
+        {
+            Eina.Log.Debug("function efl_text_font_weight_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetFontWeight(font_weight);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_font_weight_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), font_weight);
+            }
+        }
+
+        private static efl_text_font_weight_set_delegate efl_text_font_weight_set_static_delegate;
+
+        
+        private delegate Efl.TextFontSlant efl_text_font_slant_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextFontSlant efl_text_font_slant_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_slant_get_api_delegate> efl_text_font_slant_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_slant_get_api_delegate>(Module, "efl_text_font_slant_get");
+
+        private static Efl.TextFontSlant font_slant_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_font_slant_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextFontSlant _ret_var = default(Efl.TextFontSlant);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetFontSlant();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_font_slant_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_font_slant_get_delegate efl_text_font_slant_get_static_delegate;
+
+        
+        private delegate void efl_text_font_slant_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextFontSlant style);
+
+        
+        public delegate void efl_text_font_slant_set_api_delegate(System.IntPtr obj,  Efl.TextFontSlant style);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_slant_set_api_delegate> efl_text_font_slant_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_slant_set_api_delegate>(Module, "efl_text_font_slant_set");
+
+        private static void font_slant_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontSlant style)
+        {
+            Eina.Log.Debug("function efl_text_font_slant_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetFontSlant(style);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_font_slant_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), style);
+            }
+        }
+
+        private static efl_text_font_slant_set_delegate efl_text_font_slant_set_static_delegate;
+
+        
+        private delegate Efl.TextFontWidth efl_text_font_width_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextFontWidth efl_text_font_width_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_width_get_api_delegate> efl_text_font_width_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_width_get_api_delegate>(Module, "efl_text_font_width_get");
+
+        private static Efl.TextFontWidth font_width_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_font_width_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextFontWidth _ret_var = default(Efl.TextFontWidth);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetFontWidth();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_font_width_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_font_width_get_delegate efl_text_font_width_get_static_delegate;
+
+        
+        private delegate void efl_text_font_width_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextFontWidth width);
+
+        
+        public delegate void efl_text_font_width_set_api_delegate(System.IntPtr obj,  Efl.TextFontWidth width);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_width_set_api_delegate> efl_text_font_width_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_width_set_api_delegate>(Module, "efl_text_font_width_set");
+
+        private static void font_width_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontWidth width)
+        {
+            Eina.Log.Debug("function efl_text_font_width_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetFontWidth(width);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_font_width_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), width);
+            }
+        }
+
+        private static efl_text_font_width_set_delegate efl_text_font_width_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_font_lang_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_font_lang_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_lang_get_api_delegate> efl_text_font_lang_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_lang_get_api_delegate>(Module, "efl_text_font_lang_get");
+
+        private static System.String font_lang_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_font_lang_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetFontLang();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_font_lang_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_font_lang_get_delegate efl_text_font_lang_get_static_delegate;
+
+        
+        private delegate void efl_text_font_lang_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String lang);
+
+        
+        public delegate void efl_text_font_lang_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String lang);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_lang_set_api_delegate> efl_text_font_lang_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_lang_set_api_delegate>(Module, "efl_text_font_lang_set");
+
+        private static void font_lang_set(System.IntPtr obj, System.IntPtr pd, System.String lang)
+        {
+            Eina.Log.Debug("function efl_text_font_lang_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetFontLang(lang);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_font_lang_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), lang);
+            }
+        }
+
+        private static efl_text_font_lang_set_delegate efl_text_font_lang_set_static_delegate;
+
+        
+        private delegate Efl.TextFontBitmapScalable efl_text_font_bitmap_scalable_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextFontBitmapScalable efl_text_font_bitmap_scalable_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_bitmap_scalable_get_api_delegate> efl_text_font_bitmap_scalable_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_bitmap_scalable_get_api_delegate>(Module, "efl_text_font_bitmap_scalable_get");
+
+        private static Efl.TextFontBitmapScalable font_bitmap_scalable_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_font_bitmap_scalable_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextFontBitmapScalable _ret_var = default(Efl.TextFontBitmapScalable);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetFontBitmapScalable();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_font_bitmap_scalable_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_font_bitmap_scalable_get_delegate efl_text_font_bitmap_scalable_get_static_delegate;
+
+        
+        private delegate void efl_text_font_bitmap_scalable_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextFontBitmapScalable scalable);
+
+        
+        public delegate void efl_text_font_bitmap_scalable_set_api_delegate(System.IntPtr obj,  Efl.TextFontBitmapScalable scalable);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_font_bitmap_scalable_set_api_delegate> efl_text_font_bitmap_scalable_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_font_bitmap_scalable_set_api_delegate>(Module, "efl_text_font_bitmap_scalable_set");
+
+        private static void font_bitmap_scalable_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontBitmapScalable scalable)
+        {
+            Eina.Log.Debug("function efl_text_font_bitmap_scalable_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetFontBitmapScalable(scalable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_font_bitmap_scalable_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), scalable);
+            }
+        }
+
+        private static efl_text_font_bitmap_scalable_set_delegate efl_text_font_bitmap_scalable_set_static_delegate;
+
+        
+        private delegate double efl_text_ellipsis_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_text_ellipsis_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_ellipsis_get_api_delegate> efl_text_ellipsis_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_ellipsis_get_api_delegate>(Module, "efl_text_ellipsis_get");
+
+        private static double ellipsis_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_ellipsis_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetEllipsis();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_ellipsis_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_ellipsis_get_delegate efl_text_ellipsis_get_static_delegate;
+
+        
+        private delegate void efl_text_ellipsis_set_delegate(System.IntPtr obj, System.IntPtr pd,  double value);
+
+        
+        public delegate void efl_text_ellipsis_set_api_delegate(System.IntPtr obj,  double value);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_ellipsis_set_api_delegate> efl_text_ellipsis_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_ellipsis_set_api_delegate>(Module, "efl_text_ellipsis_set");
+
+        private static void ellipsis_set(System.IntPtr obj, System.IntPtr pd, double value)
+        {
+            Eina.Log.Debug("function efl_text_ellipsis_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetEllipsis(value);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_ellipsis_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), value);
+            }
+        }
+
+        private static efl_text_ellipsis_set_delegate efl_text_ellipsis_set_static_delegate;
+
+        
+        private delegate Efl.TextFormatWrap efl_text_wrap_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextFormatWrap efl_text_wrap_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_wrap_get_api_delegate> efl_text_wrap_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_wrap_get_api_delegate>(Module, "efl_text_wrap_get");
+
+        private static Efl.TextFormatWrap wrap_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_wrap_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextFormatWrap _ret_var = default(Efl.TextFormatWrap);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetWrap();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_wrap_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_wrap_get_delegate efl_text_wrap_get_static_delegate;
+
+        
+        private delegate void efl_text_wrap_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextFormatWrap wrap);
+
+        
+        public delegate void efl_text_wrap_set_api_delegate(System.IntPtr obj,  Efl.TextFormatWrap wrap);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_wrap_set_api_delegate> efl_text_wrap_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_wrap_set_api_delegate>(Module, "efl_text_wrap_set");
+
+        private static void wrap_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFormatWrap wrap)
+        {
+            Eina.Log.Debug("function efl_text_wrap_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetWrap(wrap);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_wrap_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), wrap);
+            }
+        }
+
+        private static efl_text_wrap_set_delegate efl_text_wrap_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_text_multiline_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_text_multiline_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_multiline_get_api_delegate> efl_text_multiline_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_multiline_get_api_delegate>(Module, "efl_text_multiline_get");
+
+        private static bool multiline_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_multiline_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetMultiline();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_multiline_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_multiline_get_delegate efl_text_multiline_get_static_delegate;
+
+        
+        private delegate void efl_text_multiline_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] bool enabled);
+
+        
+        public delegate void efl_text_multiline_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.U1)] bool enabled);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_multiline_set_api_delegate> efl_text_multiline_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_multiline_set_api_delegate>(Module, "efl_text_multiline_set");
+
+        private static void multiline_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
+        {
+            Eina.Log.Debug("function efl_text_multiline_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetMultiline(enabled);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_multiline_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), enabled);
+            }
+        }
+
+        private static efl_text_multiline_set_delegate efl_text_multiline_set_static_delegate;
+
+        
+        private delegate Efl.TextFormatHorizontalAlignmentAutoType efl_text_halign_auto_type_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextFormatHorizontalAlignmentAutoType efl_text_halign_auto_type_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_halign_auto_type_get_api_delegate> efl_text_halign_auto_type_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_halign_auto_type_get_api_delegate>(Module, "efl_text_halign_auto_type_get");
+
+        private static Efl.TextFormatHorizontalAlignmentAutoType halign_auto_type_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_halign_auto_type_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextFormatHorizontalAlignmentAutoType _ret_var = default(Efl.TextFormatHorizontalAlignmentAutoType);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetHalignAutoType();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_halign_auto_type_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_halign_auto_type_get_delegate efl_text_halign_auto_type_get_static_delegate;
+
+        
+        private delegate void efl_text_halign_auto_type_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextFormatHorizontalAlignmentAutoType value);
+
+        
+        public delegate void efl_text_halign_auto_type_set_api_delegate(System.IntPtr obj,  Efl.TextFormatHorizontalAlignmentAutoType value);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_halign_auto_type_set_api_delegate> efl_text_halign_auto_type_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_halign_auto_type_set_api_delegate>(Module, "efl_text_halign_auto_type_set");
+
+        private static void halign_auto_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFormatHorizontalAlignmentAutoType value)
+        {
+            Eina.Log.Debug("function efl_text_halign_auto_type_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetHalignAutoType(value);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_halign_auto_type_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), value);
+            }
+        }
+
+        private static efl_text_halign_auto_type_set_delegate efl_text_halign_auto_type_set_static_delegate;
+
+        
+        private delegate double efl_text_halign_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_text_halign_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_halign_get_api_delegate> efl_text_halign_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_halign_get_api_delegate>(Module, "efl_text_halign_get");
+
+        private static double halign_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_halign_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetHalign();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_halign_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_halign_get_delegate efl_text_halign_get_static_delegate;
+
+        
+        private delegate void efl_text_halign_set_delegate(System.IntPtr obj, System.IntPtr pd,  double value);
+
+        
+        public delegate void efl_text_halign_set_api_delegate(System.IntPtr obj,  double value);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_halign_set_api_delegate> efl_text_halign_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_halign_set_api_delegate>(Module, "efl_text_halign_set");
+
+        private static void halign_set(System.IntPtr obj, System.IntPtr pd, double value)
+        {
+            Eina.Log.Debug("function efl_text_halign_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetHalign(value);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_halign_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), value);
+            }
+        }
+
+        private static efl_text_halign_set_delegate efl_text_halign_set_static_delegate;
+
+        
+        private delegate double efl_text_valign_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_text_valign_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_valign_get_api_delegate> efl_text_valign_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_valign_get_api_delegate>(Module, "efl_text_valign_get");
+
+        private static double valign_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_valign_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetValign();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_valign_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_valign_get_delegate efl_text_valign_get_static_delegate;
+
+        
+        private delegate void efl_text_valign_set_delegate(System.IntPtr obj, System.IntPtr pd,  double value);
+
+        
+        public delegate void efl_text_valign_set_api_delegate(System.IntPtr obj,  double value);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_valign_set_api_delegate> efl_text_valign_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_valign_set_api_delegate>(Module, "efl_text_valign_set");
+
+        private static void valign_set(System.IntPtr obj, System.IntPtr pd, double value)
+        {
+            Eina.Log.Debug("function efl_text_valign_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetValign(value);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_valign_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), value);
+            }
+        }
+
+        private static efl_text_valign_set_delegate efl_text_valign_set_static_delegate;
+
+        
+        private delegate double efl_text_linegap_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_text_linegap_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_linegap_get_api_delegate> efl_text_linegap_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_linegap_get_api_delegate>(Module, "efl_text_linegap_get");
+
+        private static double linegap_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_linegap_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetLinegap();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_linegap_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_linegap_get_delegate efl_text_linegap_get_static_delegate;
+
+        
+        private delegate void efl_text_linegap_set_delegate(System.IntPtr obj, System.IntPtr pd,  double value);
+
+        
+        public delegate void efl_text_linegap_set_api_delegate(System.IntPtr obj,  double value);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_linegap_set_api_delegate> efl_text_linegap_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_linegap_set_api_delegate>(Module, "efl_text_linegap_set");
+
+        private static void linegap_set(System.IntPtr obj, System.IntPtr pd, double value)
+        {
+            Eina.Log.Debug("function efl_text_linegap_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetLinegap(value);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_linegap_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), value);
+            }
+        }
+
+        private static efl_text_linegap_set_delegate efl_text_linegap_set_static_delegate;
+
+        
+        private delegate double efl_text_linerelgap_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_text_linerelgap_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_linerelgap_get_api_delegate> efl_text_linerelgap_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_linerelgap_get_api_delegate>(Module, "efl_text_linerelgap_get");
+
+        private static double linerelgap_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_linerelgap_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetLinerelgap();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_linerelgap_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_linerelgap_get_delegate efl_text_linerelgap_get_static_delegate;
+
+        
+        private delegate void efl_text_linerelgap_set_delegate(System.IntPtr obj, System.IntPtr pd,  double value);
+
+        
+        public delegate void efl_text_linerelgap_set_api_delegate(System.IntPtr obj,  double value);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_linerelgap_set_api_delegate> efl_text_linerelgap_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_linerelgap_set_api_delegate>(Module, "efl_text_linerelgap_set");
+
+        private static void linerelgap_set(System.IntPtr obj, System.IntPtr pd, double value)
+        {
+            Eina.Log.Debug("function efl_text_linerelgap_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetLinerelgap(value);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_linerelgap_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), value);
+            }
+        }
+
+        private static efl_text_linerelgap_set_delegate efl_text_linerelgap_set_static_delegate;
+
+        
+        private delegate int efl_text_tabstops_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate int efl_text_tabstops_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_tabstops_get_api_delegate> efl_text_tabstops_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_tabstops_get_api_delegate>(Module, "efl_text_tabstops_get");
+
+        private static int tabstops_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_tabstops_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetTabstops();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_tabstops_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_tabstops_get_delegate efl_text_tabstops_get_static_delegate;
+
+        
+        private delegate void efl_text_tabstops_set_delegate(System.IntPtr obj, System.IntPtr pd,  int value);
+
+        
+        public delegate void efl_text_tabstops_set_api_delegate(System.IntPtr obj,  int value);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_tabstops_set_api_delegate> efl_text_tabstops_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_tabstops_set_api_delegate>(Module, "efl_text_tabstops_set");
+
+        private static void tabstops_set(System.IntPtr obj, System.IntPtr pd, int value)
+        {
+            Eina.Log.Debug("function efl_text_tabstops_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetTabstops(value);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_tabstops_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), value);
+            }
+        }
+
+        private static efl_text_tabstops_set_delegate efl_text_tabstops_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_text_password_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_text_password_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_password_get_api_delegate> efl_text_password_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_password_get_api_delegate>(Module, "efl_text_password_get");
+
+        private static bool password_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_password_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetPassword();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_password_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_password_get_delegate efl_text_password_get_static_delegate;
+
+        
+        private delegate void efl_text_password_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] bool enabled);
+
+        
+        public delegate void efl_text_password_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.U1)] bool enabled);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_password_set_api_delegate> efl_text_password_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_password_set_api_delegate>(Module, "efl_text_password_set");
+
+        private static void password_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
+        {
+            Eina.Log.Debug("function efl_text_password_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetPassword(enabled);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_password_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), enabled);
+            }
+        }
+
+        private static efl_text_password_set_delegate efl_text_password_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_replacement_char_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_replacement_char_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_replacement_char_get_api_delegate> efl_text_replacement_char_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_replacement_char_get_api_delegate>(Module, "efl_text_replacement_char_get");
+
+        private static System.String replacement_char_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_replacement_char_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetReplacementChar();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_replacement_char_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_replacement_char_get_delegate efl_text_replacement_char_get_static_delegate;
+
+        
+        private delegate void efl_text_replacement_char_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String repch);
+
+        
+        public delegate void efl_text_replacement_char_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String repch);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_replacement_char_set_api_delegate> efl_text_replacement_char_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_replacement_char_set_api_delegate>(Module, "efl_text_replacement_char_set");
+
+        private static void replacement_char_set(System.IntPtr obj, System.IntPtr pd, System.String repch)
+        {
+            Eina.Log.Debug("function efl_text_replacement_char_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetReplacementChar(repch);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_replacement_char_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), repch);
+            }
+        }
+
+        private static efl_text_replacement_char_set_delegate efl_text_replacement_char_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_markup_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_markup_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_markup_get_api_delegate> efl_text_markup_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_markup_get_api_delegate>(Module, "efl_text_markup_get");
+
+        private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_markup_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetMarkup();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_markup_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_markup_get_delegate efl_text_markup_get_static_delegate;
+
+        
+        private delegate void efl_text_markup_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String markup);
+
+        
+        public delegate void efl_text_markup_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String markup);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_markup_set_api_delegate> efl_text_markup_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_markup_set_api_delegate>(Module, "efl_text_markup_set");
+
+        private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
+        {
+            Eina.Log.Debug("function efl_text_markup_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetMarkup(markup);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_markup_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), markup);
+            }
+        }
+
+        private static efl_text_markup_set_delegate efl_text_markup_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringPassOwnershipMarshaler))]
+        private delegate System.String efl_text_markup_interactive_markup_range_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringPassOwnershipMarshaler))]
+        public delegate System.String efl_text_markup_interactive_markup_range_get_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_markup_interactive_markup_range_get_api_delegate> efl_text_markup_interactive_markup_range_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_markup_interactive_markup_range_get_api_delegate>(Module, "efl_text_markup_interactive_markup_range_get");
+
+        private static System.String markup_range_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end)
+        {
+            Eina.Log.Debug("function efl_text_markup_interactive_markup_range_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetMarkupRange(start, end);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_markup_interactive_markup_range_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), start, end);
+            }
+        }
+
+        private static efl_text_markup_interactive_markup_range_get_delegate efl_text_markup_interactive_markup_range_get_static_delegate;
+
+        
+        private delegate void efl_text_markup_interactive_markup_range_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringPassOwnershipMarshaler))] System.String markup);
+
+        
+        public delegate void efl_text_markup_interactive_markup_range_set_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringPassOwnershipMarshaler))] System.String markup);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_markup_interactive_markup_range_set_api_delegate> efl_text_markup_interactive_markup_range_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_markup_interactive_markup_range_set_api_delegate>(Module, "efl_text_markup_interactive_markup_range_set");
+
+        private static void markup_range_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end, System.String markup)
+        {
+            Eina.Log.Debug("function efl_text_markup_interactive_markup_range_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    
+                try
+                {
+                    ((Text)ws.Target).SetMarkupRange(start, end, markup);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_text_markup_interactive_markup_range_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), start, end, markup);
+            }
+        }
+
+        private static efl_text_markup_interactive_markup_range_set_delegate efl_text_markup_interactive_markup_range_set_static_delegate;
+
+        
+        private delegate void efl_text_markup_interactive_cursor_markup_insert_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor cur, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String markup);
+
+        
+        public delegate void efl_text_markup_interactive_cursor_markup_insert_api_delegate(System.IntPtr obj,  Efl.TextCursorCursor cur, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String markup);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_markup_interactive_cursor_markup_insert_api_delegate> efl_text_markup_interactive_cursor_markup_insert_ptr = new Efl.Eo.FunctionWrapper<efl_text_markup_interactive_cursor_markup_insert_api_delegate>(Module, "efl_text_markup_interactive_cursor_markup_insert");
+
+        private static void cursor_markup_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, System.String markup)
+        {
+            Eina.Log.Debug("function efl_text_markup_interactive_cursor_markup_insert was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Text)ws.Target).CursorMarkupInsert(cur, markup);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_text_markup_interactive_cursor_markup_insert_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur, markup);
+            }
+        }
+
+        private static efl_text_markup_interactive_cursor_markup_insert_delegate efl_text_markup_interactive_cursor_markup_insert_static_delegate;
+
+        
+        private delegate void efl_text_normal_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        
+        public delegate void efl_text_normal_color_get_api_delegate(System.IntPtr obj,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_normal_color_get_api_delegate> efl_text_normal_color_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_normal_color_get_api_delegate>(Module, "efl_text_normal_color_get");
+
+        private static void normal_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
+        {
+            Eina.Log.Debug("function efl_text_normal_color_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
+                try
+                {
+                    ((Text)ws.Target).GetNormalColor(out r, out g, out b, out a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_normal_color_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out r, out g, out b, out a);
+            }
+        }
+
+        private static efl_text_normal_color_get_delegate efl_text_normal_color_get_static_delegate;
+
+        
+        private delegate void efl_text_normal_color_set_delegate(System.IntPtr obj, System.IntPtr pd,  byte r,  byte g,  byte b,  byte a);
+
+        
+        public delegate void efl_text_normal_color_set_api_delegate(System.IntPtr obj,  byte r,  byte g,  byte b,  byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_normal_color_set_api_delegate> efl_text_normal_color_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_normal_color_set_api_delegate>(Module, "efl_text_normal_color_set");
+
+        private static void normal_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
+        {
+            Eina.Log.Debug("function efl_text_normal_color_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            
+                try
+                {
+                    ((Text)ws.Target).SetNormalColor(r, g, b, a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_normal_color_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), r, g, b, a);
+            }
+        }
+
+        private static efl_text_normal_color_set_delegate efl_text_normal_color_set_static_delegate;
+
+        
+        private delegate Efl.TextStyleBackingType efl_text_backing_type_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextStyleBackingType efl_text_backing_type_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_backing_type_get_api_delegate> efl_text_backing_type_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_backing_type_get_api_delegate>(Module, "efl_text_backing_type_get");
+
+        private static Efl.TextStyleBackingType backing_type_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_backing_type_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextStyleBackingType _ret_var = default(Efl.TextStyleBackingType);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetBackingType();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_backing_type_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_backing_type_get_delegate efl_text_backing_type_get_static_delegate;
+
+        
+        private delegate void efl_text_backing_type_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextStyleBackingType type);
+
+        
+        public delegate void efl_text_backing_type_set_api_delegate(System.IntPtr obj,  Efl.TextStyleBackingType type);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_backing_type_set_api_delegate> efl_text_backing_type_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_backing_type_set_api_delegate>(Module, "efl_text_backing_type_set");
+
+        private static void backing_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleBackingType type)
+        {
+            Eina.Log.Debug("function efl_text_backing_type_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetBackingType(type);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_backing_type_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), type);
+            }
+        }
+
+        private static efl_text_backing_type_set_delegate efl_text_backing_type_set_static_delegate;
+
+        
+        private delegate void efl_text_backing_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        
+        public delegate void efl_text_backing_color_get_api_delegate(System.IntPtr obj,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_backing_color_get_api_delegate> efl_text_backing_color_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_backing_color_get_api_delegate>(Module, "efl_text_backing_color_get");
+
+        private static void backing_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
+        {
+            Eina.Log.Debug("function efl_text_backing_color_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
+                try
+                {
+                    ((Text)ws.Target).GetBackingColor(out r, out g, out b, out a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_backing_color_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out r, out g, out b, out a);
+            }
+        }
+
+        private static efl_text_backing_color_get_delegate efl_text_backing_color_get_static_delegate;
+
+        
+        private delegate void efl_text_backing_color_set_delegate(System.IntPtr obj, System.IntPtr pd,  byte r,  byte g,  byte b,  byte a);
+
+        
+        public delegate void efl_text_backing_color_set_api_delegate(System.IntPtr obj,  byte r,  byte g,  byte b,  byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_backing_color_set_api_delegate> efl_text_backing_color_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_backing_color_set_api_delegate>(Module, "efl_text_backing_color_set");
+
+        private static void backing_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
+        {
+            Eina.Log.Debug("function efl_text_backing_color_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            
+                try
+                {
+                    ((Text)ws.Target).SetBackingColor(r, g, b, a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_backing_color_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), r, g, b, a);
+            }
+        }
+
+        private static efl_text_backing_color_set_delegate efl_text_backing_color_set_static_delegate;
+
+        
+        private delegate Efl.TextStyleUnderlineType efl_text_underline_type_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextStyleUnderlineType efl_text_underline_type_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_type_get_api_delegate> efl_text_underline_type_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_type_get_api_delegate>(Module, "efl_text_underline_type_get");
+
+        private static Efl.TextStyleUnderlineType underline_type_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_underline_type_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextStyleUnderlineType _ret_var = default(Efl.TextStyleUnderlineType);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetUnderlineType();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_underline_type_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_underline_type_get_delegate efl_text_underline_type_get_static_delegate;
+
+        
+        private delegate void efl_text_underline_type_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextStyleUnderlineType type);
+
+        
+        public delegate void efl_text_underline_type_set_api_delegate(System.IntPtr obj,  Efl.TextStyleUnderlineType type);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_type_set_api_delegate> efl_text_underline_type_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_type_set_api_delegate>(Module, "efl_text_underline_type_set");
+
+        private static void underline_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleUnderlineType type)
+        {
+            Eina.Log.Debug("function efl_text_underline_type_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetUnderlineType(type);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_underline_type_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), type);
+            }
+        }
+
+        private static efl_text_underline_type_set_delegate efl_text_underline_type_set_static_delegate;
+
+        
+        private delegate void efl_text_underline_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        
+        public delegate void efl_text_underline_color_get_api_delegate(System.IntPtr obj,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_color_get_api_delegate> efl_text_underline_color_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_color_get_api_delegate>(Module, "efl_text_underline_color_get");
+
+        private static void underline_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
+        {
+            Eina.Log.Debug("function efl_text_underline_color_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
+                try
+                {
+                    ((Text)ws.Target).GetUnderlineColor(out r, out g, out b, out a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_underline_color_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out r, out g, out b, out a);
+            }
+        }
+
+        private static efl_text_underline_color_get_delegate efl_text_underline_color_get_static_delegate;
+
+        
+        private delegate void efl_text_underline_color_set_delegate(System.IntPtr obj, System.IntPtr pd,  byte r,  byte g,  byte b,  byte a);
+
+        
+        public delegate void efl_text_underline_color_set_api_delegate(System.IntPtr obj,  byte r,  byte g,  byte b,  byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_color_set_api_delegate> efl_text_underline_color_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_color_set_api_delegate>(Module, "efl_text_underline_color_set");
+
+        private static void underline_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
+        {
+            Eina.Log.Debug("function efl_text_underline_color_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            
+                try
+                {
+                    ((Text)ws.Target).SetUnderlineColor(r, g, b, a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_underline_color_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), r, g, b, a);
+            }
+        }
+
+        private static efl_text_underline_color_set_delegate efl_text_underline_color_set_static_delegate;
+
+        
+        private delegate double efl_text_underline_height_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate double efl_text_underline_height_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_height_get_api_delegate> efl_text_underline_height_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_height_get_api_delegate>(Module, "efl_text_underline_height_get");
+
+        private static double underline_height_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_underline_height_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetUnderlineHeight();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_underline_height_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_underline_height_get_delegate efl_text_underline_height_get_static_delegate;
+
+        
+        private delegate void efl_text_underline_height_set_delegate(System.IntPtr obj, System.IntPtr pd,  double height);
+
+        
+        public delegate void efl_text_underline_height_set_api_delegate(System.IntPtr obj,  double height);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_height_set_api_delegate> efl_text_underline_height_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_height_set_api_delegate>(Module, "efl_text_underline_height_set");
+
+        private static void underline_height_set(System.IntPtr obj, System.IntPtr pd, double height)
+        {
+            Eina.Log.Debug("function efl_text_underline_height_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetUnderlineHeight(height);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_underline_height_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), height);
+            }
+        }
+
+        private static efl_text_underline_height_set_delegate efl_text_underline_height_set_static_delegate;
+
+        
+        private delegate void efl_text_underline_dashed_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        
+        public delegate void efl_text_underline_dashed_color_get_api_delegate(System.IntPtr obj,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_dashed_color_get_api_delegate> efl_text_underline_dashed_color_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_dashed_color_get_api_delegate>(Module, "efl_text_underline_dashed_color_get");
+
+        private static void underline_dashed_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
+        {
+            Eina.Log.Debug("function efl_text_underline_dashed_color_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
+                try
+                {
+                    ((Text)ws.Target).GetUnderlineDashedColor(out r, out g, out b, out a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_underline_dashed_color_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out r, out g, out b, out a);
+            }
+        }
+
+        private static efl_text_underline_dashed_color_get_delegate efl_text_underline_dashed_color_get_static_delegate;
+
+        
+        private delegate void efl_text_underline_dashed_color_set_delegate(System.IntPtr obj, System.IntPtr pd,  byte r,  byte g,  byte b,  byte a);
+
+        
+        public delegate void efl_text_underline_dashed_color_set_api_delegate(System.IntPtr obj,  byte r,  byte g,  byte b,  byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_dashed_color_set_api_delegate> efl_text_underline_dashed_color_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_dashed_color_set_api_delegate>(Module, "efl_text_underline_dashed_color_set");
+
+        private static void underline_dashed_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
+        {
+            Eina.Log.Debug("function efl_text_underline_dashed_color_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            
+                try
+                {
+                    ((Text)ws.Target).SetUnderlineDashedColor(r, g, b, a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_underline_dashed_color_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), r, g, b, a);
+            }
+        }
+
+        private static efl_text_underline_dashed_color_set_delegate efl_text_underline_dashed_color_set_static_delegate;
+
+        
+        private delegate int efl_text_underline_dashed_width_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate int efl_text_underline_dashed_width_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_dashed_width_get_api_delegate> efl_text_underline_dashed_width_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_dashed_width_get_api_delegate>(Module, "efl_text_underline_dashed_width_get");
+
+        private static int underline_dashed_width_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_underline_dashed_width_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetUnderlineDashedWidth();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_underline_dashed_width_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_underline_dashed_width_get_delegate efl_text_underline_dashed_width_get_static_delegate;
+
+        
+        private delegate void efl_text_underline_dashed_width_set_delegate(System.IntPtr obj, System.IntPtr pd,  int width);
+
+        
+        public delegate void efl_text_underline_dashed_width_set_api_delegate(System.IntPtr obj,  int width);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_dashed_width_set_api_delegate> efl_text_underline_dashed_width_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_dashed_width_set_api_delegate>(Module, "efl_text_underline_dashed_width_set");
+
+        private static void underline_dashed_width_set(System.IntPtr obj, System.IntPtr pd, int width)
+        {
+            Eina.Log.Debug("function efl_text_underline_dashed_width_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetUnderlineDashedWidth(width);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_underline_dashed_width_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), width);
+            }
+        }
+
+        private static efl_text_underline_dashed_width_set_delegate efl_text_underline_dashed_width_set_static_delegate;
+
+        
+        private delegate int efl_text_underline_dashed_gap_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate int efl_text_underline_dashed_gap_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_dashed_gap_get_api_delegate> efl_text_underline_dashed_gap_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_dashed_gap_get_api_delegate>(Module, "efl_text_underline_dashed_gap_get");
+
+        private static int underline_dashed_gap_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_underline_dashed_gap_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetUnderlineDashedGap();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_underline_dashed_gap_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_underline_dashed_gap_get_delegate efl_text_underline_dashed_gap_get_static_delegate;
+
+        
+        private delegate void efl_text_underline_dashed_gap_set_delegate(System.IntPtr obj, System.IntPtr pd,  int gap);
+
+        
+        public delegate void efl_text_underline_dashed_gap_set_api_delegate(System.IntPtr obj,  int gap);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline_dashed_gap_set_api_delegate> efl_text_underline_dashed_gap_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline_dashed_gap_set_api_delegate>(Module, "efl_text_underline_dashed_gap_set");
+
+        private static void underline_dashed_gap_set(System.IntPtr obj, System.IntPtr pd, int gap)
+        {
+            Eina.Log.Debug("function efl_text_underline_dashed_gap_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetUnderlineDashedGap(gap);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_underline_dashed_gap_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), gap);
+            }
+        }
+
+        private static efl_text_underline_dashed_gap_set_delegate efl_text_underline_dashed_gap_set_static_delegate;
+
+        
+        private delegate void efl_text_underline2_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        
+        public delegate void efl_text_underline2_color_get_api_delegate(System.IntPtr obj,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline2_color_get_api_delegate> efl_text_underline2_color_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline2_color_get_api_delegate>(Module, "efl_text_underline2_color_get");
+
+        private static void underline2_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
+        {
+            Eina.Log.Debug("function efl_text_underline2_color_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
+                try
+                {
+                    ((Text)ws.Target).GetUnderline2Color(out r, out g, out b, out a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_underline2_color_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out r, out g, out b, out a);
+            }
+        }
+
+        private static efl_text_underline2_color_get_delegate efl_text_underline2_color_get_static_delegate;
+
+        
+        private delegate void efl_text_underline2_color_set_delegate(System.IntPtr obj, System.IntPtr pd,  byte r,  byte g,  byte b,  byte a);
+
+        
+        public delegate void efl_text_underline2_color_set_api_delegate(System.IntPtr obj,  byte r,  byte g,  byte b,  byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_underline2_color_set_api_delegate> efl_text_underline2_color_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_underline2_color_set_api_delegate>(Module, "efl_text_underline2_color_set");
+
+        private static void underline2_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
+        {
+            Eina.Log.Debug("function efl_text_underline2_color_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            
+                try
+                {
+                    ((Text)ws.Target).SetUnderline2Color(r, g, b, a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_underline2_color_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), r, g, b, a);
+            }
+        }
+
+        private static efl_text_underline2_color_set_delegate efl_text_underline2_color_set_static_delegate;
+
+        
+        private delegate Efl.TextStyleStrikethroughType efl_text_strikethrough_type_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextStyleStrikethroughType efl_text_strikethrough_type_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_strikethrough_type_get_api_delegate> efl_text_strikethrough_type_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_strikethrough_type_get_api_delegate>(Module, "efl_text_strikethrough_type_get");
+
+        private static Efl.TextStyleStrikethroughType strikethrough_type_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_strikethrough_type_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextStyleStrikethroughType _ret_var = default(Efl.TextStyleStrikethroughType);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetStrikethroughType();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_strikethrough_type_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_strikethrough_type_get_delegate efl_text_strikethrough_type_get_static_delegate;
+
+        
+        private delegate void efl_text_strikethrough_type_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextStyleStrikethroughType type);
+
+        
+        public delegate void efl_text_strikethrough_type_set_api_delegate(System.IntPtr obj,  Efl.TextStyleStrikethroughType type);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_strikethrough_type_set_api_delegate> efl_text_strikethrough_type_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_strikethrough_type_set_api_delegate>(Module, "efl_text_strikethrough_type_set");
+
+        private static void strikethrough_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleStrikethroughType type)
+        {
+            Eina.Log.Debug("function efl_text_strikethrough_type_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetStrikethroughType(type);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_strikethrough_type_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), type);
+            }
+        }
+
+        private static efl_text_strikethrough_type_set_delegate efl_text_strikethrough_type_set_static_delegate;
+
+        
+        private delegate void efl_text_strikethrough_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        
+        public delegate void efl_text_strikethrough_color_get_api_delegate(System.IntPtr obj,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_strikethrough_color_get_api_delegate> efl_text_strikethrough_color_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_strikethrough_color_get_api_delegate>(Module, "efl_text_strikethrough_color_get");
+
+        private static void strikethrough_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
+        {
+            Eina.Log.Debug("function efl_text_strikethrough_color_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
+                try
+                {
+                    ((Text)ws.Target).GetStrikethroughColor(out r, out g, out b, out a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_strikethrough_color_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out r, out g, out b, out a);
+            }
+        }
+
+        private static efl_text_strikethrough_color_get_delegate efl_text_strikethrough_color_get_static_delegate;
+
+        
+        private delegate void efl_text_strikethrough_color_set_delegate(System.IntPtr obj, System.IntPtr pd,  byte r,  byte g,  byte b,  byte a);
+
+        
+        public delegate void efl_text_strikethrough_color_set_api_delegate(System.IntPtr obj,  byte r,  byte g,  byte b,  byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_strikethrough_color_set_api_delegate> efl_text_strikethrough_color_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_strikethrough_color_set_api_delegate>(Module, "efl_text_strikethrough_color_set");
+
+        private static void strikethrough_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
+        {
+            Eina.Log.Debug("function efl_text_strikethrough_color_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            
+                try
+                {
+                    ((Text)ws.Target).SetStrikethroughColor(r, g, b, a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_strikethrough_color_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), r, g, b, a);
+            }
+        }
+
+        private static efl_text_strikethrough_color_set_delegate efl_text_strikethrough_color_set_static_delegate;
+
+        
+        private delegate Efl.TextStyleEffectType efl_text_effect_type_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextStyleEffectType efl_text_effect_type_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_effect_type_get_api_delegate> efl_text_effect_type_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_effect_type_get_api_delegate>(Module, "efl_text_effect_type_get");
+
+        private static Efl.TextStyleEffectType effect_type_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_effect_type_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextStyleEffectType _ret_var = default(Efl.TextStyleEffectType);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetEffectType();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_effect_type_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_effect_type_get_delegate efl_text_effect_type_get_static_delegate;
+
+        
+        private delegate void efl_text_effect_type_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextStyleEffectType type);
+
+        
+        public delegate void efl_text_effect_type_set_api_delegate(System.IntPtr obj,  Efl.TextStyleEffectType type);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_effect_type_set_api_delegate> efl_text_effect_type_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_effect_type_set_api_delegate>(Module, "efl_text_effect_type_set");
+
+        private static void effect_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleEffectType type)
+        {
+            Eina.Log.Debug("function efl_text_effect_type_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetEffectType(type);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_effect_type_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), type);
+            }
+        }
+
+        private static efl_text_effect_type_set_delegate efl_text_effect_type_set_static_delegate;
+
+        
+        private delegate void efl_text_outline_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        
+        public delegate void efl_text_outline_color_get_api_delegate(System.IntPtr obj,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_outline_color_get_api_delegate> efl_text_outline_color_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_outline_color_get_api_delegate>(Module, "efl_text_outline_color_get");
+
+        private static void outline_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
+        {
+            Eina.Log.Debug("function efl_text_outline_color_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
+                try
+                {
+                    ((Text)ws.Target).GetOutlineColor(out r, out g, out b, out a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_outline_color_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out r, out g, out b, out a);
+            }
+        }
+
+        private static efl_text_outline_color_get_delegate efl_text_outline_color_get_static_delegate;
+
+        
+        private delegate void efl_text_outline_color_set_delegate(System.IntPtr obj, System.IntPtr pd,  byte r,  byte g,  byte b,  byte a);
+
+        
+        public delegate void efl_text_outline_color_set_api_delegate(System.IntPtr obj,  byte r,  byte g,  byte b,  byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_outline_color_set_api_delegate> efl_text_outline_color_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_outline_color_set_api_delegate>(Module, "efl_text_outline_color_set");
+
+        private static void outline_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
+        {
+            Eina.Log.Debug("function efl_text_outline_color_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            
+                try
+                {
+                    ((Text)ws.Target).SetOutlineColor(r, g, b, a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_outline_color_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), r, g, b, a);
+            }
+        }
+
+        private static efl_text_outline_color_set_delegate efl_text_outline_color_set_static_delegate;
+
+        
+        private delegate Efl.TextStyleShadowDirection efl_text_shadow_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.TextStyleShadowDirection efl_text_shadow_direction_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_shadow_direction_get_api_delegate> efl_text_shadow_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_shadow_direction_get_api_delegate>(Module, "efl_text_shadow_direction_get");
+
+        private static Efl.TextStyleShadowDirection shadow_direction_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_shadow_direction_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.TextStyleShadowDirection _ret_var = default(Efl.TextStyleShadowDirection);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetShadowDirection();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_shadow_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_shadow_direction_get_delegate efl_text_shadow_direction_get_static_delegate;
+
+        
+        private delegate void efl_text_shadow_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextStyleShadowDirection type);
+
+        
+        public delegate void efl_text_shadow_direction_set_api_delegate(System.IntPtr obj,  Efl.TextStyleShadowDirection type);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_shadow_direction_set_api_delegate> efl_text_shadow_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_shadow_direction_set_api_delegate>(Module, "efl_text_shadow_direction_set");
+
+        private static void shadow_direction_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleShadowDirection type)
+        {
+            Eina.Log.Debug("function efl_text_shadow_direction_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetShadowDirection(type);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_shadow_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), type);
+            }
+        }
+
+        private static efl_text_shadow_direction_set_delegate efl_text_shadow_direction_set_static_delegate;
+
+        
+        private delegate void efl_text_shadow_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        
+        public delegate void efl_text_shadow_color_get_api_delegate(System.IntPtr obj,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_shadow_color_get_api_delegate> efl_text_shadow_color_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_shadow_color_get_api_delegate>(Module, "efl_text_shadow_color_get");
+
+        private static void shadow_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
+        {
+            Eina.Log.Debug("function efl_text_shadow_color_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
+                try
+                {
+                    ((Text)ws.Target).GetShadowColor(out r, out g, out b, out a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_shadow_color_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out r, out g, out b, out a);
+            }
+        }
+
+        private static efl_text_shadow_color_get_delegate efl_text_shadow_color_get_static_delegate;
+
+        
+        private delegate void efl_text_shadow_color_set_delegate(System.IntPtr obj, System.IntPtr pd,  byte r,  byte g,  byte b,  byte a);
+
+        
+        public delegate void efl_text_shadow_color_set_api_delegate(System.IntPtr obj,  byte r,  byte g,  byte b,  byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_shadow_color_set_api_delegate> efl_text_shadow_color_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_shadow_color_set_api_delegate>(Module, "efl_text_shadow_color_set");
+
+        private static void shadow_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
+        {
+            Eina.Log.Debug("function efl_text_shadow_color_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            
+                try
+                {
+                    ((Text)ws.Target).SetShadowColor(r, g, b, a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_shadow_color_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), r, g, b, a);
+            }
+        }
+
+        private static efl_text_shadow_color_set_delegate efl_text_shadow_color_set_static_delegate;
+
+        
+        private delegate void efl_text_glow_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        
+        public delegate void efl_text_glow_color_get_api_delegate(System.IntPtr obj,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_glow_color_get_api_delegate> efl_text_glow_color_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_glow_color_get_api_delegate>(Module, "efl_text_glow_color_get");
+
+        private static void glow_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
+        {
+            Eina.Log.Debug("function efl_text_glow_color_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
+                try
+                {
+                    ((Text)ws.Target).GetGlowColor(out r, out g, out b, out a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_glow_color_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out r, out g, out b, out a);
+            }
+        }
+
+        private static efl_text_glow_color_get_delegate efl_text_glow_color_get_static_delegate;
+
+        
+        private delegate void efl_text_glow_color_set_delegate(System.IntPtr obj, System.IntPtr pd,  byte r,  byte g,  byte b,  byte a);
+
+        
+        public delegate void efl_text_glow_color_set_api_delegate(System.IntPtr obj,  byte r,  byte g,  byte b,  byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_glow_color_set_api_delegate> efl_text_glow_color_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_glow_color_set_api_delegate>(Module, "efl_text_glow_color_set");
+
+        private static void glow_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
+        {
+            Eina.Log.Debug("function efl_text_glow_color_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            
+                try
+                {
+                    ((Text)ws.Target).SetGlowColor(r, g, b, a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_glow_color_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), r, g, b, a);
+            }
+        }
+
+        private static efl_text_glow_color_set_delegate efl_text_glow_color_set_static_delegate;
+
+        
+        private delegate void efl_text_glow2_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        
+        public delegate void efl_text_glow2_color_get_api_delegate(System.IntPtr obj,  out byte r,  out byte g,  out byte b,  out byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_glow2_color_get_api_delegate> efl_text_glow2_color_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_glow2_color_get_api_delegate>(Module, "efl_text_glow2_color_get");
+
+        private static void glow2_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
+        {
+            Eina.Log.Debug("function efl_text_glow2_color_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
+                try
+                {
+                    ((Text)ws.Target).GetGlow2Color(out r, out g, out b, out a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_glow2_color_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out r, out g, out b, out a);
+            }
+        }
+
+        private static efl_text_glow2_color_get_delegate efl_text_glow2_color_get_static_delegate;
+
+        
+        private delegate void efl_text_glow2_color_set_delegate(System.IntPtr obj, System.IntPtr pd,  byte r,  byte g,  byte b,  byte a);
+
+        
+        public delegate void efl_text_glow2_color_set_api_delegate(System.IntPtr obj,  byte r,  byte g,  byte b,  byte a);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_glow2_color_set_api_delegate> efl_text_glow2_color_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_glow2_color_set_api_delegate>(Module, "efl_text_glow2_color_set");
+
+        private static void glow2_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
+        {
+            Eina.Log.Debug("function efl_text_glow2_color_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            
+                try
+                {
+                    ((Text)ws.Target).SetGlow2Color(r, g, b, a);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_text_glow2_color_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), r, g, b, a);
+            }
+        }
+
+        private static efl_text_glow2_color_set_delegate efl_text_glow2_color_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_gfx_filter_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_gfx_filter_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_gfx_filter_get_api_delegate> efl_text_gfx_filter_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_gfx_filter_get_api_delegate>(Module, "efl_text_gfx_filter_get");
+
+        private static System.String gfx_filter_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_gfx_filter_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetGfxFilter();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_gfx_filter_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_gfx_filter_get_delegate efl_text_gfx_filter_get_static_delegate;
+
+        
+        private delegate void efl_text_gfx_filter_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String code);
+
+        
+        public delegate void efl_text_gfx_filter_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String code);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_gfx_filter_set_api_delegate> efl_text_gfx_filter_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_gfx_filter_set_api_delegate>(Module, "efl_text_gfx_filter_set");
+
+        private static void gfx_filter_set(System.IntPtr obj, System.IntPtr pd, System.String code)
+        {
+            Eina.Log.Debug("function efl_text_gfx_filter_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetGfxFilter(code);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_gfx_filter_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), code);
+            }
+        }
+
+        private static efl_text_gfx_filter_set_delegate efl_text_gfx_filter_set_static_delegate;
+
+        
+        private delegate void evas_filter_changed_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] bool val);
+
+        
+        public delegate void evas_filter_changed_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.U1)] bool val);
+
+        public static Efl.Eo.FunctionWrapper<evas_filter_changed_set_api_delegate> evas_filter_changed_set_ptr = new Efl.Eo.FunctionWrapper<evas_filter_changed_set_api_delegate>(Module, "evas_filter_changed_set");
+
+        private static void filter_changed_set(System.IntPtr obj, System.IntPtr pd, bool val)
+        {
+            Eina.Log.Debug("function evas_filter_changed_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetFilterChanged(val);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                evas_filter_changed_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), val);
+            }
+        }
+
+        private static evas_filter_changed_set_delegate evas_filter_changed_set_static_delegate;
+
+        
+        private delegate void evas_filter_invalid_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] bool val);
+
+        
+        public delegate void evas_filter_invalid_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.U1)] bool val);
+
+        public static Efl.Eo.FunctionWrapper<evas_filter_invalid_set_api_delegate> evas_filter_invalid_set_ptr = new Efl.Eo.FunctionWrapper<evas_filter_invalid_set_api_delegate>(Module, "evas_filter_invalid_set");
+
+        private static void filter_invalid_set(System.IntPtr obj, System.IntPtr pd, bool val)
+        {
+            Eina.Log.Debug("function evas_filter_invalid_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetFilterInvalid(val);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                evas_filter_invalid_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), val);
+            }
+        }
+
+        private static evas_filter_invalid_set_delegate evas_filter_invalid_set_static_delegate;
+
+        
+        private delegate System.IntPtr evas_filter_output_buffer_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate System.IntPtr evas_filter_output_buffer_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<evas_filter_output_buffer_get_api_delegate> evas_filter_output_buffer_get_ptr = new Efl.Eo.FunctionWrapper<evas_filter_output_buffer_get_api_delegate>(Module, "evas_filter_output_buffer_get");
+
+        private static System.IntPtr filter_output_buffer_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function evas_filter_output_buffer_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.IntPtr _ret_var = default(System.IntPtr);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetFilterOutputBuffer();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return evas_filter_output_buffer_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static evas_filter_output_buffer_get_delegate evas_filter_output_buffer_get_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool evas_filter_input_alpha_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool evas_filter_input_alpha_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<evas_filter_input_alpha_api_delegate> evas_filter_input_alpha_ptr = new Efl.Eo.FunctionWrapper<evas_filter_input_alpha_api_delegate>(Module, "evas_filter_input_alpha");
+
+        private static bool filter_input_alpha(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function evas_filter_input_alpha was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).FilterInputAlpha();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return evas_filter_input_alpha_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static evas_filter_input_alpha_delegate evas_filter_input_alpha_static_delegate;
+
+        
+        private delegate void evas_filter_state_prepare_delegate(System.IntPtr obj, System.IntPtr pd,  out Efl.Canvas.Filter.State.NativeStruct state,  System.IntPtr data);
+
+        
+        public delegate void evas_filter_state_prepare_api_delegate(System.IntPtr obj,  out Efl.Canvas.Filter.State.NativeStruct state,  System.IntPtr data);
+
+        public static Efl.Eo.FunctionWrapper<evas_filter_state_prepare_api_delegate> evas_filter_state_prepare_ptr = new Efl.Eo.FunctionWrapper<evas_filter_state_prepare_api_delegate>(Module, "evas_filter_state_prepare");
+
+        private static void filter_state_prepare(System.IntPtr obj, System.IntPtr pd, out Efl.Canvas.Filter.State.NativeStruct state, System.IntPtr data)
+        {
+            Eina.Log.Debug("function evas_filter_state_prepare was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        Efl.Canvas.Filter.State _out_state = default(Efl.Canvas.Filter.State);
+                                    
+                try
+                {
+                    ((Text)ws.Target).FilterStatePrepare(out _out_state, data);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        state = _out_state;
+                                
+            }
+            else
+            {
+                evas_filter_state_prepare_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out state, data);
+            }
+        }
+
+        private static evas_filter_state_prepare_delegate evas_filter_state_prepare_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool evas_filter_input_render_delegate(System.IntPtr obj, System.IntPtr pd,  System.IntPtr filter,  System.IntPtr engine,  System.IntPtr output,  System.IntPtr drawctx,  System.IntPtr data,  int l,  int r,  int t,  int b,  int x,  int y, [MarshalAs(UnmanagedType.U1)] bool do_async);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool evas_filter_input_render_api_delegate(System.IntPtr obj,  System.IntPtr filter,  System.IntPtr engine,  System.IntPtr output,  System.IntPtr drawctx,  System.IntPtr data,  int l,  int r,  int t,  int b,  int x,  int y, [MarshalAs(UnmanagedType.U1)] bool do_async);
+
+        public static Efl.Eo.FunctionWrapper<evas_filter_input_render_api_delegate> evas_filter_input_render_ptr = new Efl.Eo.FunctionWrapper<evas_filter_input_render_api_delegate>(Module, "evas_filter_input_render");
+
+        private static bool filter_input_render(System.IntPtr obj, System.IntPtr pd, System.IntPtr filter, System.IntPtr engine, System.IntPtr output, System.IntPtr drawctx, System.IntPtr data, int l, int r, int t, int b, int x, int y, bool do_async)
+        {
+            Eina.Log.Debug("function evas_filter_input_render was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                                                                                                                                                                                                                            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).FilterInputRender(filter, engine, output, drawctx, data, l, r, t, b, x, y, do_async);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                                                                                                                                                        return _ret_var;
+
+            }
+            else
+            {
+                return evas_filter_input_render_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), filter, engine, output, drawctx, data, l, r, t, b, x, y, do_async);
+            }
+        }
+
+        private static evas_filter_input_render_delegate evas_filter_input_render_static_delegate;
+
+        
+        private delegate void evas_filter_dirty_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate void evas_filter_dirty_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<evas_filter_dirty_api_delegate> evas_filter_dirty_ptr = new Efl.Eo.FunctionWrapper<evas_filter_dirty_api_delegate>(Module, "evas_filter_dirty");
+
+        private static void filter_dirty(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function evas_filter_dirty was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            
+                try
+                {
+                    ((Text)ws.Target).FilterDirty();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        
+            }
+            else
+            {
+                evas_filter_dirty_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static evas_filter_dirty_delegate evas_filter_dirty_static_delegate;
+
+        
+        private delegate void efl_gfx_filter_program_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String code, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String name);
+
+        
+        public delegate void efl_gfx_filter_program_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String code, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String name);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_filter_program_get_api_delegate> efl_gfx_filter_program_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_filter_program_get_api_delegate>(Module, "efl_gfx_filter_program_get");
+
+        private static void filter_program_get(System.IntPtr obj, System.IntPtr pd, out System.String code, out System.String name)
+        {
+            Eina.Log.Debug("function efl_gfx_filter_program_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        System.String _out_code = default(System.String);
+        System.String _out_name = default(System.String);
+                            
+                try
+                {
+                    ((Text)ws.Target).GetFilterProgram(out _out_code, out _out_name);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        code = _out_code;
+        name = _out_name;
+                        
+            }
+            else
+            {
+                efl_gfx_filter_program_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out code, out name);
+            }
+        }
+
+        private static efl_gfx_filter_program_get_delegate efl_gfx_filter_program_get_static_delegate;
+
+        
+        private delegate void efl_gfx_filter_program_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String code, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
+
+        
+        public delegate void efl_gfx_filter_program_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String code, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_filter_program_set_api_delegate> efl_gfx_filter_program_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_filter_program_set_api_delegate>(Module, "efl_gfx_filter_program_set");
+
+        private static void filter_program_set(System.IntPtr obj, System.IntPtr pd, System.String code, System.String name)
+        {
+            Eina.Log.Debug("function efl_gfx_filter_program_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Text)ws.Target).SetFilterProgram(code, name);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_gfx_filter_program_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), code, name);
+            }
+        }
+
+        private static efl_gfx_filter_program_set_delegate efl_gfx_filter_program_set_static_delegate;
+
+        
+        private delegate void efl_gfx_filter_state_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String cur_state,  out double cur_val, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String next_state,  out double next_val,  out double pos);
+
+        
+        public delegate void efl_gfx_filter_state_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String cur_state,  out double cur_val, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String next_state,  out double next_val,  out double pos);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_filter_state_get_api_delegate> efl_gfx_filter_state_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_filter_state_get_api_delegate>(Module, "efl_gfx_filter_state_get");
+
+        private static void filter_state_get(System.IntPtr obj, System.IntPtr pd, out System.String cur_state, out double cur_val, out System.String next_state, out double next_val, out double pos)
+        {
+            Eina.Log.Debug("function efl_gfx_filter_state_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                System.String _out_cur_state = default(System.String);
+        cur_val = default(double);        System.String _out_next_state = default(System.String);
+        next_val = default(double);        pos = default(double);                                                    
+                try
+                {
+                    ((Text)ws.Target).GetFilterState(out _out_cur_state, out cur_val, out _out_next_state, out next_val, out pos);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        cur_state = _out_cur_state;
+                next_state = _out_next_state;
+                                                                
+            }
+            else
+            {
+                efl_gfx_filter_state_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out cur_state, out cur_val, out next_state, out next_val, out pos);
+            }
+        }
+
+        private static efl_gfx_filter_state_get_delegate efl_gfx_filter_state_get_static_delegate;
+
+        
+        private delegate void efl_gfx_filter_state_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String cur_state,  double cur_val, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String next_state,  double next_val,  double pos);
+
+        
+        public delegate void efl_gfx_filter_state_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String cur_state,  double cur_val, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String next_state,  double next_val,  double pos);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_filter_state_set_api_delegate> efl_gfx_filter_state_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_filter_state_set_api_delegate>(Module, "efl_gfx_filter_state_set");
+
+        private static void filter_state_set(System.IntPtr obj, System.IntPtr pd, System.String cur_state, double cur_val, System.String next_state, double next_val, double pos)
+        {
+            Eina.Log.Debug("function efl_gfx_filter_state_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                                                    
+                try
+                {
+                    ((Text)ws.Target).SetFilterState(cur_state, cur_val, next_state, next_val, pos);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                                        
+            }
+            else
+            {
+                efl_gfx_filter_state_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), cur_state, cur_val, next_state, next_val, pos);
+            }
+        }
+
+        private static efl_gfx_filter_state_set_delegate efl_gfx_filter_state_set_static_delegate;
+
+        
+        private delegate void efl_gfx_filter_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out int l,  out int r,  out int t,  out int b);
+
+        
+        public delegate void efl_gfx_filter_padding_get_api_delegate(System.IntPtr obj,  out int l,  out int r,  out int t,  out int b);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_filter_padding_get_api_delegate> efl_gfx_filter_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_filter_padding_get_api_delegate>(Module, "efl_gfx_filter_padding_get");
+
+        private static void filter_padding_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
+        {
+            Eina.Log.Debug("function efl_gfx_filter_padding_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
+                try
+                {
+                    ((Text)ws.Target).GetFilterPadding(out l, out r, out t, out b);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        
+            }
+            else
+            {
+                efl_gfx_filter_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out l, out r, out t, out b);
+            }
+        }
+
+        private static efl_gfx_filter_padding_get_delegate efl_gfx_filter_padding_get_static_delegate;
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        private delegate Efl.Gfx.IEntity efl_gfx_filter_source_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        public delegate Efl.Gfx.IEntity efl_gfx_filter_source_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_filter_source_get_api_delegate> efl_gfx_filter_source_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_filter_source_get_api_delegate>(Module, "efl_gfx_filter_source_get");
+
+        private static Efl.Gfx.IEntity filter_source_get(System.IntPtr obj, System.IntPtr pd, System.String name)
+        {
+            Eina.Log.Debug("function efl_gfx_filter_source_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetFilterSource(name);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_filter_source_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), name);
+            }
+        }
+
+        private static efl_gfx_filter_source_get_delegate efl_gfx_filter_source_get_static_delegate;
+
+        
+        private delegate void efl_gfx_filter_source_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity source);
+
+        
+        public delegate void efl_gfx_filter_source_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity source);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_filter_source_set_api_delegate> efl_gfx_filter_source_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_filter_source_set_api_delegate>(Module, "efl_gfx_filter_source_set");
+
+        private static void filter_source_set(System.IntPtr obj, System.IntPtr pd, System.String name, Efl.Gfx.IEntity source)
+        {
+            Eina.Log.Debug("function efl_gfx_filter_source_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Text)ws.Target).SetFilterSource(name, source);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_gfx_filter_source_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), name, source);
+            }
+        }
+
+        private static efl_gfx_filter_source_set_delegate efl_gfx_filter_source_set_static_delegate;
+
+        
+        private delegate void efl_gfx_filter_data_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String value, [MarshalAs(UnmanagedType.U1)] out bool execute);
+
+        
+        public delegate void efl_gfx_filter_data_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String value, [MarshalAs(UnmanagedType.U1)] out bool execute);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_filter_data_get_api_delegate> efl_gfx_filter_data_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_filter_data_get_api_delegate>(Module, "efl_gfx_filter_data_get");
+
+        private static void filter_data_get(System.IntPtr obj, System.IntPtr pd, System.String name, out System.String value, out bool execute)
+        {
+            Eina.Log.Debug("function efl_gfx_filter_data_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                        System.String _out_value = default(System.String);
+        execute = default(bool);                                    
+                try
+                {
+                    ((Text)ws.Target).GetFilterData(name, out _out_value, out execute);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                value = _out_value;
+                                        
+            }
+            else
+            {
+                efl_gfx_filter_data_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), name, out value, out execute);
+            }
+        }
+
+        private static efl_gfx_filter_data_get_delegate efl_gfx_filter_data_get_static_delegate;
+
+        
+        private delegate void efl_gfx_filter_data_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String value, [MarshalAs(UnmanagedType.U1)] bool execute);
+
+        
+        public delegate void efl_gfx_filter_data_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String value, [MarshalAs(UnmanagedType.U1)] bool execute);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_filter_data_set_api_delegate> efl_gfx_filter_data_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_filter_data_set_api_delegate>(Module, "efl_gfx_filter_data_set");
+
+        private static void filter_data_set(System.IntPtr obj, System.IntPtr pd, System.String name, System.String value, bool execute)
+        {
+            Eina.Log.Debug("function efl_gfx_filter_data_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    
+                try
+                {
+                    ((Text)ws.Target).SetFilterData(name, value, execute);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_gfx_filter_data_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), name, value, execute);
+            }
+        }
+
+        private static efl_gfx_filter_data_set_delegate efl_gfx_filter_data_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
+namespace Efl {
+
+namespace Canvas {
+
+/// <summary>EFL text style data structure</summary>
+[StructLayout(LayoutKind.Sequential)]
+public struct TextStyle
+{
+    ///<summary>Placeholder field</summary>
+    public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
+    public static implicit operator TextStyle(IntPtr ptr)
+    {
+        var tmp = (TextStyle.NativeStruct)Marshal.PtrToStructure(ptr, typeof(TextStyle.NativeStruct));
+        return tmp;
+    }
+
+    #pragma warning disable CS1591
+
+    ///<summary>Internal wrapper for struct TextStyle.</summary>
+    [StructLayout(LayoutKind.Sequential)]
+    public struct NativeStruct
+    {
+        internal IntPtr field;
+        ///<summary>Implicit conversion to the internal/marshalling representation.</summary>
+        public static implicit operator TextStyle.NativeStruct(TextStyle _external_struct)
+        {
+            var _internal_struct = new TextStyle.NativeStruct();
+            return _internal_struct;
+        }
+
+        ///<summary>Implicit conversion to the managed representation.</summary>
+        public static implicit operator TextStyle(TextStyle.NativeStruct _internal_struct)
+        {
+            var _external_struct = new TextStyle();
+            return _external_struct;
+        }
+
+    }
+
+    #pragma warning restore CS1591
+
+}
+
+}
+
+}
+
index 5afb15b..e0ad0c4 100644 (file)
@@ -22,13 +22,13 @@ Efl.Canvas.Object Create(Efl.Canvas.Object kw_object, System.String key);
     }
 /// <summary>Object factory that creates Efl.Canvas.Object objects.
 /// Translates a given key to an object (item), to be later placed in a text for higher level usages. The translation implementation is left to be decided by the inheriting class, whether it is by treating the <c>key</c> as an image path, or a key associated with a real-path in a hashtable or something else entirely.</summary>
-sealed public class ITextFactoryConcrete : 
-
-ITextFactory
+sealed public class ITextFactoryConcrete :
+    Efl.Eo.EoWrapper
+    , ITextFactory
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -43,86 +43,12 @@ ITextFactory
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
         efl_canvas_text_factory_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ITextFactory"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextFactoryConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextFactoryConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ITextFactoryConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Translates a given <c>key</c> to an item object, and returns the object. The returned object should be owned by the passed <c>object</c>.</summary>
@@ -168,7 +94,7 @@ ITextFactory
             return Efl.Canvas.ITextFactoryConcrete.efl_canvas_text_factory_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))]
         private delegate Efl.Canvas.Object efl_canvas_text_factory_create_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Object kw_object, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key);
@@ -181,13 +107,13 @@ ITextFactory
         private static Efl.Canvas.Object create(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object kw_object, System.String key)
         {
             Eina.Log.Debug("function efl_canvas_text_factory_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((ITextFactory)wrapper).Create(kw_object, key);
+                    _ret_var = ((ITextFactory)ws.Target).Create(kw_object, key);
                 }
                 catch (Exception e)
                 {
@@ -206,7 +132,7 @@ ITextFactory
 
         private static efl_canvas_text_factory_create_delegate efl_canvas_text_factory_create_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index bb1ba68..1efbd25 100644 (file)
@@ -13,7 +13,7 @@ namespace Vg {
 
 /// <summary>Efl vector graphics container class</summary>
 [Efl.Canvas.Vg.Container.NativeMethods]
-public class Container : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper
+public class Container : Efl.Canvas.Vg.Node
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -46,7 +46,7 @@ public class Container : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Container(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Container"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -57,33 +57,6 @@ public class Container : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Get child of container</summary>
     /// <param name="name">Child node name</param>
     /// <returns>Child object</returns>
@@ -145,7 +118,7 @@ public class Container : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper
             return Efl.Canvas.Vg.Container.efl_canvas_vg_container_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Canvas.Vg.Node efl_canvas_vg_container_child_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
@@ -158,13 +131,13 @@ public class Container : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper
         private static Efl.Canvas.Vg.Node child_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_canvas_vg_container_child_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Canvas.Vg.Node _ret_var = default(Efl.Canvas.Vg.Node);
                 try
                 {
-                    _ret_var = ((Container)wrapper).GetChild(name);
+                    _ret_var = ((Container)ws.Target).GetChild(name);
                 }
                 catch (Exception e)
                 {
@@ -194,13 +167,13 @@ public class Container : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper
         private static System.IntPtr children_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_vg_container_children_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Canvas.Vg.Node> _ret_var = default(Eina.Iterator<Efl.Canvas.Vg.Node>);
                 try
                 {
-                    _ret_var = ((Container)wrapper).GetChildren();
+                    _ret_var = ((Container)ws.Target).GetChildren();
                 }
                 catch (Exception e)
                 {
@@ -219,7 +192,7 @@ public class Container : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper
 
         private static efl_canvas_vg_container_children_get_delegate efl_canvas_vg_container_children_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 0961192..054bbf4 100644 (file)
@@ -13,7 +13,7 @@ namespace Vg {
 
 /// <summary>Efl vectopr graphics gradient abstract class</summary>
 [Efl.Canvas.Vg.Gradient.NativeMethods]
-public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IGradient
+public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Gfx.IGradient
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -46,7 +46,7 @@ public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IGr
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Gradient(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class GradientRealized : Gradient
@@ -64,33 +64,6 @@ public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IGr
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Get the list of color stops.</summary>
     /// <param name="colors">Color stops list</param>
     /// <param name="length">Length of the list</param>
@@ -123,7 +96,7 @@ public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IGr
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Returns the spread method use by this gradient. The default is EFL_GFX_GRADIENT_SPREAD_PAD.</summary>
-/// <value>Spread type to be used</value>
+    /// <value>Spread type to be used</value>
     public Efl.Gfx.GradientSpread Spread {
         get { return GetSpread(); }
         set { SetSpread(value); }
@@ -194,7 +167,7 @@ public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IGr
             return Efl.Canvas.Vg.Gradient.efl_canvas_vg_gradient_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_gradient_stop_get_delegate(System.IntPtr obj, System.IntPtr pd,  out System.IntPtr colors,  out uint length);
@@ -207,14 +180,14 @@ public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IGr
         private static void stop_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr colors, out uint length)
         {
             Eina.Log.Debug("function efl_gfx_gradient_stop_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Gfx.GradientStop _out_colors = default(Efl.Gfx.GradientStop);
         length = default(uint);                            
                 try
                 {
-                    ((Gradient)wrapper).GetStop(out _out_colors, out length);
+                    ((Gradient)ws.Target).GetStop(out _out_colors, out length);
                 }
                 catch (Exception e)
                 {
@@ -244,14 +217,14 @@ public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IGr
         private static void stop_set(System.IntPtr obj, System.IntPtr pd, ref Efl.Gfx.GradientStop.NativeStruct colors, uint length)
         {
             Eina.Log.Debug("function efl_gfx_gradient_stop_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Gfx.GradientStop _in_colors = colors;
                                                     
                 try
                 {
-                    ((Gradient)wrapper).SetStop(ref _in_colors, length);
+                    ((Gradient)ws.Target).SetStop(ref _in_colors, length);
                 }
                 catch (Exception e)
                 {
@@ -281,13 +254,13 @@ public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IGr
         private static Efl.Gfx.GradientSpread spread_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_gradient_spread_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.GradientSpread _ret_var = default(Efl.Gfx.GradientSpread);
                 try
                 {
-                    _ret_var = ((Gradient)wrapper).GetSpread();
+                    _ret_var = ((Gradient)ws.Target).GetSpread();
                 }
                 catch (Exception e)
                 {
@@ -317,13 +290,13 @@ public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IGr
         private static void spread_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.GradientSpread s)
         {
             Eina.Log.Debug("function efl_gfx_gradient_spread_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Gradient)wrapper).SetSpread(s);
+                    ((Gradient)ws.Target).SetSpread(s);
                 }
                 catch (Exception e)
                 {
@@ -341,7 +314,7 @@ public abstract class Gradient : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IGr
 
         private static efl_gfx_gradient_spread_set_delegate efl_gfx_gradient_spread_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 049a5d4..838c520 100644 (file)
@@ -13,7 +13,7 @@ namespace Vg {
 
 /// <summary>Efl vector graphics gradient linear class</summary>
 [Efl.Canvas.Vg.GradientLinear.NativeMethods]
-public class GradientLinear : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IGradientLinear
+public class GradientLinear : Efl.Canvas.Vg.Gradient, Efl.Gfx.IGradientLinear
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -46,7 +46,7 @@ public class GradientLinear : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected GradientLinear(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="GradientLinear"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -57,33 +57,6 @@ public class GradientLinear : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Gets the start point of this linear gradient.</summary>
     /// <param name="x">X co-ordinate of start point</param>
     /// <param name="y">Y co-ordinate of start point</param>
@@ -178,7 +151,7 @@ public class GradientLinear : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
             return Efl.Canvas.Vg.GradientLinear.efl_canvas_vg_gradient_linear_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_gradient_linear_start_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double x,  out double y);
@@ -191,13 +164,13 @@ public class GradientLinear : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         private static void start_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_linear_start_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((GradientLinear)wrapper).GetStart(out x, out y);
+                    ((GradientLinear)ws.Target).GetStart(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -226,13 +199,13 @@ public class GradientLinear : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         private static void start_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_linear_start_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((GradientLinear)wrapper).SetStart(x, y);
+                    ((GradientLinear)ws.Target).SetStart(x, y);
                 }
                 catch (Exception e)
                 {
@@ -261,13 +234,13 @@ public class GradientLinear : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         private static void end_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_linear_end_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((GradientLinear)wrapper).GetEnd(out x, out y);
+                    ((GradientLinear)ws.Target).GetEnd(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -296,13 +269,13 @@ public class GradientLinear : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         private static void end_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_linear_end_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((GradientLinear)wrapper).SetEnd(x, y);
+                    ((GradientLinear)ws.Target).SetEnd(x, y);
                 }
                 catch (Exception e)
                 {
@@ -320,7 +293,7 @@ public class GradientLinear : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
 
         private static efl_gfx_gradient_linear_end_set_delegate efl_gfx_gradient_linear_end_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 1715e55..5f3b23c 100644 (file)
@@ -13,7 +13,7 @@ namespace Vg {
 
 /// <summary>Efl vector graphics gradient radial class</summary>
 [Efl.Canvas.Vg.GradientRadial.NativeMethods]
-public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IGradientRadial
+public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Gfx.IGradientRadial
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -46,7 +46,7 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected GradientRadial(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="GradientRadial"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -57,33 +57,6 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Gets the center of this radial gradient.</summary>
     /// <param name="x">X co-ordinate of center point</param>
     /// <param name="y">Y co-ordinate of center point</param>
@@ -126,7 +99,7 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Gets the center radius of this radial gradient.</summary>
-/// <value>Center radius</value>
+    /// <value>Center radius</value>
     public double Radius {
         get { return GetRadius(); }
         set { SetRadius(value); }
@@ -217,7 +190,7 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
             return Efl.Canvas.Vg.GradientRadial.efl_canvas_vg_gradient_radial_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_gradient_radial_center_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double x,  out double y);
@@ -230,13 +203,13 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         private static void center_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_center_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((GradientRadial)wrapper).GetCenter(out x, out y);
+                    ((GradientRadial)ws.Target).GetCenter(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -265,13 +238,13 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         private static void center_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_center_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((GradientRadial)wrapper).SetCenter(x, y);
+                    ((GradientRadial)ws.Target).SetCenter(x, y);
                 }
                 catch (Exception e)
                 {
@@ -300,13 +273,13 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         private static double radius_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_radius_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((GradientRadial)wrapper).GetRadius();
+                    _ret_var = ((GradientRadial)ws.Target).GetRadius();
                 }
                 catch (Exception e)
                 {
@@ -336,13 +309,13 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         private static void radius_set(System.IntPtr obj, System.IntPtr pd, double r)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_radius_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((GradientRadial)wrapper).SetRadius(r);
+                    ((GradientRadial)ws.Target).SetRadius(r);
                 }
                 catch (Exception e)
                 {
@@ -371,13 +344,13 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         private static void focal_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_focal_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((GradientRadial)wrapper).GetFocal(out x, out y);
+                    ((GradientRadial)ws.Target).GetFocal(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -406,13 +379,13 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
         private static void focal_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_focal_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((GradientRadial)wrapper).SetFocal(x, y);
+                    ((GradientRadial)ws.Target).SetFocal(x, y);
                 }
                 catch (Exception e)
                 {
@@ -430,7 +403,7 @@ public class GradientRadial : Efl.Canvas.Vg.Gradient, Efl.Eo.IWrapper,Efl.Gfx.IG
 
         private static efl_gfx_gradient_radial_focal_set_delegate efl_gfx_gradient_radial_focal_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 091a61d..19f02cc 100644 (file)
@@ -13,7 +13,7 @@ namespace Vg {
 
 /// <summary>Efl vector graphics abstract class</summary>
 [Efl.Canvas.Vg.Node.NativeMethods]
-public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.IColor,Efl.Gfx.IEntity,Efl.Gfx.IPath,Efl.Gfx.IStack
+public abstract class Node : Efl.Object, Efl.IDuplicate, Efl.Gfx.IColor, Efl.Gfx.IEntity, Efl.Gfx.IPath, Efl.Gfx.IStack
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -46,7 +46,7 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Node(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class NodeRealized : Node
@@ -64,33 +64,6 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Object&apos;s visibility state changed, the event value is the new state.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.Gfx.IEntityVisibilityChangedEvt_Args> VisibilityChangedEvt
@@ -99,14 +72,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -162,13 +134,12 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
+                        Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -226,13 +197,12 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
+                        Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -290,10 +260,9 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -806,83 +775,83 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Gets the transformation matrix used for this node object.</summary>
-/// <value>Transformation matrix.</value>
+    /// <value>Transformation matrix.</value>
     public Eina.Matrix3 Transformation {
         get { return GetTransformation(); }
         set { SetTransformation(ref value); }
     }
     /// <summary>Get hex color code of given Evas object. This returns a short lived hex color code string.
-/// (Since EFL 1.22)</summary>
-/// <value>the hex color code.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>the hex color code.</value>
     public System.String ColorCode {
         get { return GetColorCode(); }
         set { SetColorCode(value); }
     }
     /// <summary>The 2D position of a canvas object.
-/// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D coordinate in pixel units.</value>
+    /// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D coordinate in pixel units.</value>
     public Eina.Position2D Position {
         get { return GetPosition(); }
         set { SetPosition(value); }
     }
     /// <summary>The 2D size of a canvas object.
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D size in pixel units.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D size in pixel units.</value>
     public Eina.Size2D Size {
         get { return GetSize(); }
         set { SetSize(value); }
     }
     /// <summary>Rectangular geometry that combines both position and size.
-/// (Since EFL 1.22)</summary>
-/// <value>The X,Y position and W,H size, in pixels.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The X,Y position and W,H size, in pixels.</value>
     public Eina.Rect Geometry {
         get { return GetGeometry(); }
         set { SetGeometry(value); }
     }
     /// <summary>The visibility of a canvas object.
-/// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
-/// 
-/// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
+    /// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
+    /// 
+    /// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
     public bool Visible {
         get { return GetVisible(); }
         set { SetVisible(value); }
     }
     /// <summary>The scaling factor of an object.
-/// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
-/// 
-/// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
-/// (Since EFL 1.22)</summary>
-/// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
+    /// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
+    /// 
+    /// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
     public double Scale {
         get { return GetScale(); }
         set { SetScale(value); }
     }
     /// <summary>Retrieves the layer of its canvas that the given object is part of.
-/// See also <see cref="Efl.Gfx.IStack.SetLayer"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The number of the layer to place the object on. Must be between <see cref="Efl.Gfx.Constants.StackLayerMin"/> and <see cref="Efl.Gfx.Constants.StackLayerMax"/>.</value>
+    /// See also <see cref="Efl.Gfx.IStack.SetLayer"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The number of the layer to place the object on. Must be between <see cref="Efl.Gfx.Constants.StackLayerMin"/> and <see cref="Efl.Gfx.Constants.StackLayerMax"/>.</value>
     public short Layer {
         get { return GetLayer(); }
         set { SetLayer(value); }
     }
     /// <summary>Get the Evas object stacked right below <c>obj</c>
-/// This function will traverse layers in its search, if there are objects on layers below the one <c>obj</c> is placed at.
-/// 
-/// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
+    /// This function will traverse layers in its search, if there are objects on layers below the one <c>obj</c> is placed at.
+    /// 
+    /// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
     public Efl.Gfx.IStack Below {
         get { return GetBelow(); }
     }
     /// <summary>Get the Evas object stacked right above <c>obj</c>
-/// This function will traverse layers in its search, if there are objects on layers above the one <c>obj</c> is placed at.
-/// 
-/// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
+    /// This function will traverse layers in its search, if there are objects on layers above the one <c>obj</c> is placed at.
+    /// 
+    /// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
     public Efl.Gfx.IStack Above {
         get { return GetAbove(); }
     }
@@ -1432,7 +1401,7 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
             return Efl.Canvas.Vg.Node.efl_canvas_vg_node_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_canvas_vg_node_transformation_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1445,13 +1414,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static System.IntPtr transformation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_vg_node_transformation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Matrix3 _ret_var = default(Eina.Matrix3);
                 try
                 {
-                    _ret_var = ((Node)wrapper).GetTransformation();
+                    _ret_var = ((Node)ws.Target).GetTransformation();
                 }
                 catch (Exception e)
                 {
@@ -1481,14 +1450,14 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void transformation_set(System.IntPtr obj, System.IntPtr pd, ref Eina.Matrix3.NativeStruct m)
         {
             Eina.Log.Debug("function efl_canvas_vg_node_transformation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Matrix3 _in_m = m;
                             
                 try
                 {
-                    ((Node)wrapper).SetTransformation(ref _in_m);
+                    ((Node)ws.Target).SetTransformation(ref _in_m);
                 }
                 catch (Exception e)
                 {
@@ -1518,13 +1487,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void origin_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_canvas_vg_node_origin_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Node)wrapper).GetOrigin(out x, out y);
+                    ((Node)ws.Target).GetOrigin(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -1553,13 +1522,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void origin_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_canvas_vg_node_origin_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Node)wrapper).SetOrigin(x, y);
+                    ((Node)ws.Target).SetOrigin(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1588,13 +1557,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void mask_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Vg.Node mask, int op)
         {
             Eina.Log.Debug("function efl_canvas_vg_node_mask_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Node)wrapper).SetMask(mask, op);
+                    ((Node)ws.Target).SetMask(mask, op);
                 }
                 catch (Exception e)
                 {
@@ -1623,13 +1592,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static Efl.IDuplicate duplicate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_duplicate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IDuplicate _ret_var = default(Efl.IDuplicate);
                 try
                 {
-                    _ret_var = ((Node)wrapper).Duplicate();
+                    _ret_var = ((Node)ws.Target).Duplicate();
                 }
                 catch (Exception e)
                 {
@@ -1659,13 +1628,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void color_get(System.IntPtr obj, System.IntPtr pd, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                            
                 try
                 {
-                    ((Node)wrapper).GetColor(out r, out g, out b, out a);
+                    ((Node)ws.Target).GetColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -1694,13 +1663,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void color_set(System.IntPtr obj, System.IntPtr pd, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Node)wrapper).SetColor(r, g, b, a);
+                    ((Node)ws.Target).SetColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1729,13 +1698,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static System.String color_code_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_color_code_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Node)wrapper).GetColorCode();
+                    _ret_var = ((Node)ws.Target).GetColorCode();
                 }
                 catch (Exception e)
                 {
@@ -1765,13 +1734,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void color_code_set(System.IntPtr obj, System.IntPtr pd, System.String colorcode)
         {
             Eina.Log.Debug("function efl_gfx_color_code_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Node)wrapper).SetColorCode(colorcode);
+                    ((Node)ws.Target).SetColorCode(colorcode);
                 }
                 catch (Exception e)
                 {
@@ -1800,13 +1769,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static Eina.Position2D.NativeStruct position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Node)wrapper).GetPosition();
+                    _ret_var = ((Node)ws.Target).GetPosition();
                 }
                 catch (Exception e)
                 {
@@ -1836,14 +1805,14 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void position_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((Node)wrapper).SetPosition(_in_pos);
+                    ((Node)ws.Target).SetPosition(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -1872,13 +1841,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static Eina.Size2D.NativeStruct size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Node)wrapper).GetSize();
+                    _ret_var = ((Node)ws.Target).GetSize();
                 }
                 catch (Exception e)
                 {
@@ -1908,14 +1877,14 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((Node)wrapper).SetSize(_in_size);
+                    ((Node)ws.Target).SetSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -1944,13 +1913,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static Eina.Rect.NativeStruct geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Node)wrapper).GetGeometry();
+                    _ret_var = ((Node)ws.Target).GetGeometry();
                 }
                 catch (Exception e)
                 {
@@ -1980,14 +1949,14 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void geometry_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                             
                 try
                 {
-                    ((Node)wrapper).SetGeometry(_in_rect);
+                    ((Node)ws.Target).SetGeometry(_in_rect);
                 }
                 catch (Exception e)
                 {
@@ -2016,13 +1985,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static bool visible_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Node)wrapper).GetVisible();
+                    _ret_var = ((Node)ws.Target).GetVisible();
                 }
                 catch (Exception e)
                 {
@@ -2052,13 +2021,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void visible_set(System.IntPtr obj, System.IntPtr pd, bool v)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Node)wrapper).SetVisible(v);
+                    ((Node)ws.Target).SetVisible(v);
                 }
                 catch (Exception e)
                 {
@@ -2087,13 +2056,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static double scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Node)wrapper).GetScale();
+                    _ret_var = ((Node)ws.Target).GetScale();
                 }
                 catch (Exception e)
                 {
@@ -2123,13 +2092,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Node)wrapper).SetScale(scale);
+                    ((Node)ws.Target).SetScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -2158,15 +2127,15 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void path_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr op, out System.IntPtr points)
         {
             Eina.Log.Debug("function efl_gfx_path_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Gfx.PathCommandType _out_op = default(Efl.Gfx.PathCommandType);
         double _out_points = default(double);
                             
                 try
                 {
-                    ((Node)wrapper).GetPath(out _out_op, out _out_points);
+                    ((Node)ws.Target).GetPath(out _out_op, out _out_points);
                 }
                 catch (Exception e)
                 {
@@ -2197,15 +2166,15 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void path_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr op, System.IntPtr points)
         {
             Eina.Log.Debug("function efl_gfx_path_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_op = Eina.PrimitiveConversion.PointerToManaged<Efl.Gfx.PathCommandType>(op);
         var _in_points = Eina.PrimitiveConversion.PointerToManaged<double>(points);
                                             
                 try
                 {
-                    ((Node)wrapper).SetPath(_in_op, _in_points);
+                    ((Node)ws.Target).SetPath(_in_op, _in_points);
                 }
                 catch (Exception e)
                 {
@@ -2234,13 +2203,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void length_get(System.IntPtr obj, System.IntPtr pd, out uint commands, out uint points)
         {
             Eina.Log.Debug("function efl_gfx_path_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         commands = default(uint);        points = default(uint);                            
                 try
                 {
-                    ((Node)wrapper).GetLength(out commands, out points);
+                    ((Node)ws.Target).GetLength(out commands, out points);
                 }
                 catch (Exception e)
                 {
@@ -2269,13 +2238,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void current_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_path_current_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Node)wrapper).GetCurrent(out x, out y);
+                    ((Node)ws.Target).GetCurrent(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -2304,13 +2273,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void current_ctrl_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_path_current_ctrl_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Node)wrapper).GetCurrentCtrl(out x, out y);
+                    ((Node)ws.Target).GetCurrentCtrl(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -2339,13 +2308,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void copy_from(System.IntPtr obj, System.IntPtr pd, Efl.Object dup_from)
         {
             Eina.Log.Debug("function efl_gfx_path_copy_from was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Node)wrapper).CopyFrom(dup_from);
+                    ((Node)ws.Target).CopyFrom(dup_from);
                 }
                 catch (Exception e)
                 {
@@ -2374,14 +2343,14 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void bounds_get(System.IntPtr obj, System.IntPtr pd, out Eina.Rect.NativeStruct r)
         {
             Eina.Log.Debug("function efl_gfx_path_bounds_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Rect _out_r = default(Eina.Rect);
                     
                 try
                 {
-                    ((Node)wrapper).GetBounds(out _out_r);
+                    ((Node)ws.Target).GetBounds(out _out_r);
                 }
                 catch (Exception e)
                 {
@@ -2411,13 +2380,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Node)wrapper).Reset();
+                    ((Node)ws.Target).Reset();
                 }
                 catch (Exception e)
                 {
@@ -2446,13 +2415,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_move_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_move_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Node)wrapper).AppendMoveTo(x, y);
+                    ((Node)ws.Target).AppendMoveTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -2481,13 +2450,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_line_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_line_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Node)wrapper).AppendLineTo(x, y);
+                    ((Node)ws.Target).AppendLineTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -2516,13 +2485,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_quadratic_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double ctrl_x, double ctrl_y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_quadratic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Node)wrapper).AppendQuadraticTo(x, y, ctrl_x, ctrl_y);
+                    ((Node)ws.Target).AppendQuadraticTo(x, y, ctrl_x, ctrl_y);
                 }
                 catch (Exception e)
                 {
@@ -2551,13 +2520,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_squadratic_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_squadratic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Node)wrapper).AppendSquadraticTo(x, y);
+                    ((Node)ws.Target).AppendSquadraticTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -2586,13 +2555,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_cubic_to(System.IntPtr obj, System.IntPtr pd, double ctrl_x0, double ctrl_y0, double ctrl_x1, double ctrl_y1, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_cubic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((Node)wrapper).AppendCubicTo(ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, x, y);
+                    ((Node)ws.Target).AppendCubicTo(ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, x, y);
                 }
                 catch (Exception e)
                 {
@@ -2621,13 +2590,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_scubic_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double ctrl_x, double ctrl_y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_scubic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Node)wrapper).AppendScubicTo(x, y, ctrl_x, ctrl_y);
+                    ((Node)ws.Target).AppendScubicTo(x, y, ctrl_x, ctrl_y);
                 }
                 catch (Exception e)
                 {
@@ -2656,13 +2625,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_arc_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double rx, double ry, double angle, bool large_arc, bool sweep)
         {
             Eina.Log.Debug("function efl_gfx_path_append_arc_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                     
                 try
                 {
-                    ((Node)wrapper).AppendArcTo(x, y, rx, ry, angle, large_arc, sweep);
+                    ((Node)ws.Target).AppendArcTo(x, y, rx, ry, angle, large_arc, sweep);
                 }
                 catch (Exception e)
                 {
@@ -2691,13 +2660,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_arc(System.IntPtr obj, System.IntPtr pd, double x, double y, double w, double h, double start_angle, double sweep_length)
         {
             Eina.Log.Debug("function efl_gfx_path_append_arc was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((Node)wrapper).AppendArc(x, y, w, h, start_angle, sweep_length);
+                    ((Node)ws.Target).AppendArc(x, y, w, h, start_angle, sweep_length);
                 }
                 catch (Exception e)
                 {
@@ -2726,13 +2695,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_close(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_append_close was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Node)wrapper).CloseAppend();
+                    ((Node)ws.Target).CloseAppend();
                 }
                 catch (Exception e)
                 {
@@ -2761,13 +2730,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_circle(System.IntPtr obj, System.IntPtr pd, double x, double y, double radius)
         {
             Eina.Log.Debug("function efl_gfx_path_append_circle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Node)wrapper).AppendCircle(x, y, radius);
+                    ((Node)ws.Target).AppendCircle(x, y, radius);
                 }
                 catch (Exception e)
                 {
@@ -2796,13 +2765,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_rect(System.IntPtr obj, System.IntPtr pd, double x, double y, double w, double h, double rx, double ry)
         {
             Eina.Log.Debug("function efl_gfx_path_append_rect was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((Node)wrapper).AppendRect(x, y, w, h, rx, ry);
+                    ((Node)ws.Target).AppendRect(x, y, w, h, rx, ry);
                 }
                 catch (Exception e)
                 {
@@ -2831,13 +2800,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void append_svg_path(System.IntPtr obj, System.IntPtr pd, System.String svg_path_data)
         {
             Eina.Log.Debug("function efl_gfx_path_append_svg_path was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Node)wrapper).AppendSvgPath(svg_path_data);
+                    ((Node)ws.Target).AppendSvgPath(svg_path_data);
                 }
                 catch (Exception e)
                 {
@@ -2866,13 +2835,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static bool interpolate(System.IntPtr obj, System.IntPtr pd, Efl.Object from, Efl.Object to, double pos_map)
         {
             Eina.Log.Debug("function efl_gfx_path_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Node)wrapper).Interpolate(from, to, pos_map);
+                    _ret_var = ((Node)ws.Target).Interpolate(from, to, pos_map);
                 }
                 catch (Exception e)
                 {
@@ -2902,13 +2871,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static bool equal_commands(System.IntPtr obj, System.IntPtr pd, Efl.Object with)
         {
             Eina.Log.Debug("function efl_gfx_path_equal_commands was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Node)wrapper).EqualCommands(with);
+                    _ret_var = ((Node)ws.Target).EqualCommands(with);
                 }
                 catch (Exception e)
                 {
@@ -2938,13 +2907,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void reserve(System.IntPtr obj, System.IntPtr pd, uint cmd_count, uint pts_count)
         {
             Eina.Log.Debug("function efl_gfx_path_reserve was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Node)wrapper).Reserve(cmd_count, pts_count);
+                    ((Node)ws.Target).Reserve(cmd_count, pts_count);
                 }
                 catch (Exception e)
                 {
@@ -2973,13 +2942,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void commit(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_commit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Node)wrapper).Commit();
+                    ((Node)ws.Target).Commit();
                 }
                 catch (Exception e)
                 {
@@ -3008,13 +2977,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static short layer_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_layer_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             short _ret_var = default(short);
                 try
                 {
-                    _ret_var = ((Node)wrapper).GetLayer();
+                    _ret_var = ((Node)ws.Target).GetLayer();
                 }
                 catch (Exception e)
                 {
@@ -3044,13 +3013,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void layer_set(System.IntPtr obj, System.IntPtr pd, short l)
         {
             Eina.Log.Debug("function efl_gfx_stack_layer_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Node)wrapper).SetLayer(l);
+                    ((Node)ws.Target).SetLayer(l);
                 }
                 catch (Exception e)
                 {
@@ -3079,13 +3048,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static Efl.Gfx.IStack below_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_below_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IStack _ret_var = default(Efl.Gfx.IStack);
                 try
                 {
-                    _ret_var = ((Node)wrapper).GetBelow();
+                    _ret_var = ((Node)ws.Target).GetBelow();
                 }
                 catch (Exception e)
                 {
@@ -3115,13 +3084,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static Efl.Gfx.IStack above_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_above_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IStack _ret_var = default(Efl.Gfx.IStack);
                 try
                 {
-                    _ret_var = ((Node)wrapper).GetAbove();
+                    _ret_var = ((Node)ws.Target).GetAbove();
                 }
                 catch (Exception e)
                 {
@@ -3151,13 +3120,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void stack_below(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IStack below)
         {
             Eina.Log.Debug("function efl_gfx_stack_below was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Node)wrapper).StackBelow(below);
+                    ((Node)ws.Target).StackBelow(below);
                 }
                 catch (Exception e)
                 {
@@ -3186,13 +3155,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void raise_to_top(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_raise_to_top was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Node)wrapper).RaiseToTop();
+                    ((Node)ws.Target).RaiseToTop();
                 }
                 catch (Exception e)
                 {
@@ -3221,13 +3190,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void stack_above(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IStack above)
         {
             Eina.Log.Debug("function efl_gfx_stack_above was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Node)wrapper).StackAbove(above);
+                    ((Node)ws.Target).StackAbove(above);
                 }
                 catch (Exception e)
                 {
@@ -3256,13 +3225,13 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
         private static void lower_to_bottom(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_lower_to_bottom was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Node)wrapper).LowerToBottom();
+                    ((Node)ws.Target).LowerToBottom();
                 }
                 catch (Exception e)
                 {
@@ -3280,7 +3249,7 @@ public abstract class Node : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Gfx.
 
         private static efl_gfx_stack_lower_to_bottom_delegate efl_gfx_stack_lower_to_bottom_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_canvas_vg_object.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_canvas_vg_object.eo.cs
new file mode 100644 (file)
index 0000000..e2e7c13
--- /dev/null
@@ -0,0 +1,1639 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Canvas {
+
+namespace Vg {
+
+/// <summary>Efl vector graphics class</summary>
+[Efl.Canvas.Vg.Object.NativeMethods]
+public class Object : Efl.Canvas.Object, Efl.IFile, Efl.IFileSave, Efl.Gfx.IFrameController
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(Object))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_canvas_vg_object_class_get();
+    /// <summary>Initializes a new instance of the <see cref="Object"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public Object(Efl.Object parent= null
+            ) : base(efl_canvas_vg_object_class_get(), typeof(Object), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="Object"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected Object(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="Object"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected Object(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Control how the viewbox is mapped to the vg canvas&apos;s viewport.</summary>
+    /// <returns>Fill mode type</returns>
+    virtual public Efl.Canvas.Vg.FillMode GetFillMode() {
+         var _ret_var = Efl.Canvas.Vg.Object.NativeMethods.efl_canvas_vg_object_fill_mode_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Control how the viewbox is mapped to the vg canvas&apos;s viewport.</summary>
+    /// <param name="fill_mode">Fill mode type</param>
+    virtual public void SetFillMode(Efl.Canvas.Vg.FillMode fill_mode) {
+                                 Efl.Canvas.Vg.Object.NativeMethods.efl_canvas_vg_object_fill_mode_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),fill_mode);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Get the current viewbox from the  evas_object_vg</summary>
+    /// <returns>viewbox for the vg canvas</returns>
+    virtual public Eina.Rect GetViewbox() {
+         var _ret_var = Efl.Canvas.Vg.Object.NativeMethods.efl_canvas_vg_object_viewbox_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Sets the viewbox for the evas vg canvas. viewbox if set should be mapped to the canvas geometry when rendering the vg tree.</summary>
+    /// <param name="viewbox">viewbox for the vg canvas</param>
+    virtual public void SetViewbox(Eina.Rect viewbox) {
+         Eina.Rect.NativeStruct _in_viewbox = viewbox;
+                        Efl.Canvas.Vg.Object.NativeMethods.efl_canvas_vg_object_viewbox_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),_in_viewbox);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Control how the viewbox is positioned inside the viewport.</summary>
+    /// <param name="align_x">Alignment in the horizontal axis (0 &lt;= align_x &lt;= 1).</param>
+    /// <param name="align_y">Alignment in the vertical axis (0 &lt;= align_y &lt;= 1).</param>
+    virtual public void GetViewboxAlign(out double align_x, out double align_y) {
+                                                         Efl.Canvas.Vg.Object.NativeMethods.efl_canvas_vg_object_viewbox_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_x, out align_y);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Control how the viewbox is positioned inside the viewport.</summary>
+    /// <param name="align_x">Alignment in the horizontal axis (0 &lt;= align_x &lt;= 1).</param>
+    /// <param name="align_y">Alignment in the vertical axis (0 &lt;= align_y &lt;= 1).</param>
+    virtual public void SetViewboxAlign(double align_x, double align_y) {
+                                                         Efl.Canvas.Vg.Object.NativeMethods.efl_canvas_vg_object_viewbox_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_x, align_y);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Get the root node of the evas_object_vg.</summary>
+    /// <returns>Root node of the VG canvas.</returns>
+    virtual public Efl.Canvas.Vg.Node GetRootNode() {
+         var _ret_var = Efl.Canvas.Vg.Object.NativeMethods.efl_canvas_vg_object_root_node_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Set the root node of the evas_object_vg.
+    /// Note: To manually create the shape object and show in the Vg object canvas you must create the hierarchy and set as root node.
+    /// 
+    /// It takes the ownership of the root node.</summary>
+    /// <param name="root">Root node of the VG canvas.</param>
+    virtual public void SetRootNode(Efl.Canvas.Vg.Node root) {
+                                 Efl.Canvas.Vg.Object.NativeMethods.efl_canvas_vg_object_root_node_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),root);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Get the default vector size that specified from vector resource.
+    /// (Since EFL 1.22)</summary>
+    virtual public Eina.Size2D GetDefaultSize() {
+         var _ret_var = Efl.Canvas.Vg.Object.NativeMethods.efl_canvas_vg_object_default_size_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
+    /// (Since EFL 1.22)</summary>
+    /// <returns>The handle to the <see cref="Eina.File"/> that will be used</returns>
+    virtual public Eina.File GetMmap() {
+         var _ret_var = Efl.IFileConcrete.NativeMethods.efl_file_mmap_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Set the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
+    /// If mmap is set during object construction, the object will automatically call <see cref="Efl.IFile.Load"/> during the finalize phase of construction.
+    /// (Since EFL 1.22)</summary>
+    /// <param name="f">The handle to the <see cref="Eina.File"/> that will be used</param>
+    /// <returns>0 on success, error code otherwise</returns>
+    virtual public Eina.Error SetMmap(Eina.File f) {
+                                 var _ret_var = Efl.IFileConcrete.NativeMethods.efl_file_mmap_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),f);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Retrieve the file path from where an object is to fetch the data.
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <returns>The file path.</returns>
+    virtual public System.String GetFile() {
+         var _ret_var = Efl.IFileConcrete.NativeMethods.efl_file_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Set the file path from where an object will fetch the data.
+    /// If file is set during object construction, the object will automatically call <see cref="Efl.IFile.Load"/> during the finalize phase of construction.
+    /// (Since EFL 1.22)</summary>
+    /// <param name="file">The file path.</param>
+    /// <returns>0 on success, error code otherwise</returns>
+    virtual public Eina.Error SetFile(System.String file) {
+                                 var _ret_var = Efl.IFileConcrete.NativeMethods.efl_file_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),file);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Get the previously-set key which corresponds to the target data within a file.
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <returns>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</returns>
+    virtual public System.String GetKey() {
+         var _ret_var = Efl.IFileConcrete.NativeMethods.efl_file_key_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Set the key which corresponds to the target data within a file.
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases.
+    /// (Since EFL 1.22)</summary>
+    /// <param name="key">The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</param>
+    virtual public void SetKey(System.String key) {
+                                 Efl.IFileConcrete.NativeMethods.efl_file_key_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),key);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Get the load state of the object.
+    /// (Since EFL 1.22)</summary>
+    /// <returns><c>true</c> if the object is loaded, <c>false</c> otherwise.</returns>
+    virtual public bool GetLoaded() {
+         var _ret_var = Efl.IFileConcrete.NativeMethods.efl_file_loaded_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Perform all necessary operations to open and load file data into the object using the <see cref="Efl.IFile.File"/> (or <see cref="Efl.IFile.Mmap"/>) and <see cref="Efl.IFile.Key"/> properties.
+    /// In the case where <see cref="Efl.IFile.SetFile"/> has been called on an object, this will internally open the file and call <see cref="Efl.IFile.SetMmap"/> on the object using the opened file handle.
+    /// 
+    /// Calling <see cref="Efl.IFile.Load"/> on an object which has already performed file operations based on the currently set properties will have no effect.
+    /// (Since EFL 1.22)</summary>
+    /// <returns>0 on success, error code otherwise</returns>
+    virtual public Eina.Error Load() {
+         var _ret_var = Efl.IFileConcrete.NativeMethods.efl_file_load_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Perform all necessary operations to unload file data from the object.
+    /// In the case where <see cref="Efl.IFile.SetMmap"/> has been externally called on an object, the file handle stored in the object will be preserved.
+    /// 
+    /// Calling <see cref="Efl.IFile.Unload"/> on an object which is not currently loaded will have no effect.
+    /// (Since EFL 1.22)</summary>
+    virtual public void Unload() {
+         Efl.IFileConcrete.NativeMethods.efl_file_unload_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+         }
+    /// <summary>Save the given image object&apos;s contents to an (image) file.
+    /// The extension suffix on <c>file</c> will determine which saver module Evas is to use when saving, thus the final file&apos;s format. If the file supports multiple data stored in it (Eet ones), you can specify the key to be used as the index of the image in it.
+    /// 
+    /// You can specify some flags when saving the image.  Currently acceptable flags are <c>quality</c> and <c>compress</c>. Eg.: &quot;quality=100 compress=9&quot;.
+    /// (Since EFL 1.22)</summary>
+    /// <param name="file">The filename to be used to save the image (extension obligatory).</param>
+    /// <param name="key">The image key in the file (if an Eet one), or <c>null</c>, otherwise.</param>
+    /// <param name="info">The flags to be used (<c>null</c> for defaults).</param>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    virtual public bool Save(System.String file, System.String key, ref Efl.FileSaveInfo info) {
+                         Efl.FileSaveInfo.NativeStruct _in_info = info;
+                                                        var _ret_var = Efl.IFileSaveConcrete.NativeMethods.efl_file_save_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),file, key, ref _in_info);
+        Eina.Error.RaiseIfUnhandledException();
+                                                info = _in_info;
+        return _ret_var;
+ }
+    /// <summary>Check if an object can be animated (has multiple frames).
+    /// This will be <c>true</c> for animated object for instance but <c>false</c> for a single frame object.</summary>
+    /// <returns><c>true</c> if the object is animated</returns>
+    virtual public bool GetAnimated() {
+         var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_animated_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Index of the current frame of an animated object.
+    /// Ranges from 1 to <see cref="Efl.Gfx.IFrameController.GetFrameCount"/>. Valid only if <see cref="Efl.Gfx.IFrameController.GetAnimated"/>.</summary>
+    /// <returns>The index of current frame.</returns>
+    virtual public int GetFrame() {
+         var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_frame_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Set the frame to current frame of an animated object.</summary>
+    /// <param name="frame_index">The index of current frame.</param>
+    /// <returns>Returns <c>true</c> if the frame index is valid.</returns>
+    virtual public bool SetFrame(int frame_index) {
+                                 var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_frame_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),frame_index);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Get the total number of frames of the object, if animated.
+    /// Returns -1 if not animated.</summary>
+    /// <returns>The number of frames in the animated object.</returns>
+    virtual public int GetFrameCount() {
+         var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_frame_count_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Get the kind of looping the animated object does.
+    /// This returns the kind of looping the animated object wants to do.
+    /// 
+    /// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>, you should display frames in a sequence like: 1-&gt;2-&gt;3-&gt;1-&gt;2-&gt;3-&gt;1...
+    /// 
+    /// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Pingpong"/>, it is better to display frames in a sequence like: 1-&gt;2-&gt;3-&gt;2-&gt;1-&gt;2-&gt;3-&gt;1...
+    /// 
+    /// The default type is <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>.</summary>
+    /// <returns>Loop type of the animated object.</returns>
+    virtual public Efl.Gfx.FrameControllerLoopHint GetLoopType() {
+         var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_loop_type_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Get the number times the animation of the object loops.
+    /// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame).
+    /// 
+    /// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops).</summary>
+    /// <returns>The number of loop of an animated object.</returns>
+    virtual public int GetLoopCount() {
+         var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_loop_count_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Get the duration of a sequence of frames.
+    /// This returns total duration in seconds that the specified sequence of frames should take.
+    /// 
+    /// If <c>start_frame</c> is 1 and <c>frame_num</c> is 0, this returns the duration of frame 1. If <c>start_frame</c> is 1 and <c>frame_num</c> is 1, this returns the total duration of frame 1 + frame 2.</summary>
+    /// <param name="start_frame">The first frame, rangers from 1 to <see cref="Efl.Gfx.IFrameController.GetFrameCount"/>.</param>
+    /// <param name="frame_num">Number of frames in the sequence, starts from 0.</param>
+    /// <returns>Duration in seconds</returns>
+    virtual public double GetFrameDuration(int start_frame, int frame_num) {
+                                                         var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_frame_duration_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),start_frame, frame_num);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>Control how the viewbox is mapped to the vg canvas&apos;s viewport.</summary>
+    /// <value>Fill mode type</value>
+    public Efl.Canvas.Vg.FillMode FillMode {
+        get { return GetFillMode(); }
+        set { SetFillMode(value); }
+    }
+    /// <summary>Get the current viewbox from the  evas_object_vg</summary>
+    /// <value>viewbox for the vg canvas</value>
+    public Eina.Rect Viewbox {
+        get { return GetViewbox(); }
+        set { SetViewbox(value); }
+    }
+    /// <summary>Get the root node of the evas_object_vg.</summary>
+    /// <value>Root node of the VG canvas.</value>
+    public Efl.Canvas.Vg.Node RootNode {
+        get { return GetRootNode(); }
+        set { SetRootNode(value); }
+    }
+    /// <summary>Get the default vector size that specified from vector resource.
+    /// (Since EFL 1.22)</summary>
+    public Eina.Size2D DefaultSize {
+        get { return GetDefaultSize(); }
+    }
+    /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    public Eina.File Mmap {
+        get { return GetMmap(); }
+        set { SetMmap(value); }
+    }
+    /// <summary>Retrieve the file path from where an object is to fetch the data.
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
+    public System.String File {
+        get { return GetFile(); }
+        set { SetFile(value); }
+    }
+    /// <summary>Get the previously-set key which corresponds to the target data within a file.
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    public System.String Key {
+        get { return GetKey(); }
+        set { SetKey(value); }
+    }
+    /// <summary>Get the load state of the object.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    public bool Loaded {
+        get { return GetLoaded(); }
+    }
+    /// <summary>Check if an object can be animated (has multiple frames).
+    /// This will be <c>true</c> for animated object for instance but <c>false</c> for a single frame object.</summary>
+    /// <value><c>true</c> if the object is animated</value>
+    public bool Animated {
+        get { return GetAnimated(); }
+    }
+    /// <summary>Index of the current frame of an animated object.
+    /// Ranges from 1 to <see cref="Efl.Gfx.IFrameController.GetFrameCount"/>. Valid only if <see cref="Efl.Gfx.IFrameController.GetAnimated"/>.</summary>
+    /// <value>The index of current frame.</value>
+    public int Frame {
+        get { return GetFrame(); }
+        set { SetFrame(value); }
+    }
+    /// <summary>Get the total number of frames of the object, if animated.
+    /// Returns -1 if not animated.</summary>
+    /// <value>The number of frames in the animated object.</value>
+    public int FrameCount {
+        get { return GetFrameCount(); }
+    }
+    /// <summary>Get the kind of looping the animated object does.
+    /// This returns the kind of looping the animated object wants to do.
+    /// 
+    /// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>, you should display frames in a sequence like: 1-&gt;2-&gt;3-&gt;1-&gt;2-&gt;3-&gt;1...
+    /// 
+    /// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Pingpong"/>, it is better to display frames in a sequence like: 1-&gt;2-&gt;3-&gt;2-&gt;1-&gt;2-&gt;3-&gt;1...
+    /// 
+    /// The default type is <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>.</summary>
+    /// <value>Loop type of the animated object.</value>
+    public Efl.Gfx.FrameControllerLoopHint LoopType {
+        get { return GetLoopType(); }
+    }
+    /// <summary>Get the number times the animation of the object loops.
+    /// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame).
+    /// 
+    /// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops).</summary>
+    /// <value>The number of loop of an animated object.</value>
+    public int LoopCount {
+        get { return GetLoopCount(); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Canvas.Vg.Object.efl_canvas_vg_object_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Canvas.Object.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Evas);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_canvas_vg_object_fill_mode_get_static_delegate == null)
+            {
+                efl_canvas_vg_object_fill_mode_get_static_delegate = new efl_canvas_vg_object_fill_mode_get_delegate(fill_mode_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFillMode") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_vg_object_fill_mode_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_vg_object_fill_mode_get_static_delegate) });
+            }
+
+            if (efl_canvas_vg_object_fill_mode_set_static_delegate == null)
+            {
+                efl_canvas_vg_object_fill_mode_set_static_delegate = new efl_canvas_vg_object_fill_mode_set_delegate(fill_mode_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFillMode") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_vg_object_fill_mode_set"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_vg_object_fill_mode_set_static_delegate) });
+            }
+
+            if (efl_canvas_vg_object_viewbox_get_static_delegate == null)
+            {
+                efl_canvas_vg_object_viewbox_get_static_delegate = new efl_canvas_vg_object_viewbox_get_delegate(viewbox_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetViewbox") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_vg_object_viewbox_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_vg_object_viewbox_get_static_delegate) });
+            }
+
+            if (efl_canvas_vg_object_viewbox_set_static_delegate == null)
+            {
+                efl_canvas_vg_object_viewbox_set_static_delegate = new efl_canvas_vg_object_viewbox_set_delegate(viewbox_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetViewbox") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_vg_object_viewbox_set"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_vg_object_viewbox_set_static_delegate) });
+            }
+
+            if (efl_canvas_vg_object_viewbox_align_get_static_delegate == null)
+            {
+                efl_canvas_vg_object_viewbox_align_get_static_delegate = new efl_canvas_vg_object_viewbox_align_get_delegate(viewbox_align_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetViewboxAlign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_vg_object_viewbox_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_vg_object_viewbox_align_get_static_delegate) });
+            }
+
+            if (efl_canvas_vg_object_viewbox_align_set_static_delegate == null)
+            {
+                efl_canvas_vg_object_viewbox_align_set_static_delegate = new efl_canvas_vg_object_viewbox_align_set_delegate(viewbox_align_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetViewboxAlign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_vg_object_viewbox_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_vg_object_viewbox_align_set_static_delegate) });
+            }
+
+            if (efl_canvas_vg_object_root_node_get_static_delegate == null)
+            {
+                efl_canvas_vg_object_root_node_get_static_delegate = new efl_canvas_vg_object_root_node_get_delegate(root_node_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetRootNode") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_vg_object_root_node_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_vg_object_root_node_get_static_delegate) });
+            }
+
+            if (efl_canvas_vg_object_root_node_set_static_delegate == null)
+            {
+                efl_canvas_vg_object_root_node_set_static_delegate = new efl_canvas_vg_object_root_node_set_delegate(root_node_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetRootNode") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_vg_object_root_node_set"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_vg_object_root_node_set_static_delegate) });
+            }
+
+            if (efl_canvas_vg_object_default_size_get_static_delegate == null)
+            {
+                efl_canvas_vg_object_default_size_get_static_delegate = new efl_canvas_vg_object_default_size_get_delegate(default_size_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetDefaultSize") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_canvas_vg_object_default_size_get"), func = Marshal.GetFunctionPointerForDelegate(efl_canvas_vg_object_default_size_get_static_delegate) });
+            }
+
+            if (efl_file_mmap_get_static_delegate == null)
+            {
+                efl_file_mmap_get_static_delegate = new efl_file_mmap_get_delegate(mmap_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetMmap") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_mmap_get"), func = Marshal.GetFunctionPointerForDelegate(efl_file_mmap_get_static_delegate) });
+            }
+
+            if (efl_file_mmap_set_static_delegate == null)
+            {
+                efl_file_mmap_set_static_delegate = new efl_file_mmap_set_delegate(mmap_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetMmap") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_mmap_set"), func = Marshal.GetFunctionPointerForDelegate(efl_file_mmap_set_static_delegate) });
+            }
+
+            if (efl_file_get_static_delegate == null)
+            {
+                efl_file_get_static_delegate = new efl_file_get_delegate(file_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFile") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_get"), func = Marshal.GetFunctionPointerForDelegate(efl_file_get_static_delegate) });
+            }
+
+            if (efl_file_set_static_delegate == null)
+            {
+                efl_file_set_static_delegate = new efl_file_set_delegate(file_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFile") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_set"), func = Marshal.GetFunctionPointerForDelegate(efl_file_set_static_delegate) });
+            }
+
+            if (efl_file_key_get_static_delegate == null)
+            {
+                efl_file_key_get_static_delegate = new efl_file_key_get_delegate(key_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetKey") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_key_get"), func = Marshal.GetFunctionPointerForDelegate(efl_file_key_get_static_delegate) });
+            }
+
+            if (efl_file_key_set_static_delegate == null)
+            {
+                efl_file_key_set_static_delegate = new efl_file_key_set_delegate(key_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetKey") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_key_set"), func = Marshal.GetFunctionPointerForDelegate(efl_file_key_set_static_delegate) });
+            }
+
+            if (efl_file_loaded_get_static_delegate == null)
+            {
+                efl_file_loaded_get_static_delegate = new efl_file_loaded_get_delegate(loaded_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetLoaded") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_loaded_get"), func = Marshal.GetFunctionPointerForDelegate(efl_file_loaded_get_static_delegate) });
+            }
+
+            if (efl_file_load_static_delegate == null)
+            {
+                efl_file_load_static_delegate = new efl_file_load_delegate(load);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Load") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_load"), func = Marshal.GetFunctionPointerForDelegate(efl_file_load_static_delegate) });
+            }
+
+            if (efl_file_unload_static_delegate == null)
+            {
+                efl_file_unload_static_delegate = new efl_file_unload_delegate(unload);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Unload") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_unload"), func = Marshal.GetFunctionPointerForDelegate(efl_file_unload_static_delegate) });
+            }
+
+            if (efl_file_save_static_delegate == null)
+            {
+                efl_file_save_static_delegate = new efl_file_save_delegate(save);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Save") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_save"), func = Marshal.GetFunctionPointerForDelegate(efl_file_save_static_delegate) });
+            }
+
+            if (efl_gfx_frame_controller_animated_get_static_delegate == null)
+            {
+                efl_gfx_frame_controller_animated_get_static_delegate = new efl_gfx_frame_controller_animated_get_delegate(animated_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetAnimated") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_animated_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_animated_get_static_delegate) });
+            }
+
+            if (efl_gfx_frame_controller_frame_get_static_delegate == null)
+            {
+                efl_gfx_frame_controller_frame_get_static_delegate = new efl_gfx_frame_controller_frame_get_delegate(frame_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFrame") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_frame_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_frame_get_static_delegate) });
+            }
+
+            if (efl_gfx_frame_controller_frame_set_static_delegate == null)
+            {
+                efl_gfx_frame_controller_frame_set_static_delegate = new efl_gfx_frame_controller_frame_set_delegate(frame_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFrame") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_frame_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_frame_set_static_delegate) });
+            }
+
+            if (efl_gfx_frame_controller_frame_count_get_static_delegate == null)
+            {
+                efl_gfx_frame_controller_frame_count_get_static_delegate = new efl_gfx_frame_controller_frame_count_get_delegate(frame_count_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFrameCount") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_frame_count_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_frame_count_get_static_delegate) });
+            }
+
+            if (efl_gfx_frame_controller_loop_type_get_static_delegate == null)
+            {
+                efl_gfx_frame_controller_loop_type_get_static_delegate = new efl_gfx_frame_controller_loop_type_get_delegate(loop_type_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetLoopType") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_loop_type_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_loop_type_get_static_delegate) });
+            }
+
+            if (efl_gfx_frame_controller_loop_count_get_static_delegate == null)
+            {
+                efl_gfx_frame_controller_loop_count_get_static_delegate = new efl_gfx_frame_controller_loop_count_get_delegate(loop_count_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetLoopCount") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_loop_count_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_loop_count_get_static_delegate) });
+            }
+
+            if (efl_gfx_frame_controller_frame_duration_get_static_delegate == null)
+            {
+                efl_gfx_frame_controller_frame_duration_get_static_delegate = new efl_gfx_frame_controller_frame_duration_get_delegate(frame_duration_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetFrameDuration") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_frame_duration_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_frame_duration_get_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Canvas.Vg.Object.efl_canvas_vg_object_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate Efl.Canvas.Vg.FillMode efl_canvas_vg_object_fill_mode_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.Canvas.Vg.FillMode efl_canvas_vg_object_fill_mode_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_vg_object_fill_mode_get_api_delegate> efl_canvas_vg_object_fill_mode_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_vg_object_fill_mode_get_api_delegate>(Module, "efl_canvas_vg_object_fill_mode_get");
+
+        private static Efl.Canvas.Vg.FillMode fill_mode_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_canvas_vg_object_fill_mode_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Canvas.Vg.FillMode _ret_var = default(Efl.Canvas.Vg.FillMode);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetFillMode();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_vg_object_fill_mode_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_canvas_vg_object_fill_mode_get_delegate efl_canvas_vg_object_fill_mode_get_static_delegate;
+
+        
+        private delegate void efl_canvas_vg_object_fill_mode_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Canvas.Vg.FillMode fill_mode);
+
+        
+        public delegate void efl_canvas_vg_object_fill_mode_set_api_delegate(System.IntPtr obj,  Efl.Canvas.Vg.FillMode fill_mode);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_vg_object_fill_mode_set_api_delegate> efl_canvas_vg_object_fill_mode_set_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_vg_object_fill_mode_set_api_delegate>(Module, "efl_canvas_vg_object_fill_mode_set");
+
+        private static void fill_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Vg.FillMode fill_mode)
+        {
+            Eina.Log.Debug("function efl_canvas_vg_object_fill_mode_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Object)ws.Target).SetFillMode(fill_mode);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_canvas_vg_object_fill_mode_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), fill_mode);
+            }
+        }
+
+        private static efl_canvas_vg_object_fill_mode_set_delegate efl_canvas_vg_object_fill_mode_set_static_delegate;
+
+        
+        private delegate Eina.Rect.NativeStruct efl_canvas_vg_object_viewbox_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Eina.Rect.NativeStruct efl_canvas_vg_object_viewbox_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_vg_object_viewbox_get_api_delegate> efl_canvas_vg_object_viewbox_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_vg_object_viewbox_get_api_delegate>(Module, "efl_canvas_vg_object_viewbox_get");
+
+        private static Eina.Rect.NativeStruct viewbox_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_canvas_vg_object_viewbox_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Eina.Rect _ret_var = default(Eina.Rect);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetViewbox();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_vg_object_viewbox_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_canvas_vg_object_viewbox_get_delegate efl_canvas_vg_object_viewbox_get_static_delegate;
+
+        
+        private delegate void efl_canvas_vg_object_viewbox_set_delegate(System.IntPtr obj, System.IntPtr pd,  Eina.Rect.NativeStruct viewbox);
+
+        
+        public delegate void efl_canvas_vg_object_viewbox_set_api_delegate(System.IntPtr obj,  Eina.Rect.NativeStruct viewbox);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_vg_object_viewbox_set_api_delegate> efl_canvas_vg_object_viewbox_set_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_vg_object_viewbox_set_api_delegate>(Module, "efl_canvas_vg_object_viewbox_set");
+
+        private static void viewbox_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewbox)
+        {
+            Eina.Log.Debug("function efl_canvas_vg_object_viewbox_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+        Eina.Rect _in_viewbox = viewbox;
+                            
+                try
+                {
+                    ((Object)ws.Target).SetViewbox(_in_viewbox);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_canvas_vg_object_viewbox_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), viewbox);
+            }
+        }
+
+        private static efl_canvas_vg_object_viewbox_set_delegate efl_canvas_vg_object_viewbox_set_static_delegate;
+
+        
+        private delegate void efl_canvas_vg_object_viewbox_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_x,  out double align_y);
+
+        
+        public delegate void efl_canvas_vg_object_viewbox_align_get_api_delegate(System.IntPtr obj,  out double align_x,  out double align_y);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_vg_object_viewbox_align_get_api_delegate> efl_canvas_vg_object_viewbox_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_vg_object_viewbox_align_get_api_delegate>(Module, "efl_canvas_vg_object_viewbox_align_get");
+
+        private static void viewbox_align_get(System.IntPtr obj, System.IntPtr pd, out double align_x, out double align_y)
+        {
+            Eina.Log.Debug("function efl_canvas_vg_object_viewbox_align_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        align_x = default(double);        align_y = default(double);                            
+                try
+                {
+                    ((Object)ws.Target).GetViewboxAlign(out align_x, out align_y);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_canvas_vg_object_viewbox_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_x, out align_y);
+            }
+        }
+
+        private static efl_canvas_vg_object_viewbox_align_get_delegate efl_canvas_vg_object_viewbox_align_get_static_delegate;
+
+        
+        private delegate void efl_canvas_vg_object_viewbox_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_x,  double align_y);
+
+        
+        public delegate void efl_canvas_vg_object_viewbox_align_set_api_delegate(System.IntPtr obj,  double align_x,  double align_y);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_vg_object_viewbox_align_set_api_delegate> efl_canvas_vg_object_viewbox_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_vg_object_viewbox_align_set_api_delegate>(Module, "efl_canvas_vg_object_viewbox_align_set");
+
+        private static void viewbox_align_set(System.IntPtr obj, System.IntPtr pd, double align_x, double align_y)
+        {
+            Eina.Log.Debug("function efl_canvas_vg_object_viewbox_align_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Object)ws.Target).SetViewboxAlign(align_x, align_y);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_canvas_vg_object_viewbox_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_x, align_y);
+            }
+        }
+
+        private static efl_canvas_vg_object_viewbox_align_set_delegate efl_canvas_vg_object_viewbox_align_set_static_delegate;
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        private delegate Efl.Canvas.Vg.Node efl_canvas_vg_object_root_node_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        public delegate Efl.Canvas.Vg.Node efl_canvas_vg_object_root_node_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_vg_object_root_node_get_api_delegate> efl_canvas_vg_object_root_node_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_vg_object_root_node_get_api_delegate>(Module, "efl_canvas_vg_object_root_node_get");
+
+        private static Efl.Canvas.Vg.Node root_node_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_canvas_vg_object_root_node_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Canvas.Vg.Node _ret_var = default(Efl.Canvas.Vg.Node);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetRootNode();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_vg_object_root_node_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_canvas_vg_object_root_node_get_delegate efl_canvas_vg_object_root_node_get_static_delegate;
+
+        
+        private delegate void efl_canvas_vg_object_root_node_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Vg.Node root);
+
+        
+        public delegate void efl_canvas_vg_object_root_node_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Vg.Node root);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_vg_object_root_node_set_api_delegate> efl_canvas_vg_object_root_node_set_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_vg_object_root_node_set_api_delegate>(Module, "efl_canvas_vg_object_root_node_set");
+
+        private static void root_node_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Vg.Node root)
+        {
+            Eina.Log.Debug("function efl_canvas_vg_object_root_node_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Object)ws.Target).SetRootNode(root);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_canvas_vg_object_root_node_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), root);
+            }
+        }
+
+        private static efl_canvas_vg_object_root_node_set_delegate efl_canvas_vg_object_root_node_set_static_delegate;
+
+        
+        private delegate Eina.Size2D.NativeStruct efl_canvas_vg_object_default_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Eina.Size2D.NativeStruct efl_canvas_vg_object_default_size_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_canvas_vg_object_default_size_get_api_delegate> efl_canvas_vg_object_default_size_get_ptr = new Efl.Eo.FunctionWrapper<efl_canvas_vg_object_default_size_get_api_delegate>(Module, "efl_canvas_vg_object_default_size_get");
+
+        private static Eina.Size2D.NativeStruct default_size_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_canvas_vg_object_default_size_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Eina.Size2D _ret_var = default(Eina.Size2D);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetDefaultSize();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_canvas_vg_object_default_size_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_canvas_vg_object_default_size_get_delegate efl_canvas_vg_object_default_size_get_static_delegate;
+
+        
+        private delegate Eina.File efl_file_mmap_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Eina.File efl_file_mmap_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_file_mmap_get_api_delegate> efl_file_mmap_get_ptr = new Efl.Eo.FunctionWrapper<efl_file_mmap_get_api_delegate>(Module, "efl_file_mmap_get");
+
+        private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_file_mmap_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Eina.File _ret_var = default(Eina.File);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetMmap();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_file_mmap_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_file_mmap_get_delegate efl_file_mmap_get_static_delegate;
+
+        
+        private delegate Eina.Error efl_file_mmap_set_delegate(System.IntPtr obj, System.IntPtr pd,  Eina.File f);
+
+        
+        public delegate Eina.Error efl_file_mmap_set_api_delegate(System.IntPtr obj,  Eina.File f);
+
+        public static Efl.Eo.FunctionWrapper<efl_file_mmap_set_api_delegate> efl_file_mmap_set_ptr = new Efl.Eo.FunctionWrapper<efl_file_mmap_set_api_delegate>(Module, "efl_file_mmap_set");
+
+        private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
+        {
+            Eina.Log.Debug("function efl_file_mmap_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    Eina.Error _ret_var = default(Eina.Error);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).SetMmap(f);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_file_mmap_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), f);
+            }
+        }
+
+        private static efl_file_mmap_set_delegate efl_file_mmap_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_file_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_file_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_file_get_api_delegate> efl_file_get_ptr = new Efl.Eo.FunctionWrapper<efl_file_get_api_delegate>(Module, "efl_file_get");
+
+        private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_file_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetFile();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_file_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_file_get_delegate efl_file_get_static_delegate;
+
+        
+        private delegate Eina.Error efl_file_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String file);
+
+        
+        public delegate Eina.Error efl_file_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String file);
+
+        public static Efl.Eo.FunctionWrapper<efl_file_set_api_delegate> efl_file_set_ptr = new Efl.Eo.FunctionWrapper<efl_file_set_api_delegate>(Module, "efl_file_set");
+
+        private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
+        {
+            Eina.Log.Debug("function efl_file_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    Eina.Error _ret_var = default(Eina.Error);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).SetFile(file);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_file_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), file);
+            }
+        }
+
+        private static efl_file_set_delegate efl_file_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_file_key_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_file_key_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_file_key_get_api_delegate> efl_file_key_get_ptr = new Efl.Eo.FunctionWrapper<efl_file_key_get_api_delegate>(Module, "efl_file_key_get");
+
+        private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_file_key_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetKey();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_file_key_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_file_key_get_delegate efl_file_key_get_static_delegate;
+
+        
+        private delegate void efl_file_key_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key);
+
+        
+        public delegate void efl_file_key_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key);
+
+        public static Efl.Eo.FunctionWrapper<efl_file_key_set_api_delegate> efl_file_key_set_ptr = new Efl.Eo.FunctionWrapper<efl_file_key_set_api_delegate>(Module, "efl_file_key_set");
+
+        private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
+        {
+            Eina.Log.Debug("function efl_file_key_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Object)ws.Target).SetKey(key);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_file_key_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), key);
+            }
+        }
+
+        private static efl_file_key_set_delegate efl_file_key_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_file_loaded_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_file_loaded_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_file_loaded_get_api_delegate> efl_file_loaded_get_ptr = new Efl.Eo.FunctionWrapper<efl_file_loaded_get_api_delegate>(Module, "efl_file_loaded_get");
+
+        private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_file_loaded_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetLoaded();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_file_loaded_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_file_loaded_get_delegate efl_file_loaded_get_static_delegate;
+
+        
+        private delegate Eina.Error efl_file_load_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Eina.Error efl_file_load_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_file_load_api_delegate> efl_file_load_ptr = new Efl.Eo.FunctionWrapper<efl_file_load_api_delegate>(Module, "efl_file_load");
+
+        private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_file_load was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Eina.Error _ret_var = default(Eina.Error);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).Load();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_file_load_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_file_load_delegate efl_file_load_static_delegate;
+
+        
+        private delegate void efl_file_unload_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate void efl_file_unload_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_file_unload_api_delegate> efl_file_unload_ptr = new Efl.Eo.FunctionWrapper<efl_file_unload_api_delegate>(Module, "efl_file_unload");
+
+        private static void unload(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_file_unload was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            
+                try
+                {
+                    ((Object)ws.Target).Unload();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        
+            }
+            else
+            {
+                efl_file_unload_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_file_unload_delegate efl_file_unload_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_file_save_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String file, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key,  ref Efl.FileSaveInfo.NativeStruct info);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_file_save_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String file, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key,  ref Efl.FileSaveInfo.NativeStruct info);
+
+        public static Efl.Eo.FunctionWrapper<efl_file_save_api_delegate> efl_file_save_ptr = new Efl.Eo.FunctionWrapper<efl_file_save_api_delegate>(Module, "efl_file_save");
+
+        private static bool save(System.IntPtr obj, System.IntPtr pd, System.String file, System.String key, ref Efl.FileSaveInfo.NativeStruct info)
+        {
+            Eina.Log.Debug("function efl_file_save was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        Efl.FileSaveInfo _in_info = info;
+                                                            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).Save(file, key, ref _in_info);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                info = _in_info;
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_file_save_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), file, key, ref info);
+            }
+        }
+
+        private static efl_file_save_delegate efl_file_save_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_gfx_frame_controller_animated_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_gfx_frame_controller_animated_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_animated_get_api_delegate> efl_gfx_frame_controller_animated_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_animated_get_api_delegate>(Module, "efl_gfx_frame_controller_animated_get");
+
+        private static bool animated_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gfx_frame_controller_animated_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetAnimated();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_frame_controller_animated_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gfx_frame_controller_animated_get_delegate efl_gfx_frame_controller_animated_get_static_delegate;
+
+        
+        private delegate int efl_gfx_frame_controller_frame_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate int efl_gfx_frame_controller_frame_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_frame_get_api_delegate> efl_gfx_frame_controller_frame_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_frame_get_api_delegate>(Module, "efl_gfx_frame_controller_frame_get");
+
+        private static int frame_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gfx_frame_controller_frame_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetFrame();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_frame_controller_frame_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gfx_frame_controller_frame_get_delegate efl_gfx_frame_controller_frame_get_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_gfx_frame_controller_frame_set_delegate(System.IntPtr obj, System.IntPtr pd,  int frame_index);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_gfx_frame_controller_frame_set_api_delegate(System.IntPtr obj,  int frame_index);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_frame_set_api_delegate> efl_gfx_frame_controller_frame_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_frame_set_api_delegate>(Module, "efl_gfx_frame_controller_frame_set");
+
+        private static bool frame_set(System.IntPtr obj, System.IntPtr pd, int frame_index)
+        {
+            Eina.Log.Debug("function efl_gfx_frame_controller_frame_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).SetFrame(frame_index);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_frame_controller_frame_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), frame_index);
+            }
+        }
+
+        private static efl_gfx_frame_controller_frame_set_delegate efl_gfx_frame_controller_frame_set_static_delegate;
+
+        
+        private delegate int efl_gfx_frame_controller_frame_count_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate int efl_gfx_frame_controller_frame_count_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_frame_count_get_api_delegate> efl_gfx_frame_controller_frame_count_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_frame_count_get_api_delegate>(Module, "efl_gfx_frame_controller_frame_count_get");
+
+        private static int frame_count_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gfx_frame_controller_frame_count_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetFrameCount();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_frame_controller_frame_count_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gfx_frame_controller_frame_count_get_delegate efl_gfx_frame_controller_frame_count_get_static_delegate;
+
+        
+        private delegate Efl.Gfx.FrameControllerLoopHint efl_gfx_frame_controller_loop_type_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.Gfx.FrameControllerLoopHint efl_gfx_frame_controller_loop_type_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_loop_type_get_api_delegate> efl_gfx_frame_controller_loop_type_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_loop_type_get_api_delegate>(Module, "efl_gfx_frame_controller_loop_type_get");
+
+        private static Efl.Gfx.FrameControllerLoopHint loop_type_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gfx_frame_controller_loop_type_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Gfx.FrameControllerLoopHint _ret_var = default(Efl.Gfx.FrameControllerLoopHint);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetLoopType();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_frame_controller_loop_type_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gfx_frame_controller_loop_type_get_delegate efl_gfx_frame_controller_loop_type_get_static_delegate;
+
+        
+        private delegate int efl_gfx_frame_controller_loop_count_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate int efl_gfx_frame_controller_loop_count_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_loop_count_get_api_delegate> efl_gfx_frame_controller_loop_count_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_loop_count_get_api_delegate>(Module, "efl_gfx_frame_controller_loop_count_get");
+
+        private static int loop_count_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gfx_frame_controller_loop_count_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetLoopCount();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_frame_controller_loop_count_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gfx_frame_controller_loop_count_get_delegate efl_gfx_frame_controller_loop_count_get_static_delegate;
+
+        
+        private delegate double efl_gfx_frame_controller_frame_duration_get_delegate(System.IntPtr obj, System.IntPtr pd,  int start_frame,  int frame_num);
+
+        
+        public delegate double efl_gfx_frame_controller_frame_duration_get_api_delegate(System.IntPtr obj,  int start_frame,  int frame_num);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_frame_duration_get_api_delegate> efl_gfx_frame_controller_frame_duration_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_frame_controller_frame_duration_get_api_delegate>(Module, "efl_gfx_frame_controller_frame_duration_get");
+
+        private static double frame_duration_get(System.IntPtr obj, System.IntPtr pd, int start_frame, int frame_num)
+        {
+            Eina.Log.Debug("function efl_gfx_frame_controller_frame_duration_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            double _ret_var = default(double);
+                try
+                {
+                    _ret_var = ((Object)ws.Target).GetFrameDuration(start_frame, frame_num);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_frame_controller_frame_duration_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), start_frame, frame_num);
+            }
+        }
+
+        private static efl_gfx_frame_controller_frame_duration_get_delegate efl_gfx_frame_controller_frame_duration_get_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
+}
+
+namespace Efl {
+
+namespace Canvas {
+
+namespace Vg {
+
+/// <summary>Enumeration that defines how viewbox will be filled int the vg canvs&apos;s viewport. default Fill_Mode is <c>none</c></summary>
+public enum FillMode
+{
+/// <summary>Don&apos;t scale the viewbox. Placed it inside viewport taking align property into account</summary>
+None = 0,
+/// <summary>Scale the viewbox so that it matches the canvas viewport. Aaspect ratio might be changed.</summary>
+Stretch = 1,
+/// <summary>Scale the viewbox so that it fits inside canvas viewport while maintaining the aspect ratio. At least one of the dimensions of the viewbox should be equal to the corresponding dimension of the viewport.</summary>
+Meet = 2,
+/// <summary>Scale the viewbox so that it covers the entire canvas viewport while maintaining the aspect ratio. At least one of the dimensions of the viewbox should be equal to the corresponding dimension of the viewport.</summary>
+Slice = 3,
+}
+
+}
+
+}
+
+}
+
index c2d9af0..503cf65 100644 (file)
@@ -13,7 +13,7 @@ namespace Vg {
 
 /// <summary>Efl vector graphics shape class</summary>
 [Efl.Canvas.Vg.Shape.NativeMethods]
-public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
+public class Shape : Efl.Canvas.Vg.Node, Efl.Gfx.IShape
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -46,7 +46,7 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Shape(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Shape"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -57,33 +57,6 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Fill of the shape object</summary>
     /// <returns>Fill object</returns>
     virtual public Efl.Canvas.Vg.Node GetFill() {
@@ -244,57 +217,57 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Fill of the shape object</summary>
-/// <value>Fill object</value>
+    /// <value>Fill object</value>
     public Efl.Canvas.Vg.Node Fill {
         get { return GetFill(); }
         set { SetFill(value); }
     }
     /// <summary>Stroke fill of the shape object</summary>
-/// <value>Stroke fill object</value>
+    /// <value>Stroke fill object</value>
     public Efl.Canvas.Vg.Node StrokeFill {
         get { return GetStrokeFill(); }
         set { SetStrokeFill(value); }
     }
     /// <summary>Stroke marker of the shape object</summary>
-/// <value>Stroke marker object</value>
+    /// <value>Stroke marker object</value>
     public Efl.Canvas.Vg.Node StrokeMarker {
         get { return GetStrokeMarker(); }
         set { SetStrokeMarker(value); }
     }
     /// <summary>The stroke scale to be used for stroking the path. Will be used along with stroke width property.</summary>
-/// <value>Stroke scale value</value>
+    /// <value>Stroke scale value</value>
     public double StrokeScale {
         get { return GetStrokeScale(); }
         set { SetStrokeScale(value); }
     }
     /// <summary>The stroke width to be used for stroking the path.</summary>
-/// <value>Stroke width to be used</value>
+    /// <value>Stroke width to be used</value>
     public double StrokeWidth {
         get { return GetStrokeWidth(); }
         set { SetStrokeWidth(value); }
     }
     /// <summary>Not implemented</summary>
-/// <value>Centered stroke location</value>
+    /// <value>Centered stroke location</value>
     public double StrokeLocation {
         get { return GetStrokeLocation(); }
         set { SetStrokeLocation(value); }
     }
     /// <summary>The cap style to be used for stroking the path. The cap will be used for capping the end point of a open subpath.
-/// See also <see cref="Efl.Gfx.Cap"/>.</summary>
-/// <value>Cap style to use, default is <see cref="Efl.Gfx.Cap.Butt"/></value>
+    /// See also <see cref="Efl.Gfx.Cap"/>.</summary>
+    /// <value>Cap style to use, default is <see cref="Efl.Gfx.Cap.Butt"/></value>
     public Efl.Gfx.Cap StrokeCap {
         get { return GetStrokeCap(); }
         set { SetStrokeCap(value); }
     }
     /// <summary>The join style to be used for stroking the path. The join style will be used for joining the two line segment while stroking the path.
-/// See also <see cref="Efl.Gfx.Join"/>.</summary>
-/// <value>Join style to use, default is <see cref="Efl.Gfx.Join.Miter"/></value>
+    /// See also <see cref="Efl.Gfx.Join"/>.</summary>
+    /// <value>Join style to use, default is <see cref="Efl.Gfx.Join.Miter"/></value>
     public Efl.Gfx.Join StrokeJoin {
         get { return GetStrokeJoin(); }
         set { SetStrokeJoin(value); }
     }
     /// <summary>The fill rule of the given shape object. <see cref="Efl.Gfx.FillRule.Winding"/> or <see cref="Efl.Gfx.FillRule.OddEven"/>.</summary>
-/// <value>The current fill rule of the shape object. One of <see cref="Efl.Gfx.FillRule.Winding"/> or <see cref="Efl.Gfx.FillRule.OddEven"/></value>
+    /// <value>The current fill rule of the shape object. One of <see cref="Efl.Gfx.FillRule.Winding"/> or <see cref="Efl.Gfx.FillRule.OddEven"/></value>
     public Efl.Gfx.FillRule FillRule {
         get { return GetFillRule(); }
         set { SetFillRule(value); }
@@ -545,7 +518,7 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
             return Efl.Canvas.Vg.Shape.efl_canvas_vg_shape_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Canvas.Vg.Node efl_canvas_vg_shape_fill_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -558,13 +531,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static Efl.Canvas.Vg.Node fill_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_vg_shape_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Vg.Node _ret_var = default(Efl.Canvas.Vg.Node);
                 try
                 {
-                    _ret_var = ((Shape)wrapper).GetFill();
+                    _ret_var = ((Shape)ws.Target).GetFill();
                 }
                 catch (Exception e)
                 {
@@ -594,13 +567,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void fill_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Vg.Node f)
         {
             Eina.Log.Debug("function efl_canvas_vg_shape_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Shape)wrapper).SetFill(f);
+                    ((Shape)ws.Target).SetFill(f);
                 }
                 catch (Exception e)
                 {
@@ -629,13 +602,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static Efl.Canvas.Vg.Node stroke_fill_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_vg_shape_stroke_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Vg.Node _ret_var = default(Efl.Canvas.Vg.Node);
                 try
                 {
-                    _ret_var = ((Shape)wrapper).GetStrokeFill();
+                    _ret_var = ((Shape)ws.Target).GetStrokeFill();
                 }
                 catch (Exception e)
                 {
@@ -665,13 +638,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_fill_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Vg.Node f)
         {
             Eina.Log.Debug("function efl_canvas_vg_shape_stroke_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Shape)wrapper).SetStrokeFill(f);
+                    ((Shape)ws.Target).SetStrokeFill(f);
                 }
                 catch (Exception e)
                 {
@@ -700,13 +673,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static Efl.Canvas.Vg.Node stroke_marker_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_vg_shape_stroke_marker_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Vg.Node _ret_var = default(Efl.Canvas.Vg.Node);
                 try
                 {
-                    _ret_var = ((Shape)wrapper).GetStrokeMarker();
+                    _ret_var = ((Shape)ws.Target).GetStrokeMarker();
                 }
                 catch (Exception e)
                 {
@@ -736,13 +709,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_marker_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Vg.Node m)
         {
             Eina.Log.Debug("function efl_canvas_vg_shape_stroke_marker_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Shape)wrapper).SetStrokeMarker(m);
+                    ((Shape)ws.Target).SetStrokeMarker(m);
                 }
                 catch (Exception e)
                 {
@@ -771,13 +744,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static double stroke_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Shape)wrapper).GetStrokeScale();
+                    _ret_var = ((Shape)ws.Target).GetStrokeScale();
                 }
                 catch (Exception e)
                 {
@@ -807,13 +780,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_scale_set(System.IntPtr obj, System.IntPtr pd, double s)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Shape)wrapper).SetStrokeScale(s);
+                    ((Shape)ws.Target).SetStrokeScale(s);
                 }
                 catch (Exception e)
                 {
@@ -842,13 +815,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_color_get(System.IntPtr obj, System.IntPtr pd, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                            
                 try
                 {
-                    ((Shape)wrapper).GetStrokeColor(out r, out g, out b, out a);
+                    ((Shape)ws.Target).GetStrokeColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -877,13 +850,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_color_set(System.IntPtr obj, System.IntPtr pd, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Shape)wrapper).SetStrokeColor(r, g, b, a);
+                    ((Shape)ws.Target).SetStrokeColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -912,13 +885,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static double stroke_width_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_width_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Shape)wrapper).GetStrokeWidth();
+                    _ret_var = ((Shape)ws.Target).GetStrokeWidth();
                 }
                 catch (Exception e)
                 {
@@ -948,13 +921,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_width_set(System.IntPtr obj, System.IntPtr pd, double w)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_width_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Shape)wrapper).SetStrokeWidth(w);
+                    ((Shape)ws.Target).SetStrokeWidth(w);
                 }
                 catch (Exception e)
                 {
@@ -983,13 +956,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static double stroke_location_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_location_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Shape)wrapper).GetStrokeLocation();
+                    _ret_var = ((Shape)ws.Target).GetStrokeLocation();
                 }
                 catch (Exception e)
                 {
@@ -1019,13 +992,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_location_set(System.IntPtr obj, System.IntPtr pd, double centered)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_location_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Shape)wrapper).SetStrokeLocation(centered);
+                    ((Shape)ws.Target).SetStrokeLocation(centered);
                 }
                 catch (Exception e)
                 {
@@ -1054,14 +1027,14 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_dash_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr dash, out uint length)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_dash_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Gfx.Dash _out_dash = default(Efl.Gfx.Dash);
         length = default(uint);                            
                 try
                 {
-                    ((Shape)wrapper).GetStrokeDash(out _out_dash, out length);
+                    ((Shape)ws.Target).GetStrokeDash(out _out_dash, out length);
                 }
                 catch (Exception e)
                 {
@@ -1091,14 +1064,14 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_dash_set(System.IntPtr obj, System.IntPtr pd, ref Efl.Gfx.Dash.NativeStruct dash, uint length)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_dash_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Gfx.Dash _in_dash = dash;
                                                     
                 try
                 {
-                    ((Shape)wrapper).SetStrokeDash(ref _in_dash, length);
+                    ((Shape)ws.Target).SetStrokeDash(ref _in_dash, length);
                 }
                 catch (Exception e)
                 {
@@ -1128,13 +1101,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static Efl.Gfx.Cap stroke_cap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_cap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.Cap _ret_var = default(Efl.Gfx.Cap);
                 try
                 {
-                    _ret_var = ((Shape)wrapper).GetStrokeCap();
+                    _ret_var = ((Shape)ws.Target).GetStrokeCap();
                 }
                 catch (Exception e)
                 {
@@ -1164,13 +1137,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_cap_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.Cap c)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_cap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Shape)wrapper).SetStrokeCap(c);
+                    ((Shape)ws.Target).SetStrokeCap(c);
                 }
                 catch (Exception e)
                 {
@@ -1199,13 +1172,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static Efl.Gfx.Join stroke_join_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_join_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.Join _ret_var = default(Efl.Gfx.Join);
                 try
                 {
-                    _ret_var = ((Shape)wrapper).GetStrokeJoin();
+                    _ret_var = ((Shape)ws.Target).GetStrokeJoin();
                 }
                 catch (Exception e)
                 {
@@ -1235,13 +1208,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void stroke_join_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.Join j)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_join_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Shape)wrapper).SetStrokeJoin(j);
+                    ((Shape)ws.Target).SetStrokeJoin(j);
                 }
                 catch (Exception e)
                 {
@@ -1270,13 +1243,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static Efl.Gfx.FillRule fill_rule_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_fill_rule_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.FillRule _ret_var = default(Efl.Gfx.FillRule);
                 try
                 {
-                    _ret_var = ((Shape)wrapper).GetFillRule();
+                    _ret_var = ((Shape)ws.Target).GetFillRule();
                 }
                 catch (Exception e)
                 {
@@ -1306,13 +1279,13 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
         private static void fill_rule_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.FillRule fill_rule)
         {
             Eina.Log.Debug("function efl_gfx_shape_fill_rule_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Shape)wrapper).SetFillRule(fill_rule);
+                    ((Shape)ws.Target).SetFillRule(fill_rule);
                 }
                 catch (Exception e)
                 {
@@ -1330,7 +1303,7 @@ public class Shape : Efl.Canvas.Vg.Node, Efl.Eo.IWrapper,Efl.Gfx.IShape
 
         private static efl_gfx_shape_fill_rule_set_delegate efl_gfx_shape_fill_rule_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 4cb6bab..745b9ac 100644 (file)
@@ -10,10 +10,10 @@ namespace Efl {
 /// <summary>Abstract Efl class
 /// (Since EFL 1.22)</summary>
 [Efl.Class.NativeMethods]
-public abstract class Class :  Efl.Eo.IWrapper, IDisposable
+public abstract class Class : Efl.Eo.EoWrapper
 {
     ///<summary>Pointer to the native class description.</summary>
-    public virtual System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -28,20 +28,12 @@ public abstract class Class :  Efl.Eo.IWrapper, IDisposable
         }
     }
 
-    protected bool inherited;
-    protected  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Eo)] internal static extern System.IntPtr
         efl_class_class_get();
     /// <summary>Initializes a new instance of the <see cref="Class"/> class.</summary>
     /// <param name="parent">Parent instance.</param>
     public Class(Efl.Object parent= null
-            ) : this(efl_class_class_get(), typeof(Class), parent)
+            ) : base(efl_class_class_get(), typeof(Class), parent)
     {
         FinishInstantiation();
     }
@@ -49,9 +41,8 @@ public abstract class Class :  Efl.Eo.IWrapper, IDisposable
     /// <summary>Initializes a new instance of the <see cref="Class"/> class.
     /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
     /// <param name="raw">The native pointer to be wrapped.</param>
-    protected Class(System.IntPtr raw)
+    protected Class(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
     }
 
     [Efl.Eo.PrivateNativeClass]
@@ -62,100 +53,12 @@ public abstract class Class :  Efl.Eo.IWrapper, IDisposable
         }
     }
     /// <summary>Initializes a new instance of the <see cref="Class"/> class.
-    /// Internal usage: Constructor to actually call the native library constructors. C# subclasses
-    /// must use the public constructor only.</summary>
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
     /// <param name="baseKlass">The pointer to the base native Eo class.</param>
     /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
     /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected Class(IntPtr baseKlass, System.Type managedType, Efl.Object parent)
-    {
-        inherited = ((object)this).GetType() != managedType;
-        IntPtr actual_klass = baseKlass;
-        if (inherited)
-        {
-            actual_klass = Efl.Eo.ClassRegister.GetInheritKlassOrRegister(baseKlass, ((object)this).GetType());
-        }
-
-        handle = Efl.Eo.Globals.instantiate_start(actual_klass, parent);
-        if (inherited)
-        {
-            Efl.Eo.Globals.PrivateDataSet(this);
-        }
-    }
-
-    /// <summary>Finishes instantiating this object.
-    /// Internal usage by generated code.</summary>
-    protected void FinishInstantiation()
-    {
-        handle = Efl.Eo.Globals.instantiate_end(handle);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Destructor.</summary>
-    ~Class()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    protected virtual void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    protected Class(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     private static IntPtr GetEflClassStatic()
@@ -180,9 +83,9 @@ public abstract class Class :  Efl.Eo.IWrapper, IDisposable
             return Efl.Class.efl_class_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index c41ed79..e5f8116 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 /// <summary>Efl model for all composite class which provide a unified API to set source of data.
 /// This class also provide an <see cref="Efl.IModel.GetProperty"/> &quot;<c>child</c>.index&quot; that match the value of <see cref="Efl.CompositeModel.Index"/>.</summary>
 [Efl.CompositeModel.NativeMethods]
-public class CompositeModel : Efl.LoopModel, Efl.Eo.IWrapper,Efl.Ui.IView
+public class CompositeModel : Efl.LoopModel, Efl.Ui.IView
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -55,7 +55,7 @@ public class CompositeModel : Efl.LoopModel, Efl.Eo.IWrapper,Efl.Ui.IView
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected CompositeModel(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="CompositeModel"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -66,33 +66,6 @@ public class CompositeModel : Efl.LoopModel, Efl.Eo.IWrapper,Efl.Ui.IView
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Get the index. It will only work after the object has been finalized.</summary>
     /// <returns>Index of the object in the parent model. The index is uniq and start from zero.</returns>
     virtual public uint GetIndex() {
@@ -120,13 +93,13 @@ public class CompositeModel : Efl.LoopModel, Efl.Eo.IWrapper,Efl.Ui.IView
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Position of this object in the parent model.</summary>
-/// <value>Index of the object in the parent model. The index is uniq and start from zero.</value>
+    /// <value>Index of the object in the parent model. The index is uniq and start from zero.</value>
     public uint Index {
         get { return GetIndex(); }
         set { SetIndex(value); }
     }
     /// <summary>Model that is/will be</summary>
-/// <value>Efl model</value>
+    /// <value>Efl model</value>
     public Efl.IModel Model {
         get { return GetModel(); }
         set { SetModel(value); }
@@ -197,7 +170,7 @@ public class CompositeModel : Efl.LoopModel, Efl.Eo.IWrapper,Efl.Ui.IView
             return Efl.CompositeModel.efl_composite_model_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate uint efl_composite_model_index_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -210,13 +183,13 @@ public class CompositeModel : Efl.LoopModel, Efl.Eo.IWrapper,Efl.Ui.IView
         private static uint index_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_composite_model_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((CompositeModel)wrapper).GetIndex();
+                    _ret_var = ((CompositeModel)ws.Target).GetIndex();
                 }
                 catch (Exception e)
                 {
@@ -246,13 +219,13 @@ public class CompositeModel : Efl.LoopModel, Efl.Eo.IWrapper,Efl.Ui.IView
         private static void index_set(System.IntPtr obj, System.IntPtr pd, uint index)
         {
             Eina.Log.Debug("function efl_composite_model_index_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((CompositeModel)wrapper).SetIndex(index);
+                    ((CompositeModel)ws.Target).SetIndex(index);
                 }
                 catch (Exception e)
                 {
@@ -281,13 +254,13 @@ public class CompositeModel : Efl.LoopModel, Efl.Eo.IWrapper,Efl.Ui.IView
         private static Efl.IModel model_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_view_model_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IModel _ret_var = default(Efl.IModel);
                 try
                 {
-                    _ret_var = ((CompositeModel)wrapper).GetModel();
+                    _ret_var = ((CompositeModel)ws.Target).GetModel();
                 }
                 catch (Exception e)
                 {
@@ -317,13 +290,13 @@ public class CompositeModel : Efl.LoopModel, Efl.Eo.IWrapper,Efl.Ui.IView
         private static void model_set(System.IntPtr obj, System.IntPtr pd, Efl.IModel model)
         {
             Eina.Log.Debug("function efl_ui_view_model_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((CompositeModel)wrapper).SetModel(model);
+                    ((CompositeModel)ws.Target).SetModel(model);
                 }
                 catch (Exception e)
                 {
@@ -341,7 +314,7 @@ public class CompositeModel : Efl.LoopModel, Efl.Eo.IWrapper,Efl.Ui.IView
 
         private static efl_ui_view_model_set_delegate efl_ui_view_model_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 296ef0a..93d9c8f 100644 (file)
@@ -23,13 +23,13 @@ Eina.Value GetConfig(System.String name);
 bool SetConfig(System.String name, Eina.Value value);
         }
 /// <summary>A generic configuration interface, that holds key-value pairs.</summary>
-sealed public class IConfigConcrete : 
-
-IConfig
+sealed public class IConfigConcrete :
+    Efl.Eo.EoWrapper
+    , IConfig
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -44,86 +44,12 @@ IConfig
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_config_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IConfig"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IConfigConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IConfigConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IConfigConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>A generic configuration value, referred to by name.</summary>
@@ -188,7 +114,7 @@ IConfig
             return Efl.IConfigConcrete.efl_config_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Eina.ValueMarshalerOwn))]
         private delegate Eina.Value efl_config_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
@@ -201,13 +127,13 @@ IConfig
         private static Eina.Value config_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_config_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Value _ret_var = default(Eina.Value);
                 try
                 {
-                    _ret_var = ((IConfig)wrapper).GetConfig(name);
+                    _ret_var = ((IConfig)ws.Target).GetConfig(name);
                 }
                 catch (Exception e)
                 {
@@ -237,13 +163,13 @@ IConfig
         private static bool config_set(System.IntPtr obj, System.IntPtr pd, System.String name, Eina.Value value)
         {
             Eina.Log.Debug("function efl_config_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IConfig)wrapper).SetConfig(name, value);
+                    _ret_var = ((IConfig)ws.Target).SetConfig(name, value);
                 }
                 catch (Exception e)
                 {
@@ -262,7 +188,7 @@ IConfig
 
         private static efl_config_set_delegate efl_config_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index ad195c5..9f96c02 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>This class is a singleton representing the global configuration for the running application.</summary>
 [Efl.ConfigGlobal.NativeMethods]
-public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
+public class ConfigGlobal : Efl.Object, Efl.IConfig
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ConfigGlobal(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ConfigGlobal"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The profile for the running application.
     /// Profiles are pre-set options that affect the whole look-and-feel of Elementary-based applications. There are, for example, profiles aimed at desktop computer applications and others aimed at mobile, touchscreen-based ones. You most probably don&apos;t want to use the functions in this group unless you&apos;re writing an elementary configuration manager.
     /// 
@@ -174,10 +147,10 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
                                         return _ret_var;
  }
     /// <summary>The profile for the running application.
-/// Profiles are pre-set options that affect the whole look-and-feel of Elementary-based applications. There are, for example, profiles aimed at desktop computer applications and others aimed at mobile, touchscreen-based ones. You most probably don&apos;t want to use the functions in this group unless you&apos;re writing an elementary configuration manager.
-/// 
-/// This gets or sets the global profile that is applied to all Elementary applications.</summary>
-/// <value>Profile name</value>
+    /// Profiles are pre-set options that affect the whole look-and-feel of Elementary-based applications. There are, for example, profiles aimed at desktop computer applications and others aimed at mobile, touchscreen-based ones. You most probably don&apos;t want to use the functions in this group unless you&apos;re writing an elementary configuration manager.
+    /// 
+    /// This gets or sets the global profile that is applied to all Elementary applications.</summary>
+    /// <value>Profile name</value>
     public System.String Profile {
         get { return GetProfile(); }
         set { SetProfile(value); }
@@ -308,7 +281,7 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
             return Efl.ConfigGlobal.efl_config_global_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_config_profile_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -321,13 +294,13 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
         private static System.String profile_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_config_profile_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ConfigGlobal)wrapper).GetProfile();
+                    _ret_var = ((ConfigGlobal)ws.Target).GetProfile();
                 }
                 catch (Exception e)
                 {
@@ -357,13 +330,13 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
         private static void profile_set(System.IntPtr obj, System.IntPtr pd, System.String profile)
         {
             Eina.Log.Debug("function efl_config_profile_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ConfigGlobal)wrapper).SetProfile(profile);
+                    ((ConfigGlobal)ws.Target).SetProfile(profile);
                 }
                 catch (Exception e)
                 {
@@ -392,13 +365,13 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
         private static bool save(System.IntPtr obj, System.IntPtr pd, System.String profile)
         {
             Eina.Log.Debug("function efl_config_save was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ConfigGlobal)wrapper).Save(profile);
+                    _ret_var = ((ConfigGlobal)ws.Target).Save(profile);
                 }
                 catch (Exception e)
                 {
@@ -428,13 +401,13 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
         private static System.IntPtr profile_iterate(System.IntPtr obj, System.IntPtr pd, bool hidden)
         {
             Eina.Log.Debug("function efl_config_profile_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Iterator<System.String> _ret_var = default(Eina.Iterator<System.String>);
                 try
                 {
-                    _ret_var = ((ConfigGlobal)wrapper).ProfileIterate(hidden);
+                    _ret_var = ((ConfigGlobal)ws.Target).ProfileIterate(hidden);
                 }
                 catch (Exception e)
                 {
@@ -464,13 +437,13 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
         private static bool profile_exists(System.IntPtr obj, System.IntPtr pd, System.String profile)
         {
             Eina.Log.Debug("function efl_config_profile_exists was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ConfigGlobal)wrapper).ProfileExists(profile);
+                    _ret_var = ((ConfigGlobal)ws.Target).ProfileExists(profile);
                 }
                 catch (Exception e)
                 {
@@ -500,13 +473,13 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
         private static System.String profile_dir_get(System.IntPtr obj, System.IntPtr pd, System.String profile, bool is_user)
         {
             Eina.Log.Debug("function efl_config_profile_dir_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ConfigGlobal)wrapper).GetProfileDir(profile, is_user);
+                    _ret_var = ((ConfigGlobal)ws.Target).GetProfileDir(profile, is_user);
                 }
                 catch (Exception e)
                 {
@@ -536,13 +509,13 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
         private static void profile_derived_add(System.IntPtr obj, System.IntPtr pd, System.String profile, System.String options)
         {
             Eina.Log.Debug("function efl_config_profile_derived_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ConfigGlobal)wrapper).AddProfileDerived(profile, options);
+                    ((ConfigGlobal)ws.Target).AddProfileDerived(profile, options);
                 }
                 catch (Exception e)
                 {
@@ -571,13 +544,13 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
         private static void profile_derived_del(System.IntPtr obj, System.IntPtr pd, System.String profile)
         {
             Eina.Log.Debug("function efl_config_profile_derived_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ConfigGlobal)wrapper).DelProfileDerived(profile);
+                    ((ConfigGlobal)ws.Target).DelProfileDerived(profile);
                 }
                 catch (Exception e)
                 {
@@ -606,13 +579,13 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
         private static Eina.Value config_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_config_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Value _ret_var = default(Eina.Value);
                 try
                 {
-                    _ret_var = ((ConfigGlobal)wrapper).GetConfig(name);
+                    _ret_var = ((ConfigGlobal)ws.Target).GetConfig(name);
                 }
                 catch (Exception e)
                 {
@@ -642,13 +615,13 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
         private static bool config_set(System.IntPtr obj, System.IntPtr pd, System.String name, Eina.Value value)
         {
             Eina.Log.Debug("function efl_config_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ConfigGlobal)wrapper).SetConfig(name, value);
+                    _ret_var = ((ConfigGlobal)ws.Target).SetConfig(name, value);
                 }
                 catch (Exception e)
                 {
@@ -667,7 +640,7 @@ public class ConfigGlobal : Efl.Object, Efl.Eo.IWrapper,Efl.IConfig
 
         private static efl_config_set_delegate efl_config_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index f7eb2ea..5c59d68 100644 (file)
@@ -7,8 +7,8 @@ using System.Threading;
 using System.ComponentModel;
 namespace Efl {
 
-/// <summary>Common interface for objects that have multiple contents (sub objects).
-/// APIs in this interface deal with containers of multiple sub objects, not with individual parts.
+/// <summary>Common interface for objects (containers) that can have multiple contents (sub-objects).
+/// APIs in this interface deal with containers of multiple sub-objects, not with individual parts.
 /// (Since EFL 1.22)</summary>
 [Efl.IContainerConcrete.NativeMethods]
 public interface IContainer : 
@@ -16,16 +16,16 @@ public interface IContainer :
 {
     /// <summary>Begin iterating over this object&apos;s contents.
 /// (Since EFL 1.22)</summary>
-/// <returns>Iterator to object content</returns>
+/// <returns>Iterator on object&apos;s content.</returns>
 Eina.Iterator<Efl.Gfx.IEntity> ContentIterate();
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
 /// (Since EFL 1.22)</summary>
-/// <returns>Number of packed UI elements</returns>
+/// <returns>Number of sub-objects.</returns>
 int ContentCount();
-            /// <summary>Sent after a new item was added.
+            /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt;
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt;
 }
@@ -39,16 +39,16 @@ public class IContainerContentRemovedEvt_Args : EventArgs {
     ///<summary>Actual event payload.</summary>
     public Efl.Gfx.IEntity arg { get; set; }
 }
-/// <summary>Common interface for objects that have multiple contents (sub objects).
-/// APIs in this interface deal with containers of multiple sub objects, not with individual parts.
+/// <summary>Common interface for objects (containers) that can have multiple contents (sub-objects).
+/// APIs in this interface deal with containers of multiple sub-objects, not with individual parts.
 /// (Since EFL 1.22)</summary>
-sealed public class IContainerConcrete : 
-
-IContainer
+sealed public class IContainerConcrete :
+    Efl.Eo.EoWrapper
+    , IContainer
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -63,158 +63,15 @@ IContainer
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_container_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IContainer"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IContainerConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IContainerConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IContainerConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -222,13 +79,12 @@ IContainer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -270,7 +126,7 @@ IContainer
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -278,13 +134,12 @@ IContainer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -328,15 +183,15 @@ IContainer
     }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
@@ -387,7 +242,7 @@ IContainer
             return Efl.IContainerConcrete.efl_container_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_content_iterate_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -400,13 +255,13 @@ IContainer
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((IContainer)wrapper).ContentIterate();
+                    _ret_var = ((IContainer)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -436,13 +291,13 @@ IContainer
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IContainer)wrapper).ContentCount();
+                    _ret_var = ((IContainer)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -461,7 +316,7 @@ IContainer
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index d51f94b..6414f13 100644 (file)
@@ -14,7 +14,7 @@ namespace Efl {
 /// 
 /// Several containers can be supplied and the number of allocated children is based on the container of the largest size.</summary>
 [Efl.ContainerModel.NativeMethods]
-public class ContainerModel : Efl.CompositeModel, Efl.Eo.IWrapper
+public class ContainerModel : Efl.CompositeModel
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -59,7 +59,7 @@ public class ContainerModel : Efl.CompositeModel, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ContainerModel(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ContainerModel"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -70,33 +70,6 @@ public class ContainerModel : Efl.CompositeModel, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Gets the type of the given property.</summary>
     /// <param name="name">Property name</param>
     /// <returns>Property type</returns>
@@ -168,7 +141,7 @@ values.Own = false;
             return Efl.ContainerModel.efl_container_model_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.ValueType efl_container_model_child_property_value_type_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
@@ -181,13 +154,13 @@ values.Own = false;
         private static Eina.ValueType child_property_value_type_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_container_model_child_property_value_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.ValueType _ret_var = default(Eina.ValueType);
                 try
                 {
-                    _ret_var = ((ContainerModel)wrapper).GetChildPropertyValueType(name);
+                    _ret_var = ((ContainerModel)ws.Target).GetChildPropertyValueType(name);
                 }
                 catch (Exception e)
                 {
@@ -217,14 +190,14 @@ values.Own = false;
         private static bool child_property_add(System.IntPtr obj, System.IntPtr pd, System.String name, Eina.ValueType type, System.IntPtr values)
         {
             Eina.Log.Debug("function efl_container_model_child_property_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         var _in_values = new Eina.Iterator<System.IntPtr>(values, true, false);
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ContainerModel)wrapper).AddChildProperty(name, type, _in_values);
+                    _ret_var = ((ContainerModel)ws.Target).AddChildProperty(name, type, _in_values);
                 }
                 catch (Exception e)
                 {
@@ -243,7 +216,7 @@ values.Own = false;
 
         private static efl_container_model_child_property_add_delegate efl_container_model_child_property_add_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 85bfb34..b8afe5e 100644 (file)
@@ -33,9 +33,9 @@ Efl.Gfx.IEntity UnsetContent();
     /// (Since EFL 1.22)</summary>
     event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt;
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     Efl.Gfx.IEntity Content {
         get ;
         set ;
@@ -49,13 +49,13 @@ public class IContentContentChangedEvt_Args : EventArgs {
 /// <summary>Common interface for objects that have a single sub-object as content.
 /// This is used for the default content part of widgets, as well as for individual parts through <see cref="Efl.IPart"/>.
 /// (Since EFL 1.22)</summary>
-sealed public class IContentConcrete : 
-
-IContent
+sealed public class IContentConcrete :
+    Efl.Eo.EoWrapper
+    , IContent
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -70,155 +70,12 @@ IContent
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_content_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IContent"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IContentConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IContentConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
+    private IContentConcrete(System.IntPtr raw) : base(raw)
     {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Sent after the content is set or unset using the current content object.
@@ -229,13 +86,12 @@ IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -305,9 +161,9 @@ IContent
         return _ret_var;
  }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
@@ -367,7 +223,7 @@ IContent
             return Efl.IContentConcrete.efl_content_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -380,13 +236,13 @@ IContent
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((IContent)wrapper).GetContent();
+                    _ret_var = ((IContent)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -416,13 +272,13 @@ IContent
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IContent)wrapper).SetContent(content);
+                    _ret_var = ((IContent)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -452,13 +308,13 @@ IContent
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((IContent)wrapper).UnsetContent();
+                    _ret_var = ((IContent)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -477,7 +333,7 @@ IContent
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index f66df50..7296dc0 100644 (file)
@@ -25,26 +25,26 @@ bool GetSuspend();
 /// <param name="suspend">Controls whether the object is suspended or not.</param>
 void SetSuspend(bool suspend);
                     /// <summary>Control the priority of the object.</summary>
-/// <value>The priority of the object</value>
+    /// <value>The priority of the object</value>
     int Priority {
         get ;
         set ;
     }
     /// <summary>Controls whether the object is suspended or not.</summary>
-/// <value>Controls whether the object is suspended or not.</value>
+    /// <value>Controls whether the object is suspended or not.</value>
     bool Suspend {
         get ;
         set ;
     }
 }
 /// <summary>Efl control interface</summary>
-sealed public class IControlConcrete : 
-
-IControl
+sealed public class IControlConcrete :
+    Efl.Eo.EoWrapper
+    , IControl
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -59,86 +59,12 @@ IControl
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_control_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IControl"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IControlConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IControlConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IControlConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Control the priority of the object.</summary>
@@ -168,13 +94,13 @@ IControl
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Control the priority of the object.</summary>
-/// <value>The priority of the object</value>
+    /// <value>The priority of the object</value>
     public int Priority {
         get { return GetPriority(); }
         set { SetPriority(value); }
     }
     /// <summary>Controls whether the object is suspended or not.</summary>
-/// <value>Controls whether the object is suspended or not.</value>
+    /// <value>Controls whether the object is suspended or not.</value>
     public bool Suspend {
         get { return GetSuspend(); }
         set { SetSuspend(value); }
@@ -244,7 +170,7 @@ IControl
             return Efl.IControlConcrete.efl_control_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_control_priority_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -257,13 +183,13 @@ IControl
         private static int priority_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_control_priority_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IControl)wrapper).GetPriority();
+                    _ret_var = ((IControl)ws.Target).GetPriority();
                 }
                 catch (Exception e)
                 {
@@ -293,13 +219,13 @@ IControl
         private static void priority_set(System.IntPtr obj, System.IntPtr pd, int priority)
         {
             Eina.Log.Debug("function efl_control_priority_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IControl)wrapper).SetPriority(priority);
+                    ((IControl)ws.Target).SetPriority(priority);
                 }
                 catch (Exception e)
                 {
@@ -328,13 +254,13 @@ IControl
         private static bool suspend_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_control_suspend_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IControl)wrapper).GetSuspend();
+                    _ret_var = ((IControl)ws.Target).GetSuspend();
                 }
                 catch (Exception e)
                 {
@@ -364,13 +290,13 @@ IControl
         private static void suspend_set(System.IntPtr obj, System.IntPtr pd, bool suspend)
         {
             Eina.Log.Debug("function efl_control_suspend_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IControl)wrapper).SetSuspend(suspend);
+                    ((IControl)ws.Target).SetSuspend(suspend);
                 }
                 catch (Exception e)
                 {
@@ -388,7 +314,7 @@ IControl
 
         private static efl_control_suspend_set_delegate efl_control_suspend_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 46d1eb2..3132a8b 100644 (file)
@@ -37,38 +37,38 @@ bool SetCommandString(System.String str);
     /// <summary>Get the accessor which enables access to each argument that got passed to this object.</summary>
 Eina.Accessor<System.String> CommandAccess();
                     /// <summary>A commandline that encodes arguments in a command string. This command is unix shell-style, thus whitespace separates arguments unless escaped. Also a semi-colon &apos;;&apos;, ampersand &apos;&amp;&apos;, pipe/bar &apos;|&apos;, hash &apos;#&apos;, bracket, square brace, brace character (&apos;(&apos;, &apos;)&apos;, &apos;[&apos;, &apos;]&apos;, &apos;{&apos;, &apos;}&apos;), exclamation mark &apos;!&apos;,  backquote &apos;`&apos;, greator or less than (&apos;&gt;&apos; &apos;&lt;&apos;) character unless escaped or in quotes would cause args_count/value to not be generated properly, because it would force complex shell interpretation which will not be supported in evaluating the arg_count/value information, but the final shell may interpret this if this is executed via a command-line shell. To not be a complex shell command, it should be simple with paths, options and variable expansions, but nothing more complex involving the above unescaped characters.
-/// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
-/// 
-/// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
-/// 
-/// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
-/// 
-/// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
+    /// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
+    /// 
+    /// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
+    /// 
+    /// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
+    /// 
+    /// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
     System.String Command {
         get ;
     }
     /// <summary>Use an array to fill this object
-/// Every element of a string is a argument.</summary>
-/// <value>An array where every array field is an argument</value>
+    /// Every element of a string is a argument.</summary>
+    /// <value>An array where every array field is an argument</value>
     Eina.Array<System.String> CommandArray {
         set ;
     }
     /// <summary>Use a string to fill this object
-/// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
-/// <value>A command in form of a string</value>
+    /// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
+    /// <value>A command in form of a string</value>
     System.String CommandString {
         set ;
     }
 }
 /// <summary>A mixin that implements standard functions for command lines.
 /// This object parses the command line that gets passed, later the object can be accessed via accessor or the string directly.</summary>
-sealed public class ICommandLineConcrete : 
-
-ICommandLine
+sealed public class ICommandLineConcrete :
+    Efl.Eo.EoWrapper
+    , ICommandLine
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -83,86 +83,12 @@ ICommandLine
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Ecore)] internal static extern System.IntPtr
         efl_core_command_line_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="ICommandLine"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ICommandLineConcrete(System.IntPtr raw)
+    private ICommandLineConcrete(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ICommandLineConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>A commandline that encodes arguments in a command string. This command is unix shell-style, thus whitespace separates arguments unless escaped. Also a semi-colon &apos;;&apos;, ampersand &apos;&amp;&apos;, pipe/bar &apos;|&apos;, hash &apos;#&apos;, bracket, square brace, brace character (&apos;(&apos;, &apos;)&apos;, &apos;[&apos;, &apos;]&apos;, &apos;{&apos;, &apos;}&apos;), exclamation mark &apos;!&apos;,  backquote &apos;`&apos;, greator or less than (&apos;&gt;&apos; &apos;&lt;&apos;) character unless escaped or in quotes would cause args_count/value to not be generated properly, because it would force complex shell interpretation which will not be supported in evaluating the arg_count/value information, but the final shell may interpret this if this is executed via a command-line shell. To not be a complex shell command, it should be simple with paths, options and variable expansions, but nothing more complex involving the above unescaped characters.
@@ -206,25 +132,25 @@ array.OwnContent = false;
         return new Eina.Accessor<System.String>(_ret_var, false, false);
  }
     /// <summary>A commandline that encodes arguments in a command string. This command is unix shell-style, thus whitespace separates arguments unless escaped. Also a semi-colon &apos;;&apos;, ampersand &apos;&amp;&apos;, pipe/bar &apos;|&apos;, hash &apos;#&apos;, bracket, square brace, brace character (&apos;(&apos;, &apos;)&apos;, &apos;[&apos;, &apos;]&apos;, &apos;{&apos;, &apos;}&apos;), exclamation mark &apos;!&apos;,  backquote &apos;`&apos;, greator or less than (&apos;&gt;&apos; &apos;&lt;&apos;) character unless escaped or in quotes would cause args_count/value to not be generated properly, because it would force complex shell interpretation which will not be supported in evaluating the arg_count/value information, but the final shell may interpret this if this is executed via a command-line shell. To not be a complex shell command, it should be simple with paths, options and variable expansions, but nothing more complex involving the above unescaped characters.
-/// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
-/// 
-/// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
-/// 
-/// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
-/// 
-/// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
+    /// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
+    /// 
+    /// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
+    /// 
+    /// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
+    /// 
+    /// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
     public System.String Command {
         get { return GetCommand(); }
     }
     /// <summary>Use an array to fill this object
-/// Every element of a string is a argument.</summary>
-/// <value>An array where every array field is an argument</value>
+    /// Every element of a string is a argument.</summary>
+    /// <value>An array where every array field is an argument</value>
     public Eina.Array<System.String> CommandArray {
         set { SetCommandArray(value); }
     }
     /// <summary>Use a string to fill this object
-/// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
-/// <value>A command in form of a string</value>
+    /// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
+    /// <value>A command in form of a string</value>
     public System.String CommandString {
         set { SetCommandString(value); }
     }
@@ -293,7 +219,7 @@ array.OwnContent = false;
             return Efl.Core.ICommandLineConcrete.efl_core_command_line_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_core_command_line_command_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -306,13 +232,13 @@ array.OwnContent = false;
         private static System.String command_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_command_line_command_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ICommandLineConcrete)wrapper).GetCommand();
+                    _ret_var = ((ICommandLineConcrete)ws.Target).GetCommand();
                 }
                 catch (Exception e)
                 {
@@ -342,14 +268,14 @@ array.OwnContent = false;
         private static bool command_array_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr array)
         {
             Eina.Log.Debug("function efl_core_command_line_command_array_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_array = new Eina.Array<System.String>(array, true, true);
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ICommandLineConcrete)wrapper).SetCommandArray(_in_array);
+                    _ret_var = ((ICommandLineConcrete)ws.Target).SetCommandArray(_in_array);
                 }
                 catch (Exception e)
                 {
@@ -379,13 +305,13 @@ array.OwnContent = false;
         private static bool command_string_set(System.IntPtr obj, System.IntPtr pd, System.String str)
         {
             Eina.Log.Debug("function efl_core_command_line_command_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ICommandLineConcrete)wrapper).SetCommandString(str);
+                    _ret_var = ((ICommandLineConcrete)ws.Target).SetCommandString(str);
                 }
                 catch (Exception e)
                 {
@@ -415,13 +341,13 @@ array.OwnContent = false;
         private static System.IntPtr command_access(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_command_line_command_access was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Accessor<System.String> _ret_var = default(Eina.Accessor<System.String>);
                 try
                 {
-                    _ret_var = ((ICommandLineConcrete)wrapper).CommandAccess();
+                    _ret_var = ((ICommandLineConcrete)ws.Target).CommandAccess();
                 }
                 catch (Exception e)
                 {
@@ -440,7 +366,7 @@ array.OwnContent = false;
 
         private static efl_core_command_line_command_access_delegate efl_core_command_line_command_access_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index ad03e6f..63a89f6 100644 (file)
@@ -14,7 +14,7 @@ namespace Core {
 /// 
 /// A object can be forked, which will only copy its values, changes to the returned object will not change the object where it is forked off.</summary>
 [Efl.Core.Env.NativeMethods]
-public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
+public class Env : Efl.Object, Efl.IDuplicate
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -47,7 +47,7 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Env(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Env"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -58,33 +58,6 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Get the value of the <c>var</c>, or <c>null</c> if no such <c>var</c> exists in the object</summary>
     /// <param name="var">The name of the variable</param>
     /// <returns>Set var to this value if not <c>NULL</c>, otherwise clear this env value if value is <c>NULL</c> or if it is an empty string</returns>
@@ -127,7 +100,7 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
         return _ret_var;
  }
     /// <summary>Get the content of this object.
-/// This will return a iterator that contains all keys that are part of this object.</summary>
+    /// This will return a iterator that contains all keys that are part of this object.</summary>
     public Eina.Iterator<System.String> Content {
         get { return GetContent(); }
     }
@@ -217,7 +190,7 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
             return Efl.Core.Env.efl_core_env_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_core_env_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String var);
@@ -230,13 +203,13 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
         private static System.String env_get(System.IntPtr obj, System.IntPtr pd, System.String var)
         {
             Eina.Log.Debug("function efl_core_env_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Env)wrapper).GetEnv(var);
+                    _ret_var = ((Env)ws.Target).GetEnv(var);
                 }
                 catch (Exception e)
                 {
@@ -266,13 +239,13 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
         private static void env_set(System.IntPtr obj, System.IntPtr pd, System.String var, System.String value)
         {
             Eina.Log.Debug("function efl_core_env_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Env)wrapper).SetEnv(var, value);
+                    ((Env)ws.Target).SetEnv(var, value);
                 }
                 catch (Exception e)
                 {
@@ -301,13 +274,13 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
         private static System.IntPtr content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_env_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<System.String> _ret_var = default(Eina.Iterator<System.String>);
                 try
                 {
-                    _ret_var = ((Env)wrapper).GetContent();
+                    _ret_var = ((Env)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -337,13 +310,13 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
         private static void unset(System.IntPtr obj, System.IntPtr pd, System.String var)
         {
             Eina.Log.Debug("function efl_core_env_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Env)wrapper).Unset(var);
+                    ((Env)ws.Target).Unset(var);
                 }
                 catch (Exception e)
                 {
@@ -372,13 +345,13 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
         private static void clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_env_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Env)wrapper).Clear();
+                    ((Env)ws.Target).Clear();
                 }
                 catch (Exception e)
                 {
@@ -407,13 +380,13 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
         private static Efl.IDuplicate duplicate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_duplicate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IDuplicate _ret_var = default(Efl.IDuplicate);
                 try
                 {
-                    _ret_var = ((Env)wrapper).Duplicate();
+                    _ret_var = ((Env)ws.Target).Duplicate();
                 }
                 catch (Exception e)
                 {
@@ -432,7 +405,7 @@ public class Env : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate
 
         private static efl_duplicate_delegate efl_duplicate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index a912641..e998d42 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 namespace Core {
 
 [Efl.Core.ProcEnv.NativeMethods]
-public class ProcEnv : Efl.Core.Env, Efl.Eo.IWrapper
+public class ProcEnv : Efl.Core.Env
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -43,7 +43,7 @@ public class ProcEnv : Efl.Core.Env, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ProcEnv(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ProcEnv"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -54,33 +54,6 @@ public class ProcEnv : Efl.Core.Env, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Get a instance of this object
     /// The object will apply the environment operations onto this process.</summary>
     public static Efl.Core.Env Self() {
@@ -112,7 +85,7 @@ public class ProcEnv : Efl.Core.Env, Efl.Eo.IWrapper
             return Efl.Core.ProcEnv.efl_core_proc_env_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Core.Env efl_env_self_delegate();
@@ -125,8 +98,8 @@ public class ProcEnv : Efl.Core.Env, Efl.Eo.IWrapper
         private static Efl.Core.Env self(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_env_self was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Core.Env _ret_var = default(Efl.Core.Env);
                 try
@@ -148,7 +121,7 @@ public class ProcEnv : Efl.Core.Env, Efl.Eo.IWrapper
             }
         }
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 87a5883..f056e21 100644 (file)
@@ -61,11 +61,11 @@ public abstract class Application
 #endif
             elm_init(0, IntPtr.Zero);
 
-            elm_policy_set((int)Elm.Policy.Quit, (int)Elm.PolicyQuit.LastWindowHidden);
-
             // TIZEN_ONLY(20190425) Use efl-sharp-theme.edj on EflSharp
             Efl.Ui.Theme.GetDefault().AddOverlay("/usr/share/efl-sharp/efl-sharp-theme.edj");
             //
+
+            Efl.Ui.Win.ExitOnAllWindowsClosed = new Eina.Value(0);
         }
 
         initComponent = component;
index bb0b102..b1ad23b 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>Efl cubic_bezier interpolator class</summary>
 [Efl.CubicBezierInterpolator.NativeMethods]
-public class CubicBezierInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
+public class CubicBezierInterpolator : Efl.Object, Efl.IInterpolator
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class CubicBezierInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpol
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected CubicBezierInterpolator(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="CubicBezierInterpolator"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class CubicBezierInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpol
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Factors property</summary>
     /// <param name="factor1">First factor of the interpolation function.</param>
     /// <param name="factor2">Second factor of the interpolation function.</param>
@@ -162,7 +135,7 @@ public class CubicBezierInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpol
             return Efl.CubicBezierInterpolator.efl_cubic_bezier_interpolator_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_cubic_bezier_interpolator_factors_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double factor1,  out double factor2,  out double factor3,  out double factor4);
@@ -175,13 +148,13 @@ public class CubicBezierInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpol
         private static void factors_get(System.IntPtr obj, System.IntPtr pd, out double factor1, out double factor2, out double factor3, out double factor4)
         {
             Eina.Log.Debug("function efl_cubic_bezier_interpolator_factors_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         factor1 = default(double);        factor2 = default(double);        factor3 = default(double);        factor4 = default(double);                                            
                 try
                 {
-                    ((CubicBezierInterpolator)wrapper).GetFactors(out factor1, out factor2, out factor3, out factor4);
+                    ((CubicBezierInterpolator)ws.Target).GetFactors(out factor1, out factor2, out factor3, out factor4);
                 }
                 catch (Exception e)
                 {
@@ -210,13 +183,13 @@ public class CubicBezierInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpol
         private static void factors_set(System.IntPtr obj, System.IntPtr pd, double factor1, double factor2, double factor3, double factor4)
         {
             Eina.Log.Debug("function efl_cubic_bezier_interpolator_factors_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((CubicBezierInterpolator)wrapper).SetFactors(factor1, factor2, factor3, factor4);
+                    ((CubicBezierInterpolator)ws.Target).SetFactors(factor1, factor2, factor3, factor4);
                 }
                 catch (Exception e)
                 {
@@ -245,13 +218,13 @@ public class CubicBezierInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpol
         private static double interpolate(System.IntPtr obj, System.IntPtr pd, double progress)
         {
             Eina.Log.Debug("function efl_interpolator_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((CubicBezierInterpolator)wrapper).Interpolate(progress);
+                    _ret_var = ((CubicBezierInterpolator)ws.Target).Interpolate(progress);
                 }
                 catch (Exception e)
                 {
@@ -270,7 +243,7 @@ public class CubicBezierInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpol
 
         private static efl_interpolator_interpolate_delegate efl_interpolator_interpolate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 45ab02e..7672090 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 /// <summary>Efl decelerate interpolator class
 /// output = sin(input * Pi / 2);</summary>
 [Efl.DecelerateInterpolator.NativeMethods]
-public class DecelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
+public class DecelerateInterpolator : Efl.Object, Efl.IInterpolator
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -43,7 +43,7 @@ public class DecelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected DecelerateInterpolator(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="DecelerateInterpolator"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -54,33 +54,6 @@ public class DecelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Factor property</summary>
     /// <returns>Factor of the interpolation function.</returns>
     virtual public double GetFactor() {
@@ -103,7 +76,7 @@ public class DecelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
                         return _ret_var;
  }
     /// <summary>Factor property</summary>
-/// <value>Factor of the interpolation function.</value>
+    /// <value>Factor of the interpolation function.</value>
     public double Factor {
         get { return GetFactor(); }
         set { SetFactor(value); }
@@ -164,7 +137,7 @@ public class DecelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
             return Efl.DecelerateInterpolator.efl_decelerate_interpolator_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_decelerate_interpolator_factor_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -177,13 +150,13 @@ public class DecelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
         private static double factor_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_decelerate_interpolator_factor_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((DecelerateInterpolator)wrapper).GetFactor();
+                    _ret_var = ((DecelerateInterpolator)ws.Target).GetFactor();
                 }
                 catch (Exception e)
                 {
@@ -213,13 +186,13 @@ public class DecelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
         private static void factor_set(System.IntPtr obj, System.IntPtr pd, double factor)
         {
             Eina.Log.Debug("function efl_decelerate_interpolator_factor_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((DecelerateInterpolator)wrapper).SetFactor(factor);
+                    ((DecelerateInterpolator)ws.Target).SetFactor(factor);
                 }
                 catch (Exception e)
                 {
@@ -248,13 +221,13 @@ public class DecelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
         private static double interpolate(System.IntPtr obj, System.IntPtr pd, double progress)
         {
             Eina.Log.Debug("function efl_interpolator_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((DecelerateInterpolator)wrapper).Interpolate(progress);
+                    _ret_var = ((DecelerateInterpolator)ws.Target).Interpolate(progress);
                 }
                 catch (Exception e)
                 {
@@ -273,7 +246,7 @@ public class DecelerateInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
 
         private static efl_interpolator_interpolate_delegate efl_interpolator_interpolate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 409a891..919e0ab 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>Efl divisor interpolator class</summary>
 [Efl.DivisorInterpolator.NativeMethods]
-public class DivisorInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
+public class DivisorInterpolator : Efl.Object, Efl.IInterpolator
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class DivisorInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected DivisorInterpolator(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="DivisorInterpolator"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class DivisorInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Factors property</summary>
     /// <param name="factor1">First factor of the interpolation function.</param>
     /// <param name="factor2">Second factor of the interpolation function.</param>
@@ -158,7 +131,7 @@ public class DivisorInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
             return Efl.DivisorInterpolator.efl_divisor_interpolator_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_divisor_interpolator_factors_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double factor1,  out double factor2);
@@ -171,13 +144,13 @@ public class DivisorInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
         private static void factors_get(System.IntPtr obj, System.IntPtr pd, out double factor1, out double factor2)
         {
             Eina.Log.Debug("function efl_divisor_interpolator_factors_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         factor1 = default(double);        factor2 = default(double);                            
                 try
                 {
-                    ((DivisorInterpolator)wrapper).GetFactors(out factor1, out factor2);
+                    ((DivisorInterpolator)ws.Target).GetFactors(out factor1, out factor2);
                 }
                 catch (Exception e)
                 {
@@ -206,13 +179,13 @@ public class DivisorInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
         private static void factors_set(System.IntPtr obj, System.IntPtr pd, double factor1, double factor2)
         {
             Eina.Log.Debug("function efl_divisor_interpolator_factors_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((DivisorInterpolator)wrapper).SetFactors(factor1, factor2);
+                    ((DivisorInterpolator)ws.Target).SetFactors(factor1, factor2);
                 }
                 catch (Exception e)
                 {
@@ -241,13 +214,13 @@ public class DivisorInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
         private static double interpolate(System.IntPtr obj, System.IntPtr pd, double progress)
         {
             Eina.Log.Debug("function efl_interpolator_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((DivisorInterpolator)wrapper).Interpolate(progress);
+                    _ret_var = ((DivisorInterpolator)ws.Target).Interpolate(progress);
                 }
                 catch (Exception e)
                 {
@@ -266,7 +239,7 @@ public class DivisorInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
 
         private static efl_interpolator_interpolate_delegate efl_interpolator_interpolate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 4d899e4..dd5b67b 100644 (file)
@@ -20,13 +20,13 @@ Efl.IDuplicate Duplicate();
     }
 /// <summary>An interface for duplication of objects.
 /// Objects implementing this interface can be duplicated with <see cref="Efl.IDuplicate.Duplicate"/>.</summary>
-sealed public class IDuplicateConcrete : 
-
-IDuplicate
+sealed public class IDuplicateConcrete :
+    Efl.Eo.EoWrapper
+    , IDuplicate
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -41,86 +41,12 @@ IDuplicate
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_duplicate_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IDuplicate"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IDuplicateConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IDuplicateConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IDuplicateConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Creates a carbon copy of this object and returns it.
@@ -166,7 +92,7 @@ IDuplicate
             return Efl.IDuplicateConcrete.efl_duplicate_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))]
         private delegate Efl.IDuplicate efl_duplicate_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -179,13 +105,13 @@ IDuplicate
         private static Efl.IDuplicate duplicate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_duplicate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IDuplicate _ret_var = default(Efl.IDuplicate);
                 try
                 {
-                    _ret_var = ((IDuplicate)wrapper).Duplicate();
+                    _ret_var = ((IDuplicate)ws.Target).Duplicate();
                 }
                 catch (Exception e)
                 {
@@ -204,7 +130,7 @@ IDuplicate
 
         private static efl_duplicate_delegate efl_duplicate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 495fdbe..330177a 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>No description supplied.</summary>
 [Efl.Exe.NativeMethods]
-public class Exe : Efl.Task, Efl.Eo.IWrapper,Efl.Core.ICommandLine,Efl.Io.ICloser,Efl.Io.IReader,Efl.Io.IWriter
+public class Exe : Efl.Task, Efl.Core.ICommandLine, Efl.Io.ICloser, Efl.Io.IReader, Efl.Io.IWriter
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class Exe : Efl.Task, Efl.Eo.IWrapper,Efl.Core.ICommandLine,Efl.Io.IClose
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Exe(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Exe"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class Exe : Efl.Task, Efl.Eo.IWrapper,Efl.Core.ICommandLine,Efl.Io.IClose
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Notifies closed, when property is marked as true
     /// (Since EFL 1.22)</summary>
     public event EventHandler ClosedEvt
@@ -88,10 +61,9 @@ public class Exe : Efl.Task, Efl.Eo.IWrapper,Efl.Core.ICommandLine,Efl.Io.IClose
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -145,14 +117,13 @@ public class Exe : Efl.Task, Efl.Eo.IWrapper,Efl.Core.ICommandLine,Efl.Io.IClose
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -213,10 +184,9 @@ public class Exe : Efl.Task, Efl.Eo.IWrapper,Efl.Core.ICommandLine,Efl.Io.IClose
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -270,14 +240,13 @@ public class Exe : Efl.Task, Efl.Eo.IWrapper,Efl.Core.ICommandLine,Efl.Io.IClose
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -531,79 +500,79 @@ array.OwnContent = false;
         set { SetExeFlags(value); }
     }
     /// <summary>The final exit signal of this task.</summary>
-/// <value>The exit signal, or -1 if no exit signal happened</value>
+    /// <value>The exit signal, or -1 if no exit signal happened</value>
     public int ExitSignal {
         get { return GetExitSignal(); }
     }
     /// <summary>If <c>env</c> is <c>null</c> then the process created by this object is going to inherit the environment of this process.
-/// In case <c>env</c> is not <c>null</c> then the environment variables declared in this object will represent the environment passed to the new process.</summary>
-/// <value><c>env</c> will be referenced until this object does not need it anymore.</value>
+    /// In case <c>env</c> is not <c>null</c> then the environment variables declared in this object will represent the environment passed to the new process.</summary>
+    /// <value><c>env</c> will be referenced until this object does not need it anymore.</value>
     public Efl.Core.Env Env {
         get { return GetEnv(); }
         set { SetEnv(value); }
     }
     /// <summary>A commandline that encodes arguments in a command string. This command is unix shell-style, thus whitespace separates arguments unless escaped. Also a semi-colon &apos;;&apos;, ampersand &apos;&amp;&apos;, pipe/bar &apos;|&apos;, hash &apos;#&apos;, bracket, square brace, brace character (&apos;(&apos;, &apos;)&apos;, &apos;[&apos;, &apos;]&apos;, &apos;{&apos;, &apos;}&apos;), exclamation mark &apos;!&apos;,  backquote &apos;`&apos;, greator or less than (&apos;&gt;&apos; &apos;&lt;&apos;) character unless escaped or in quotes would cause args_count/value to not be generated properly, because it would force complex shell interpretation which will not be supported in evaluating the arg_count/value information, but the final shell may interpret this if this is executed via a command-line shell. To not be a complex shell command, it should be simple with paths, options and variable expansions, but nothing more complex involving the above unescaped characters.
-/// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
-/// 
-/// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
-/// 
-/// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
-/// 
-/// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
+    /// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
+    /// 
+    /// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
+    /// 
+    /// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
+    /// 
+    /// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
     public System.String Command {
         get { return GetCommand(); }
     }
     /// <summary>Use an array to fill this object
-/// Every element of a string is a argument.</summary>
-/// <value>An array where every array field is an argument</value>
+    /// Every element of a string is a argument.</summary>
+    /// <value>An array where every array field is an argument</value>
     public Eina.Array<System.String> CommandArray {
         set { SetCommandArray(value); }
     }
     /// <summary>Use a string to fill this object
-/// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
-/// <value>A command in form of a string</value>
+    /// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
+    /// <value>A command in form of a string</value>
     public System.String CommandString {
         set { SetCommandString(value); }
     }
     /// <summary>If true will notify object was closed.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if closed, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if closed, <c>false</c> otherwise</value>
     public bool Closed {
         get { return GetClosed(); }
     }
     /// <summary>If true will automatically close resources on exec() calls.
-/// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
+    /// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
     public bool CloseOnExec {
         get { return GetCloseOnExec(); }
         set { SetCloseOnExec(value); }
     }
     /// <summary>If true will automatically close() on object invalidate.
-/// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
+    /// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
     public bool CloseOnInvalidate {
         get { return GetCloseOnInvalidate(); }
         set { SetCloseOnInvalidate(value); }
     }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IReader.Read"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
     public bool CanRead {
         get { return GetCanRead(); }
         set { SetCanRead(value); }
     }
     /// <summary>If <c>true</c> will notify end of stream.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
     public bool Eos {
         get { return GetEos(); }
         set { SetEos(value); }
     }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IWriter.Write"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
     public bool CanWrite {
         get { return GetCanWrite(); }
         set { SetCanWrite(value); }
@@ -874,7 +843,7 @@ array.OwnContent = false;
             return Efl.Exe.efl_exe_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.ExeFlags efl_exe_flags_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -887,13 +856,13 @@ array.OwnContent = false;
         private static Efl.ExeFlags exe_flags_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_exe_flags_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.ExeFlags _ret_var = default(Efl.ExeFlags);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).GetExeFlags();
+                    _ret_var = ((Exe)ws.Target).GetExeFlags();
                 }
                 catch (Exception e)
                 {
@@ -923,13 +892,13 @@ array.OwnContent = false;
         private static void exe_flags_set(System.IntPtr obj, System.IntPtr pd, Efl.ExeFlags flags)
         {
             Eina.Log.Debug("function efl_exe_flags_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Exe)wrapper).SetExeFlags(flags);
+                    ((Exe)ws.Target).SetExeFlags(flags);
                 }
                 catch (Exception e)
                 {
@@ -958,13 +927,13 @@ array.OwnContent = false;
         private static int exit_signal_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_exe_exit_signal_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).GetExitSignal();
+                    _ret_var = ((Exe)ws.Target).GetExitSignal();
                 }
                 catch (Exception e)
                 {
@@ -994,13 +963,13 @@ array.OwnContent = false;
         private static Efl.Core.Env env_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_exe_env_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Core.Env _ret_var = default(Efl.Core.Env);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).GetEnv();
+                    _ret_var = ((Exe)ws.Target).GetEnv();
                 }
                 catch (Exception e)
                 {
@@ -1030,13 +999,13 @@ array.OwnContent = false;
         private static void env_set(System.IntPtr obj, System.IntPtr pd, Efl.Core.Env env)
         {
             Eina.Log.Debug("function efl_exe_env_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Exe)wrapper).SetEnv(env);
+                    ((Exe)ws.Target).SetEnv(env);
                 }
                 catch (Exception e)
                 {
@@ -1065,13 +1034,13 @@ array.OwnContent = false;
         private static void signal(System.IntPtr obj, System.IntPtr pd, Efl.ExeSignal sig)
         {
             Eina.Log.Debug("function efl_exe_signal was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Exe)wrapper).Signal(sig);
+                    ((Exe)ws.Target).Signal(sig);
                 }
                 catch (Exception e)
                 {
@@ -1100,13 +1069,13 @@ array.OwnContent = false;
         private static System.String command_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_command_line_command_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).GetCommand();
+                    _ret_var = ((Exe)ws.Target).GetCommand();
                 }
                 catch (Exception e)
                 {
@@ -1136,14 +1105,14 @@ array.OwnContent = false;
         private static bool command_array_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr array)
         {
             Eina.Log.Debug("function efl_core_command_line_command_array_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_array = new Eina.Array<System.String>(array, true, true);
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).SetCommandArray(_in_array);
+                    _ret_var = ((Exe)ws.Target).SetCommandArray(_in_array);
                 }
                 catch (Exception e)
                 {
@@ -1173,13 +1142,13 @@ array.OwnContent = false;
         private static bool command_string_set(System.IntPtr obj, System.IntPtr pd, System.String str)
         {
             Eina.Log.Debug("function efl_core_command_line_command_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).SetCommandString(str);
+                    _ret_var = ((Exe)ws.Target).SetCommandString(str);
                 }
                 catch (Exception e)
                 {
@@ -1209,13 +1178,13 @@ array.OwnContent = false;
         private static System.IntPtr command_access(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_command_line_command_access was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Accessor<System.String> _ret_var = default(Eina.Accessor<System.String>);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).CommandAccess();
+                    _ret_var = ((Exe)ws.Target).CommandAccess();
                 }
                 catch (Exception e)
                 {
@@ -1245,13 +1214,13 @@ array.OwnContent = false;
         private static bool closed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_closed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).GetClosed();
+                    _ret_var = ((Exe)ws.Target).GetClosed();
                 }
                 catch (Exception e)
                 {
@@ -1281,13 +1250,13 @@ array.OwnContent = false;
         private static bool close_on_exec_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).GetCloseOnExec();
+                    _ret_var = ((Exe)ws.Target).GetCloseOnExec();
                 }
                 catch (Exception e)
                 {
@@ -1317,13 +1286,13 @@ array.OwnContent = false;
         private static bool close_on_exec_set(System.IntPtr obj, System.IntPtr pd, bool close_on_exec)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).SetCloseOnExec(close_on_exec);
+                    _ret_var = ((Exe)ws.Target).SetCloseOnExec(close_on_exec);
                 }
                 catch (Exception e)
                 {
@@ -1353,13 +1322,13 @@ array.OwnContent = false;
         private static bool close_on_invalidate_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).GetCloseOnInvalidate();
+                    _ret_var = ((Exe)ws.Target).GetCloseOnInvalidate();
                 }
                 catch (Exception e)
                 {
@@ -1389,13 +1358,13 @@ array.OwnContent = false;
         private static void close_on_invalidate_set(System.IntPtr obj, System.IntPtr pd, bool close_on_invalidate)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Exe)wrapper).SetCloseOnInvalidate(close_on_invalidate);
+                    ((Exe)ws.Target).SetCloseOnInvalidate(close_on_invalidate);
                 }
                 catch (Exception e)
                 {
@@ -1424,13 +1393,13 @@ array.OwnContent = false;
         private static Eina.Error close(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).Close();
+                    _ret_var = ((Exe)ws.Target).Close();
                 }
                 catch (Exception e)
                 {
@@ -1460,13 +1429,13 @@ array.OwnContent = false;
         private static bool can_read_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).GetCanRead();
+                    _ret_var = ((Exe)ws.Target).GetCanRead();
                 }
                 catch (Exception e)
                 {
@@ -1496,13 +1465,13 @@ array.OwnContent = false;
         private static void can_read_set(System.IntPtr obj, System.IntPtr pd, bool can_read)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Exe)wrapper).SetCanRead(can_read);
+                    ((Exe)ws.Target).SetCanRead(can_read);
                 }
                 catch (Exception e)
                 {
@@ -1531,13 +1500,13 @@ array.OwnContent = false;
         private static bool eos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_eos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).GetEos();
+                    _ret_var = ((Exe)ws.Target).GetEos();
                 }
                 catch (Exception e)
                 {
@@ -1567,13 +1536,13 @@ array.OwnContent = false;
         private static void eos_set(System.IntPtr obj, System.IntPtr pd, bool is_eos)
         {
             Eina.Log.Debug("function efl_io_reader_eos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Exe)wrapper).SetEos(is_eos);
+                    ((Exe)ws.Target).SetEos(is_eos);
                 }
                 catch (Exception e)
                 {
@@ -1602,13 +1571,13 @@ array.OwnContent = false;
         private static Eina.Error read(System.IntPtr obj, System.IntPtr pd, ref Eina.RwSlice rw_slice)
         {
             Eina.Log.Debug("function efl_io_reader_read was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).Read(ref rw_slice);
+                    _ret_var = ((Exe)ws.Target).Read(ref rw_slice);
                 }
                 catch (Exception e)
                 {
@@ -1638,13 +1607,13 @@ array.OwnContent = false;
         private static bool can_write_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).GetCanWrite();
+                    _ret_var = ((Exe)ws.Target).GetCanWrite();
                 }
                 catch (Exception e)
                 {
@@ -1674,13 +1643,13 @@ array.OwnContent = false;
         private static void can_write_set(System.IntPtr obj, System.IntPtr pd, bool can_write)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Exe)wrapper).SetCanWrite(can_write);
+                    ((Exe)ws.Target).SetCanWrite(can_write);
                 }
                 catch (Exception e)
                 {
@@ -1709,13 +1678,13 @@ array.OwnContent = false;
         private static Eina.Error write(System.IntPtr obj, System.IntPtr pd, ref Eina.Slice slice, ref Eina.Slice remaining)
         {
             Eina.Log.Debug("function efl_io_writer_write was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 remaining = default(Eina.Slice);                            Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Exe)wrapper).Write(ref slice, ref remaining);
+                    _ret_var = ((Exe)ws.Target).Write(ref slice, ref remaining);
                 }
                 catch (Exception e)
                 {
@@ -1734,7 +1703,7 @@ array.OwnContent = false;
 
         private static efl_io_writer_write_delegate efl_io_writer_write_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index b8ce1e3..6cff0da 100644 (file)
@@ -64,46 +64,46 @@ Eina.Error Load();
 /// (Since EFL 1.22)</summary>
 void Unload();
                                         /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     Eina.File Mmap {
         get ;
         set ;
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     System.String File {
         get ;
         set ;
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     System.String Key {
         get ;
         set ;
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     bool Loaded {
         get ;
     }
 }
 /// <summary>Efl file interface
 /// (Since EFL 1.22)</summary>
-sealed public class IFileConcrete : 
-
-IFile
+sealed public class IFileConcrete :
+    Efl.Eo.EoWrapper
+    , IFile
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -118,86 +118,12 @@ IFile
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_file_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IFile"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IFileConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IFileConcrete()
+    private IFileConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
@@ -285,33 +211,33 @@ IFile
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
@@ -430,7 +356,7 @@ IFile
             return Efl.IFileConcrete.efl_file_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.File efl_file_mmap_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -443,13 +369,13 @@ IFile
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((IFileConcrete)wrapper).GetMmap();
+                    _ret_var = ((IFileConcrete)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -479,13 +405,13 @@ IFile
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((IFileConcrete)wrapper).SetMmap(f);
+                    _ret_var = ((IFileConcrete)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -515,13 +441,13 @@ IFile
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IFileConcrete)wrapper).GetFile();
+                    _ret_var = ((IFileConcrete)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -551,13 +477,13 @@ IFile
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((IFileConcrete)wrapper).SetFile(file);
+                    _ret_var = ((IFileConcrete)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -587,13 +513,13 @@ IFile
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IFileConcrete)wrapper).GetKey();
+                    _ret_var = ((IFileConcrete)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -623,13 +549,13 @@ IFile
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IFileConcrete)wrapper).SetKey(key);
+                    ((IFileConcrete)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -658,13 +584,13 @@ IFile
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IFileConcrete)wrapper).GetLoaded();
+                    _ret_var = ((IFileConcrete)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -694,13 +620,13 @@ IFile
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((IFileConcrete)wrapper).Load();
+                    _ret_var = ((IFileConcrete)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -730,13 +656,13 @@ IFile
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IFileConcrete)wrapper).Unload();
+                    ((IFileConcrete)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -754,7 +680,7 @@ IFile
 
         private static efl_file_unload_delegate efl_file_unload_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 1e5d11f..e68409f 100644 (file)
@@ -26,13 +26,13 @@ bool Save(System.String file, System.String key, ref Efl.FileSaveInfo info);
     }
 /// <summary>Efl file saving interface
 /// (Since EFL 1.22)</summary>
-sealed public class IFileSaveConcrete : 
-
-IFileSave
+sealed public class IFileSaveConcrete :
+    Efl.Eo.EoWrapper
+    , IFileSave
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -47,86 +47,12 @@ IFileSave
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_file_save_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IFileSave"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IFileSaveConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IFileSaveConcrete()
+    private IFileSaveConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Save the given image object&apos;s contents to an (image) file.
@@ -180,7 +106,7 @@ IFileSave
             return Efl.IFileSaveConcrete.efl_file_save_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_file_save_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String file, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key,  ref Efl.FileSaveInfo.NativeStruct info);
@@ -193,14 +119,14 @@ IFileSave
         private static bool save(System.IntPtr obj, System.IntPtr pd, System.String file, System.String key, ref Efl.FileSaveInfo.NativeStruct info)
         {
             Eina.Log.Debug("function efl_file_save was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.FileSaveInfo _in_info = info;
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IFileSave)wrapper).Save(file, key, ref _in_info);
+                    _ret_var = ((IFileSave)ws.Target).Save(file, key, ref _in_info);
                 }
                 catch (Exception e)
                 {
@@ -220,7 +146,7 @@ IFileSave
 
         private static efl_file_save_delegate efl_file_save_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -250,12 +176,16 @@ public struct FileSaveInfo
         this.Encoding = Encoding;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator FileSaveInfo(IntPtr ptr)
     {
         var tmp = (FileSaveInfo.NativeStruct)Marshal.PtrToStructure(ptr, typeof(FileSaveInfo.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct FileSaveInfo.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -288,6 +218,8 @@ public struct FileSaveInfo
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_filter_model.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_filter_model.eo.cs
new file mode 100644 (file)
index 0000000..22be231
--- /dev/null
@@ -0,0 +1,230 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+/// <param name="parent">This object can be used to know when to cancel the future.</param>
+/// <param name="child">You must reference this object for the duration of your use of it as the caller will not do that for you.</param>
+public delegate  Eina.Future EflFilterModel(Efl.FilterModel parent, Efl.IModel child);
+[return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Eina.FutureMarshaler))]public delegate  Eina.Future EflFilterModelInternal(IntPtr data, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.FilterModel parent, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.IModel child);
+internal class EflFilterModelWrapper : IDisposable
+{
+
+    private EflFilterModelInternal _cb;
+    private IntPtr _cb_data;
+    private EinaFreeCb _cb_free_cb;
+
+    internal EflFilterModelWrapper (EflFilterModelInternal _cb, IntPtr _cb_data, EinaFreeCb _cb_free_cb)
+    {
+        this._cb = _cb;
+        this._cb_data = _cb_data;
+        this._cb_free_cb = _cb_free_cb;
+    }
+
+    ~EflFilterModelWrapper()
+    {
+        Dispose(false);
+    }
+
+    protected virtual void Dispose(bool disposing)
+    {
+        if (this._cb_free_cb != null)
+        {
+            if (disposing)
+            {
+                this._cb_free_cb(this._cb_data);
+            }
+            else
+            {
+                Efl.Eo.Globals.ThreadSafeFreeCbExec(this._cb_free_cb, this._cb_data);
+            }
+            this._cb_free_cb = null;
+            this._cb_data = IntPtr.Zero;
+            this._cb = null;
+        }
+    }
+
+    public void Dispose()
+    {
+        Dispose(true);
+        GC.SuppressFinalize(this);
+    }
+
+    internal  Eina.Future ManagedCb(Efl.FilterModel parent,Efl.IModel child)
+    {
+                                                        var _ret_var = _cb(_cb_data, parent, child);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+    }
+
+    [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Eina.FutureMarshaler))]    internal static  Eina.Future Cb(IntPtr cb_data, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.FilterModel parent, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.IModel child)
+    {
+        GCHandle handle = GCHandle.FromIntPtr(cb_data);
+        EflFilterModel cb = (EflFilterModel)handle.Target;
+                                                             Eina.Future _ret_var = default( Eina.Future);
+        try {
+            _ret_var = cb(parent, child);
+        } catch (Exception e) {
+            Eina.Log.Warning($"Callback error: {e.ToString()}");
+            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+        }
+                                        return _ret_var;
+    }
+}
+
+
+namespace Efl {
+
+/// <summary>Efl model designed to filter its children.</summary>
+[Efl.FilterModel.NativeMethods]
+public class FilterModel : Efl.CompositeModel
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(FilterModel))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Ecore)] internal static extern System.IntPtr
+        efl_filter_model_class_get();
+    /// <summary>Initializes a new instance of the <see cref="FilterModel"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    /// <param name="filterSet">Set a filter function that will catch children from the composited model. See <see cref="Efl.FilterModel.SetFilter"/></param>
+    /// <param name="model">Model that is/will be See <see cref="Efl.Ui.IView.SetModel"/></param>
+    /// <param name="index">Position of this object in the parent model. See <see cref="Efl.CompositeModel.SetIndex"/></param>
+    public FilterModel(Efl.Object parent
+            , EflFilterModel filterSet, Efl.IModel model, uint? index = null) : base(efl_filter_model_class_get(), typeof(FilterModel), parent)
+    {
+        if (Efl.Eo.Globals.ParamHelperCheck(filterSet))
+        {
+            SetFilter(Efl.Eo.Globals.GetParamHelper(filterSet));
+        }
+
+        if (Efl.Eo.Globals.ParamHelperCheck(model))
+        {
+            SetModel(Efl.Eo.Globals.GetParamHelper(model));
+        }
+
+        if (Efl.Eo.Globals.ParamHelperCheck(index))
+        {
+            SetIndex(Efl.Eo.Globals.GetParamHelper(index));
+        }
+
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="FilterModel"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected FilterModel(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="FilterModel"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected FilterModel(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Set a filter function that will catch children from the composited model.</summary>
+    /// <param name="filter">Filter callback</param>
+    virtual public void SetFilter(EflFilterModel filter) {
+                         GCHandle filter_handle = GCHandle.Alloc(filter);
+        Efl.FilterModel.NativeMethods.efl_filter_model_filter_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),GCHandle.ToIntPtr(filter_handle), EflFilterModelWrapper.Cb, Efl.Eo.Globals.free_gchandle);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.FilterModel.efl_filter_model_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.CompositeModel.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Ecore);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_filter_model_filter_set_static_delegate == null)
+            {
+                efl_filter_model_filter_set_static_delegate = new efl_filter_model_filter_set_delegate(filter_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetFilter") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_filter_model_filter_set"), func = Marshal.GetFunctionPointerForDelegate(efl_filter_model_filter_set_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.FilterModel.efl_filter_model_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate void efl_filter_model_filter_set_delegate(System.IntPtr obj, System.IntPtr pd,  IntPtr filter_data, EflFilterModelInternal filter, EinaFreeCb filter_free_cb);
+
+        
+        public delegate void efl_filter_model_filter_set_api_delegate(System.IntPtr obj,  IntPtr filter_data, EflFilterModelInternal filter, EinaFreeCb filter_free_cb);
+
+        public static Efl.Eo.FunctionWrapper<efl_filter_model_filter_set_api_delegate> efl_filter_model_filter_set_ptr = new Efl.Eo.FunctionWrapper<efl_filter_model_filter_set_api_delegate>(Module, "efl_filter_model_filter_set");
+
+        private static void filter_set(System.IntPtr obj, System.IntPtr pd, IntPtr filter_data, EflFilterModelInternal filter, EinaFreeCb filter_free_cb)
+        {
+            Eina.Log.Debug("function efl_filter_model_filter_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                            EflFilterModelWrapper filter_wrapper = new EflFilterModelWrapper(filter, filter_data, filter_free_cb);
+            
+                try
+                {
+                    ((FilterModel)ws.Target).SetFilter(filter_wrapper.ManagedCb);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_filter_model_filter_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), filter_data, filter, filter_free_cb);
+            }
+        }
+
+        private static efl_filter_model_filter_set_delegate efl_filter_model_filter_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
index 04fc97c..a1ac67e 100644 (file)
@@ -12,7 +12,7 @@ namespace Efl {
 /// 
 /// It does not model anything in particular and does not affect anything else in the system.</summary>
 [Efl.GenericModel.NativeMethods]
-public class GenericModel : Efl.LoopModel, Efl.Eo.IWrapper
+public class GenericModel : Efl.LoopModel
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class GenericModel : Efl.LoopModel, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected GenericModel(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="GenericModel"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,33 +56,6 @@ public class GenericModel : Efl.LoopModel, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.GenericModel.efl_generic_model_class_get();
@@ -106,9 +79,9 @@ public class GenericModel : Efl.LoopModel, Efl.Eo.IWrapper
             return Efl.GenericModel.efl_generic_model_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_gesture_events.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_gesture_events.eo.cs
new file mode 100644 (file)
index 0000000..e2b8965
--- /dev/null
@@ -0,0 +1,504 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Gesture {
+
+[Efl.Gesture.IEventsConcrete.NativeMethods]
+public interface IEvents : 
+    Efl.Eo.IWrapper, IDisposable
+{
+    /// <summary>Event for tap gesture</summary>
+    event EventHandler<Efl.Gesture.IEventsGestureTapEvt_Args> GestureTapEvt;
+    /// <summary>Event for double tap gesture</summary>
+    event EventHandler<Efl.Gesture.IEventsGestureDoubleTapEvt_Args> GestureDoubleTapEvt;
+    /// <summary>Event for triple tap gesture</summary>
+    event EventHandler<Efl.Gesture.IEventsGestureTripleTapEvt_Args> GestureTripleTapEvt;
+    /// <summary>Event for long tap gesture</summary>
+    event EventHandler<Efl.Gesture.IEventsGestureLongTapEvt_Args> GestureLongTapEvt;
+    /// <summary>Event for momentum gesture</summary>
+    event EventHandler<Efl.Gesture.IEventsGestureMomentumEvt_Args> GestureMomentumEvt;
+    /// <summary>Event for flick gesture</summary>
+    event EventHandler<Efl.Gesture.IEventsGestureFlickEvt_Args> GestureFlickEvt;
+    /// <summary>Event for zoom gesture</summary>
+    event EventHandler<Efl.Gesture.IEventsGestureZoomEvt_Args> GestureZoomEvt;
+}
+///<summary>Event argument wrapper for event <see cref="Efl.Gesture.IEvents.GestureTapEvt"/>.</summary>
+public class IEventsGestureTapEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public Efl.Canvas.GestureTap arg { get; set; }
+}
+///<summary>Event argument wrapper for event <see cref="Efl.Gesture.IEvents.GestureDoubleTapEvt"/>.</summary>
+public class IEventsGestureDoubleTapEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public Efl.Canvas.GestureDoubleTap arg { get; set; }
+}
+///<summary>Event argument wrapper for event <see cref="Efl.Gesture.IEvents.GestureTripleTapEvt"/>.</summary>
+public class IEventsGestureTripleTapEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public Efl.Canvas.GestureTripleTap arg { get; set; }
+}
+///<summary>Event argument wrapper for event <see cref="Efl.Gesture.IEvents.GestureLongTapEvt"/>.</summary>
+public class IEventsGestureLongTapEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public Efl.Canvas.GestureLongTap arg { get; set; }
+}
+///<summary>Event argument wrapper for event <see cref="Efl.Gesture.IEvents.GestureMomentumEvt"/>.</summary>
+public class IEventsGestureMomentumEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public Efl.Canvas.GestureMomentum arg { get; set; }
+}
+///<summary>Event argument wrapper for event <see cref="Efl.Gesture.IEvents.GestureFlickEvt"/>.</summary>
+public class IEventsGestureFlickEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public Efl.Canvas.GestureFlick arg { get; set; }
+}
+///<summary>Event argument wrapper for event <see cref="Efl.Gesture.IEvents.GestureZoomEvt"/>.</summary>
+public class IEventsGestureZoomEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public Efl.Canvas.GestureZoom arg { get; set; }
+}
+sealed public class IEventsConcrete :
+    Efl.Eo.EoWrapper
+    , IEvents
+    
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(IEventsConcrete))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
+        efl_gesture_events_interface_get();
+    /// <summary>Initializes a new instance of the <see cref="IEvents"/> class.
+    /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
+    private IEventsConcrete(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Event for tap gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureTapEvt_Args> GestureTapEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureTapEvt_Args args = new Efl.Gesture.IEventsGestureTapEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureTap);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_TAP";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_TAP";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureTapEvt.</summary>
+    public void OnGestureTapEvt(Efl.Gesture.IEventsGestureTapEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_TAP";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for double tap gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureDoubleTapEvt_Args> GestureDoubleTapEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureDoubleTapEvt_Args args = new Efl.Gesture.IEventsGestureDoubleTapEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureDoubleTap);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_DOUBLE_TAP";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_DOUBLE_TAP";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureDoubleTapEvt.</summary>
+    public void OnGestureDoubleTapEvt(Efl.Gesture.IEventsGestureDoubleTapEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_DOUBLE_TAP";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for triple tap gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureTripleTapEvt_Args> GestureTripleTapEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureTripleTapEvt_Args args = new Efl.Gesture.IEventsGestureTripleTapEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureTripleTap);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_TRIPLE_TAP";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_TRIPLE_TAP";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureTripleTapEvt.</summary>
+    public void OnGestureTripleTapEvt(Efl.Gesture.IEventsGestureTripleTapEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_TRIPLE_TAP";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for long tap gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureLongTapEvt_Args> GestureLongTapEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureLongTapEvt_Args args = new Efl.Gesture.IEventsGestureLongTapEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureLongTap);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_LONG_TAP";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_LONG_TAP";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureLongTapEvt.</summary>
+    public void OnGestureLongTapEvt(Efl.Gesture.IEventsGestureLongTapEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_LONG_TAP";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for momentum gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureMomentumEvt_Args> GestureMomentumEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureMomentumEvt_Args args = new Efl.Gesture.IEventsGestureMomentumEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureMomentum);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_MOMENTUM";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_MOMENTUM";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureMomentumEvt.</summary>
+    public void OnGestureMomentumEvt(Efl.Gesture.IEventsGestureMomentumEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_MOMENTUM";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for flick gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureFlickEvt_Args> GestureFlickEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureFlickEvt_Args args = new Efl.Gesture.IEventsGestureFlickEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureFlick);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_FLICK";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_FLICK";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureFlickEvt.</summary>
+    public void OnGestureFlickEvt(Efl.Gesture.IEventsGestureFlickEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_FLICK";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Event for zoom gesture</summary>
+    public event EventHandler<Efl.Gesture.IEventsGestureZoomEvt_Args> GestureZoomEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Gesture.IEventsGestureZoomEvt_Args args = new Efl.Gesture.IEventsGestureZoomEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureZoom);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_GESTURE_ZOOM";
+                AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_GESTURE_ZOOM";
+                RemoveNativeEventHandler(efl.Libs.Evas, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event GestureZoomEvt.</summary>
+    public void OnGestureZoomEvt(Efl.Gesture.IEventsGestureZoomEvt_Args e)
+    {
+        var key = "_EFL_EVENT_GESTURE_ZOOM";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Gesture.IEventsConcrete.efl_gesture_events_interface_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public class NativeMethods  : Efl.Eo.NativeClass
+    {
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Gesture.IEventsConcrete.efl_gesture_events_interface_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_gfx_arrangement.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_gfx_arrangement.eo.cs
new file mode 100644 (file)
index 0000000..fae907e
--- /dev/null
@@ -0,0 +1,310 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Gfx {
+
+/// <summary>API common to all UI container objects.</summary>
+[Efl.Gfx.IArrangementConcrete.NativeMethods]
+public interface IArrangement : 
+    Efl.Eo.IWrapper, IDisposable
+{
+    /// <summary>Alignment of the container within its bounds</summary>
+/// <param name="align_horiz">Horizontal alignment</param>
+/// <param name="align_vert">Vertical alignment</param>
+void GetContentAlign(out double align_horiz, out double align_vert);
+    /// <summary>Alignment of the container within its bounds</summary>
+/// <param name="align_horiz">Horizontal alignment</param>
+/// <param name="align_vert">Vertical alignment</param>
+void SetContentAlign(double align_horiz, double align_vert);
+    /// <summary>Padding between items contained in this object.</summary>
+/// <param name="pad_horiz">Horizontal padding</param>
+/// <param name="pad_vert">Vertical padding</param>
+/// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+void GetContentPadding(out double pad_horiz, out double pad_vert, out bool scalable);
+    /// <summary>Padding between items contained in this object.</summary>
+/// <param name="pad_horiz">Horizontal padding</param>
+/// <param name="pad_vert">Vertical padding</param>
+/// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+void SetContentPadding(double pad_horiz, double pad_vert, bool scalable);
+                }
+/// <summary>API common to all UI container objects.</summary>
+sealed public class IArrangementConcrete :
+    Efl.Eo.EoWrapper
+    , IArrangement
+    
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(IArrangementConcrete))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
+        efl_gfx_arrangement_interface_get();
+    /// <summary>Initializes a new instance of the <see cref="IArrangement"/> class.
+    /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
+    private IArrangementConcrete(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Alignment of the container within its bounds</summary>
+    /// <param name="align_horiz">Horizontal alignment</param>
+    /// <param name="align_vert">Vertical alignment</param>
+    public void GetContentAlign(out double align_horiz, out double align_vert) {
+                                                         Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_align_get_ptr.Value.Delegate(this.NativeHandle,out align_horiz, out align_vert);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Alignment of the container within its bounds</summary>
+    /// <param name="align_horiz">Horizontal alignment</param>
+    /// <param name="align_vert">Vertical alignment</param>
+    public void SetContentAlign(double align_horiz, double align_vert) {
+                                                         Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_align_set_ptr.Value.Delegate(this.NativeHandle,align_horiz, align_vert);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Padding between items contained in this object.</summary>
+    /// <param name="pad_horiz">Horizontal padding</param>
+    /// <param name="pad_vert">Vertical padding</param>
+    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+    public void GetContentPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
+                                                                                 Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_padding_get_ptr.Value.Delegate(this.NativeHandle,out pad_horiz, out pad_vert, out scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Padding between items contained in this object.</summary>
+    /// <param name="pad_horiz">Horizontal padding</param>
+    /// <param name="pad_vert">Vertical padding</param>
+    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+    public void SetContentPadding(double pad_horiz, double pad_vert, bool scalable) {
+                                                                                 Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_padding_set_ptr.Value.Delegate(this.NativeHandle,pad_horiz, pad_vert, scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Gfx.IArrangementConcrete.efl_gfx_arrangement_interface_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public class NativeMethods  : Efl.Eo.NativeClass
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Efl);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_gfx_arrangement_content_align_get_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_align_get_static_delegate = new efl_gfx_arrangement_content_align_get_delegate(content_align_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetContentAlign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_align_get_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_align_set_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_align_set_static_delegate = new efl_gfx_arrangement_content_align_set_delegate(content_align_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetContentAlign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_align_set_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_padding_get_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_padding_get_static_delegate = new efl_gfx_arrangement_content_padding_get_delegate(content_padding_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetContentPadding") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_padding_get_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_padding_set_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_padding_set_static_delegate = new efl_gfx_arrangement_content_padding_set_delegate(content_padding_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetContentPadding") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_padding_set_static_delegate) });
+            }
+
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Gfx.IArrangementConcrete.efl_gfx_arrangement_interface_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate void efl_gfx_arrangement_content_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
+
+        
+        public delegate void efl_gfx_arrangement_content_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_get_api_delegate> efl_gfx_arrangement_content_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_get_api_delegate>(Module, "efl_gfx_arrangement_content_align_get");
+
+        private static void content_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_align_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        align_horiz = default(double);        align_vert = default(double);                            
+                try
+                {
+                    ((IArrangement)ws.Target).GetContentAlign(out align_horiz, out align_vert);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_align_get_delegate efl_gfx_arrangement_content_align_get_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
+
+        
+        public delegate void efl_gfx_arrangement_content_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_set_api_delegate> efl_gfx_arrangement_content_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_set_api_delegate>(Module, "efl_gfx_arrangement_content_align_set");
+
+        private static void content_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_align_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((IArrangement)ws.Target).SetContentAlign(align_horiz, align_vert);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_align_set_delegate efl_gfx_arrangement_content_align_set_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
+
+        
+        public delegate void efl_gfx_arrangement_content_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_get_api_delegate> efl_gfx_arrangement_content_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_get_api_delegate>(Module, "efl_gfx_arrangement_content_padding_get");
+
+        private static void content_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_padding_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
+                try
+                {
+                    ((IArrangement)ws.Target).GetContentPadding(out pad_horiz, out pad_vert, out scalable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_padding_get_delegate efl_gfx_arrangement_content_padding_get_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
+
+        
+        public delegate void efl_gfx_arrangement_content_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_set_api_delegate> efl_gfx_arrangement_content_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_set_api_delegate>(Module, "efl_gfx_arrangement_content_padding_set");
+
+        private static void content_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_padding_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    
+                try
+                {
+                    ((IArrangement)ws.Target).SetContentPadding(pad_horiz, pad_vert, scalable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_padding_set_delegate efl_gfx_arrangement_content_padding_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
index a34ea32..bedf4d7 100644 (file)
@@ -46,10 +46,10 @@ double GetGrow();
 /// <param name="radius">How much to grow the original pixel data.</param>
 void SetGrow(double radius);
                             /// <summary>How much the original image should be &quot;grown&quot; before blurring.
-/// Growing is a combination of blur &amp; color levels adjustment. If the value of grow is positive, the pixels will appear more &quot;fat&quot; or &quot;bold&quot; than the original. If the value is negative, a shrink effect happens instead.
-/// 
-/// This is can be used efficiently to create glow effects.</summary>
-/// <value>How much to grow the original pixel data.</value>
+    /// Growing is a combination of blur &amp; color levels adjustment. If the value of grow is positive, the pixels will appear more &quot;fat&quot; or &quot;bold&quot; than the original. If the value is negative, a shrink effect happens instead.
+    /// 
+    /// This is can be used efficiently to create glow effects.</summary>
+    /// <value>How much to grow the original pixel data.</value>
     double Grow {
         get ;
         set ;
@@ -57,13 +57,13 @@ void SetGrow(double radius);
 }
 /// <summary>A simple API to apply blur effects.
 /// Those API&apos;s might use <see cref="Efl.Gfx.IFilter"/> internally. It might be necessary to also specify the color of the blur with <see cref="Efl.Gfx.IColor.GetColor"/>.</summary>
-sealed public class IBlurConcrete : 
-
-IBlur
+sealed public class IBlurConcrete :
+    Efl.Eo.EoWrapper
+    , IBlur
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -78,86 +78,12 @@ IBlur
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_blur_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IBlur"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IBlurConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IBlurConcrete()
+    private IBlurConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>The blur radius in pixels.</summary>
@@ -210,10 +136,10 @@ IBlur
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>How much the original image should be &quot;grown&quot; before blurring.
-/// Growing is a combination of blur &amp; color levels adjustment. If the value of grow is positive, the pixels will appear more &quot;fat&quot; or &quot;bold&quot; than the original. If the value is negative, a shrink effect happens instead.
-/// 
-/// This is can be used efficiently to create glow effects.</summary>
-/// <value>How much to grow the original pixel data.</value>
+    /// Growing is a combination of blur &amp; color levels adjustment. If the value of grow is positive, the pixels will appear more &quot;fat&quot; or &quot;bold&quot; than the original. If the value is negative, a shrink effect happens instead.
+    /// 
+    /// This is can be used efficiently to create glow effects.</summary>
+    /// <value>How much to grow the original pixel data.</value>
     public double Grow {
         get { return GetGrow(); }
         set { SetGrow(value); }
@@ -303,7 +229,7 @@ IBlur
             return Efl.Gfx.IBlurConcrete.efl_gfx_blur_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_blur_radius_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double rx,  out double ry);
@@ -316,13 +242,13 @@ IBlur
         private static void radius_get(System.IntPtr obj, System.IntPtr pd, out double rx, out double ry)
         {
             Eina.Log.Debug("function efl_gfx_blur_radius_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         rx = default(double);        ry = default(double);                            
                 try
                 {
-                    ((IBlur)wrapper).GetRadius(out rx, out ry);
+                    ((IBlur)ws.Target).GetRadius(out rx, out ry);
                 }
                 catch (Exception e)
                 {
@@ -351,13 +277,13 @@ IBlur
         private static void radius_set(System.IntPtr obj, System.IntPtr pd, double rx, double ry)
         {
             Eina.Log.Debug("function efl_gfx_blur_radius_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IBlur)wrapper).SetRadius(rx, ry);
+                    ((IBlur)ws.Target).SetRadius(rx, ry);
                 }
                 catch (Exception e)
                 {
@@ -386,13 +312,13 @@ IBlur
         private static void offset_get(System.IntPtr obj, System.IntPtr pd, out double ox, out double oy)
         {
             Eina.Log.Debug("function efl_gfx_blur_offset_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         ox = default(double);        oy = default(double);                            
                 try
                 {
-                    ((IBlur)wrapper).GetOffset(out ox, out oy);
+                    ((IBlur)ws.Target).GetOffset(out ox, out oy);
                 }
                 catch (Exception e)
                 {
@@ -421,13 +347,13 @@ IBlur
         private static void offset_set(System.IntPtr obj, System.IntPtr pd, double ox, double oy)
         {
             Eina.Log.Debug("function efl_gfx_blur_offset_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IBlur)wrapper).SetOffset(ox, oy);
+                    ((IBlur)ws.Target).SetOffset(ox, oy);
                 }
                 catch (Exception e)
                 {
@@ -456,13 +382,13 @@ IBlur
         private static double grow_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_blur_grow_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IBlur)wrapper).GetGrow();
+                    _ret_var = ((IBlur)ws.Target).GetGrow();
                 }
                 catch (Exception e)
                 {
@@ -492,13 +418,13 @@ IBlur
         private static void grow_set(System.IntPtr obj, System.IntPtr pd, double radius)
         {
             Eina.Log.Debug("function efl_gfx_blur_grow_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IBlur)wrapper).SetGrow(radius);
+                    ((IBlur)ws.Target).SetGrow(radius);
                 }
                 catch (Exception e)
                 {
@@ -516,7 +442,7 @@ IBlur
 
         private static efl_gfx_blur_grow_set_delegate efl_gfx_blur_grow_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 95a146a..75db86d 100644 (file)
@@ -102,43 +102,43 @@ bool SetBufferManaged(Eina.Slice slice, Eina.Size2D size, int stride, Efl.Gfx.Co
 /// <returns>The data slice. The memory pointer will be <c>null</c> in case of failure.</returns>
 Eina.Slice GetBufferManaged(int plane);
                                                         /// <summary>Rectangular size of the pixel buffer as allocated in memory.</summary>
-/// <value>Size of the buffer in pixels.</value>
+    /// <value>Size of the buffer in pixels.</value>
     Eina.Size2D BufferSize {
         get ;
         set ;
     }
     /// <summary>The colorspace defines how pixels are encoded in the image in memory.
-/// By default, images are encoded in 32-bit BGRA, ie. each pixel takes 4 bytes in memory, with each channel B,G,R,A encoding the color with values from 0 to 255.
-/// 
-/// All images used in EFL use alpha-premultipied BGRA values, which means that for each pixel, B &lt;= A, G &lt;= A and R &lt;= A.</summary>
-/// <value>Colorspace</value>
+    /// By default, images are encoded in 32-bit BGRA, ie. each pixel takes 4 bytes in memory, with each channel B,G,R,A encoding the color with values from 0 to 255.
+    /// 
+    /// All images used in EFL use alpha-premultipied BGRA values, which means that for each pixel, B &lt;= A, G &lt;= A and R &lt;= A.</summary>
+    /// <value>Colorspace</value>
     Efl.Gfx.Colorspace Colorspace {
         get ;
     }
     /// <summary>Indicates whether the alpha channel should be used.
-/// This does not indicate whether the image source file contains an alpha channel, only whether to respect it or discard it.</summary>
-/// <value>Whether to use alpha channel (<c>true</c>) data or not (<c>false</c>).</value>
+    /// This does not indicate whether the image source file contains an alpha channel, only whether to respect it or discard it.</summary>
+    /// <value>Whether to use alpha channel (<c>true</c>) data or not (<c>false</c>).</value>
     bool Alpha {
         get ;
         set ;
     }
     /// <summary>Length in bytes of one row of pixels in memory.
-/// Usually this will be equal to width * 4, with a plain BGRA image. This may return 0 if the stride is not applicable.
-/// 
-/// When applicable, this will include the <see cref="Efl.Gfx.IBuffer.GetBufferBorders"/> as well as potential extra padding.</summary>
-/// <value>Stride</value>
+    /// Usually this will be equal to width * 4, with a plain BGRA image. This may return 0 if the stride is not applicable.
+    /// 
+    /// When applicable, this will include the <see cref="Efl.Gfx.IBuffer.GetBufferBorders"/> as well as potential extra padding.</summary>
+    /// <value>Stride</value>
     int Stride {
         get ;
     }
 }
 /// <summary>Common APIs for all objects representing images and 2D pixel buffers.</summary>
-sealed public class IBufferConcrete : 
-
-IBuffer
+sealed public class IBufferConcrete :
+    Efl.Eo.EoWrapper
+    , IBuffer
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -153,86 +153,12 @@ IBuffer
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_buffer_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IBuffer"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IBufferConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IBufferConcrete()
+    private IBufferConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Rectangular size of the pixel buffer as allocated in memory.</summary>
@@ -380,31 +306,31 @@ IBuffer
                         return _ret_var;
  }
     /// <summary>Rectangular size of the pixel buffer as allocated in memory.</summary>
-/// <value>Size of the buffer in pixels.</value>
+    /// <value>Size of the buffer in pixels.</value>
     public Eina.Size2D BufferSize {
         get { return GetBufferSize(); }
         set { SetBufferSize(value); }
     }
     /// <summary>The colorspace defines how pixels are encoded in the image in memory.
-/// By default, images are encoded in 32-bit BGRA, ie. each pixel takes 4 bytes in memory, with each channel B,G,R,A encoding the color with values from 0 to 255.
-/// 
-/// All images used in EFL use alpha-premultipied BGRA values, which means that for each pixel, B &lt;= A, G &lt;= A and R &lt;= A.</summary>
-/// <value>Colorspace</value>
+    /// By default, images are encoded in 32-bit BGRA, ie. each pixel takes 4 bytes in memory, with each channel B,G,R,A encoding the color with values from 0 to 255.
+    /// 
+    /// All images used in EFL use alpha-premultipied BGRA values, which means that for each pixel, B &lt;= A, G &lt;= A and R &lt;= A.</summary>
+    /// <value>Colorspace</value>
     public Efl.Gfx.Colorspace Colorspace {
         get { return GetColorspace(); }
     }
     /// <summary>Indicates whether the alpha channel should be used.
-/// This does not indicate whether the image source file contains an alpha channel, only whether to respect it or discard it.</summary>
-/// <value>Whether to use alpha channel (<c>true</c>) data or not (<c>false</c>).</value>
+    /// This does not indicate whether the image source file contains an alpha channel, only whether to respect it or discard it.</summary>
+    /// <value>Whether to use alpha channel (<c>true</c>) data or not (<c>false</c>).</value>
     public bool Alpha {
         get { return GetAlpha(); }
         set { SetAlpha(value); }
     }
     /// <summary>Length in bytes of one row of pixels in memory.
-/// Usually this will be equal to width * 4, with a plain BGRA image. This may return 0 if the stride is not applicable.
-/// 
-/// When applicable, this will include the <see cref="Efl.Gfx.IBuffer.GetBufferBorders"/> as well as potential extra padding.</summary>
-/// <value>Stride</value>
+    /// Usually this will be equal to width * 4, with a plain BGRA image. This may return 0 if the stride is not applicable.
+    /// 
+    /// When applicable, this will include the <see cref="Efl.Gfx.IBuffer.GetBufferBorders"/> as well as potential extra padding.</summary>
+    /// <value>Stride</value>
     public int Stride {
         get { return GetStride(); }
     }
@@ -563,7 +489,7 @@ IBuffer
             return Efl.Gfx.IBufferConcrete.efl_gfx_buffer_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Size2D.NativeStruct efl_gfx_buffer_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -576,13 +502,13 @@ IBuffer
         private static Eina.Size2D.NativeStruct buffer_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_buffer_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IBuffer)wrapper).GetBufferSize();
+                    _ret_var = ((IBuffer)ws.Target).GetBufferSize();
                 }
                 catch (Exception e)
                 {
@@ -612,14 +538,14 @@ IBuffer
         private static void buffer_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_buffer_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_sz = sz;
                             
                 try
                 {
-                    ((IBuffer)wrapper).SetBufferSize(_in_sz);
+                    ((IBuffer)ws.Target).SetBufferSize(_in_sz);
                 }
                 catch (Exception e)
                 {
@@ -648,13 +574,13 @@ IBuffer
         private static Efl.Gfx.Colorspace colorspace_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_buffer_colorspace_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.Colorspace _ret_var = default(Efl.Gfx.Colorspace);
                 try
                 {
-                    _ret_var = ((IBuffer)wrapper).GetColorspace();
+                    _ret_var = ((IBuffer)ws.Target).GetColorspace();
                 }
                 catch (Exception e)
                 {
@@ -684,13 +610,13 @@ IBuffer
         private static bool alpha_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_buffer_alpha_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IBuffer)wrapper).GetAlpha();
+                    _ret_var = ((IBuffer)ws.Target).GetAlpha();
                 }
                 catch (Exception e)
                 {
@@ -720,13 +646,13 @@ IBuffer
         private static void alpha_set(System.IntPtr obj, System.IntPtr pd, bool alpha)
         {
             Eina.Log.Debug("function efl_gfx_buffer_alpha_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IBuffer)wrapper).SetAlpha(alpha);
+                    ((IBuffer)ws.Target).SetAlpha(alpha);
                 }
                 catch (Exception e)
                 {
@@ -755,13 +681,13 @@ IBuffer
         private static int stride_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_buffer_stride_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IBuffer)wrapper).GetStride();
+                    _ret_var = ((IBuffer)ws.Target).GetStride();
                 }
                 catch (Exception e)
                 {
@@ -791,13 +717,13 @@ IBuffer
         private static void buffer_borders_get(System.IntPtr obj, System.IntPtr pd, out uint l, out uint r, out uint t, out uint b)
         {
             Eina.Log.Debug("function efl_gfx_buffer_borders_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(uint);        r = default(uint);        t = default(uint);        b = default(uint);                                            
                 try
                 {
-                    ((IBuffer)wrapper).GetBufferBorders(out l, out r, out t, out b);
+                    ((IBuffer)ws.Target).GetBufferBorders(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -826,14 +752,14 @@ IBuffer
         private static void buffer_update_add(System.IntPtr obj, System.IntPtr pd, ref Eina.Rect.NativeStruct region)
         {
             Eina.Log.Debug("function efl_gfx_buffer_update_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_region = region;
                             
                 try
                 {
-                    ((IBuffer)wrapper).AddBufferUpdate(ref _in_region);
+                    ((IBuffer)ws.Target).AddBufferUpdate(ref _in_region);
                 }
                 catch (Exception e)
                 {
@@ -863,14 +789,14 @@ IBuffer
         private static Eina.RwSlice buffer_map(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.BufferAccessMode mode, ref Eina.Rect.NativeStruct region, Efl.Gfx.Colorspace cspace, int plane, out int stride)
         {
             Eina.Log.Debug("function efl_gfx_buffer_map was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Rect _in_region = region;
                                                                 stride = default(int);                                                    Eina.RwSlice _ret_var = default(Eina.RwSlice);
                 try
                 {
-                    _ret_var = ((IBuffer)wrapper).BufferMap(mode, ref _in_region, cspace, plane, out stride);
+                    _ret_var = ((IBuffer)ws.Target).BufferMap(mode, ref _in_region, cspace, plane, out stride);
                 }
                 catch (Exception e)
                 {
@@ -901,13 +827,13 @@ IBuffer
         private static bool buffer_unmap(System.IntPtr obj, System.IntPtr pd, Eina.RwSlice slice)
         {
             Eina.Log.Debug("function efl_gfx_buffer_unmap was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IBuffer)wrapper).BufferUnmap(slice);
+                    _ret_var = ((IBuffer)ws.Target).BufferUnmap(slice);
                 }
                 catch (Exception e)
                 {
@@ -937,15 +863,15 @@ IBuffer
         private static bool buffer_copy_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr slice, Eina.Size2D.NativeStruct size, int stride, Efl.Gfx.Colorspace cspace, int plane)
         {
             Eina.Log.Debug("function efl_gfx_buffer_copy_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_slice = Eina.PrimitiveConversion.PointerToManaged<Eina.Slice>(slice);
         Eina.Size2D _in_size = size;
                                                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IBuffer)wrapper).SetBufferCopy(_in_slice, _in_size, stride, cspace, plane);
+                    _ret_var = ((IBuffer)ws.Target).SetBufferCopy(_in_slice, _in_size, stride, cspace, plane);
                 }
                 catch (Exception e)
                 {
@@ -975,15 +901,15 @@ IBuffer
         private static bool buffer_managed_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr slice, Eina.Size2D.NativeStruct size, int stride, Efl.Gfx.Colorspace cspace, int plane)
         {
             Eina.Log.Debug("function efl_gfx_buffer_managed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_slice = Eina.PrimitiveConversion.PointerToManaged<Eina.Slice>(slice);
         Eina.Size2D _in_size = size;
                                                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IBuffer)wrapper).SetBufferManaged(_in_slice, _in_size, stride, cspace, plane);
+                    _ret_var = ((IBuffer)ws.Target).SetBufferManaged(_in_slice, _in_size, stride, cspace, plane);
                 }
                 catch (Exception e)
                 {
@@ -1013,13 +939,13 @@ IBuffer
         private static Eina.Slice buffer_managed_get(System.IntPtr obj, System.IntPtr pd, int plane)
         {
             Eina.Log.Debug("function efl_gfx_buffer_managed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Slice _ret_var = default(Eina.Slice);
                 try
                 {
-                    _ret_var = ((IBuffer)wrapper).GetBufferManaged(plane);
+                    _ret_var = ((IBuffer)ws.Target).GetBufferManaged(plane);
                 }
                 catch (Exception e)
                 {
@@ -1038,7 +964,7 @@ IBuffer
 
         private static efl_gfx_buffer_managed_get_delegate efl_gfx_buffer_managed_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index ce4f9d0..c1a77a2 100644 (file)
@@ -40,8 +40,8 @@ System.String GetColorCode();
 /// <param name="colorcode">the hex color code.</param>
 void SetColorCode(System.String colorcode);
                     /// <summary>Get hex color code of given Evas object. This returns a short lived hex color code string.
-/// (Since EFL 1.22)</summary>
-/// <value>the hex color code.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>the hex color code.</value>
     System.String ColorCode {
         get ;
         set ;
@@ -49,13 +49,13 @@ void SetColorCode(System.String colorcode);
 }
 /// <summary>Efl Gfx Color mixin class
 /// (Since EFL 1.22)</summary>
-sealed public class IColorConcrete : 
-
-IColor
+sealed public class IColorConcrete :
+    Efl.Eo.EoWrapper
+    , IColor
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -70,86 +70,12 @@ IColor
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_color_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IColor"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IColorConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IColorConcrete()
+    private IColorConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Retrieves the general/main color of the given Evas object.
@@ -190,8 +116,8 @@ IColor
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Get hex color code of given Evas object. This returns a short lived hex color code string.
-/// (Since EFL 1.22)</summary>
-/// <value>the hex color code.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>the hex color code.</value>
     public System.String ColorCode {
         get { return GetColorCode(); }
         set { SetColorCode(value); }
@@ -261,7 +187,7 @@ IColor
             return Efl.Gfx.IColorConcrete.efl_gfx_color_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out int r,  out int g,  out int b,  out int a);
@@ -274,13 +200,13 @@ IColor
         private static void color_get(System.IntPtr obj, System.IntPtr pd, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                            
                 try
                 {
-                    ((IColorConcrete)wrapper).GetColor(out r, out g, out b, out a);
+                    ((IColorConcrete)ws.Target).GetColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -309,13 +235,13 @@ IColor
         private static void color_set(System.IntPtr obj, System.IntPtr pd, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IColorConcrete)wrapper).SetColor(r, g, b, a);
+                    ((IColorConcrete)ws.Target).SetColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -344,13 +270,13 @@ IColor
         private static System.String color_code_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_color_code_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IColorConcrete)wrapper).GetColorCode();
+                    _ret_var = ((IColorConcrete)ws.Target).GetColorCode();
                 }
                 catch (Exception e)
                 {
@@ -380,13 +306,13 @@ IColor
         private static void color_code_set(System.IntPtr obj, System.IntPtr pd, System.String colorcode)
         {
             Eina.Log.Debug("function efl_gfx_color_code_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IColorConcrete)wrapper).SetColorCode(colorcode);
+                    ((IColorConcrete)ws.Target).SetColorCode(colorcode);
                 }
                 catch (Exception e)
                 {
@@ -404,7 +330,7 @@ IColor
 
         private static efl_gfx_color_code_set_delegate efl_gfx_color_code_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index bc8f3ce..a3fafd2 100644 (file)
@@ -87,13 +87,13 @@ void DelColorClass(System.String color_class);
 void ClearColorClass();
                             }
 /// <summary>Efl Gfx Color Class mixin class</summary>
-sealed public class IColorClassConcrete : 
-
-IColorClass
+sealed public class IColorClassConcrete :
+    Efl.Eo.EoWrapper
+    , IColorClass
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -108,86 +108,12 @@ IColorClass
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_color_class_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IColorClass"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IColorClassConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IColorClassConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IColorClassConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Get the color of color class.
@@ -382,7 +308,7 @@ IColorClass
             return Efl.Gfx.IColorClassConcrete.efl_gfx_color_class_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_gfx_color_class_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String color_class,  Efl.Gfx.ColorClassLayer layer,  out int r,  out int g,  out int b,  out int a);
@@ -395,13 +321,13 @@ IColorClass
         private static bool color_class_get(System.IntPtr obj, System.IntPtr pd, System.String color_class, Efl.Gfx.ColorClassLayer layer, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_color_class_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IColorClassConcrete)wrapper).GetColorClass(color_class, layer, out r, out g, out b, out a);
+                    _ret_var = ((IColorClassConcrete)ws.Target).GetColorClass(color_class, layer, out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -431,13 +357,13 @@ IColorClass
         private static bool color_class_set(System.IntPtr obj, System.IntPtr pd, System.String color_class, Efl.Gfx.ColorClassLayer layer, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_color_class_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IColorClassConcrete)wrapper).SetColorClass(color_class, layer, r, g, b, a);
+                    _ret_var = ((IColorClassConcrete)ws.Target).SetColorClass(color_class, layer, r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -467,13 +393,13 @@ IColorClass
         private static System.String color_class_code_get(System.IntPtr obj, System.IntPtr pd, System.String color_class, Efl.Gfx.ColorClassLayer layer)
         {
             Eina.Log.Debug("function efl_gfx_color_class_code_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IColorClassConcrete)wrapper).GetColorClassCode(color_class, layer);
+                    _ret_var = ((IColorClassConcrete)ws.Target).GetColorClassCode(color_class, layer);
                 }
                 catch (Exception e)
                 {
@@ -503,13 +429,13 @@ IColorClass
         private static bool color_class_code_set(System.IntPtr obj, System.IntPtr pd, System.String color_class, Efl.Gfx.ColorClassLayer layer, System.String colorcode)
         {
             Eina.Log.Debug("function efl_gfx_color_class_code_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IColorClassConcrete)wrapper).SetColorClassCode(color_class, layer, colorcode);
+                    _ret_var = ((IColorClassConcrete)ws.Target).SetColorClassCode(color_class, layer, colorcode);
                 }
                 catch (Exception e)
                 {
@@ -539,13 +465,13 @@ IColorClass
         private static System.String color_class_description_get(System.IntPtr obj, System.IntPtr pd, System.String color_class)
         {
             Eina.Log.Debug("function efl_gfx_color_class_description_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IColorClassConcrete)wrapper).GetColorClassDescription(color_class);
+                    _ret_var = ((IColorClassConcrete)ws.Target).GetColorClassDescription(color_class);
                 }
                 catch (Exception e)
                 {
@@ -575,13 +501,13 @@ IColorClass
         private static void color_class_del(System.IntPtr obj, System.IntPtr pd, System.String color_class)
         {
             Eina.Log.Debug("function efl_gfx_color_class_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IColorClassConcrete)wrapper).DelColorClass(color_class);
+                    ((IColorClassConcrete)ws.Target).DelColorClass(color_class);
                 }
                 catch (Exception e)
                 {
@@ -610,13 +536,13 @@ IColorClass
         private static void color_class_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_color_class_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IColorClassConcrete)wrapper).ClearColorClass();
+                    ((IColorClassConcrete)ws.Target).ClearColorClass();
                 }
                 catch (Exception e)
                 {
@@ -634,7 +560,7 @@ IColorClass
 
         private static efl_gfx_color_class_clear_delegate efl_gfx_color_class_clear_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index b262058..80eb4a0 100644 (file)
@@ -66,43 +66,43 @@ void SetScale(double scale);
     /// (Since EFL 1.22)</summary>
     event EventHandler<Efl.Gfx.IEntitySizeChangedEvt_Args> SizeChangedEvt;
     /// <summary>The 2D position of a canvas object.
-/// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D coordinate in pixel units.</value>
+    /// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D coordinate in pixel units.</value>
     Eina.Position2D Position {
         get ;
         set ;
     }
     /// <summary>The 2D size of a canvas object.
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D size in pixel units.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D size in pixel units.</value>
     Eina.Size2D Size {
         get ;
         set ;
     }
     /// <summary>Rectangular geometry that combines both position and size.
-/// (Since EFL 1.22)</summary>
-/// <value>The X,Y position and W,H size, in pixels.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The X,Y position and W,H size, in pixels.</value>
     Eina.Rect Geometry {
         get ;
         set ;
     }
     /// <summary>The visibility of a canvas object.
-/// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
-/// 
-/// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
+    /// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
+    /// 
+    /// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
     bool Visible {
         get ;
         set ;
     }
     /// <summary>The scaling factor of an object.
-/// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
-/// 
-/// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
-/// (Since EFL 1.22)</summary>
-/// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
+    /// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
+    /// 
+    /// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
     double Scale {
         get ;
         set ;
@@ -125,13 +125,13 @@ public class IEntitySizeChangedEvt_Args : EventArgs {
 }
 /// <summary>Efl graphics interface
 /// (Since EFL 1.22)</summary>
-sealed public class IEntityConcrete : 
-
-IEntity
+sealed public class IEntityConcrete :
+    Efl.Eo.EoWrapper
+    , IEntity
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -146,155 +146,12 @@ IEntity
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_entity_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IEntity"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IEntityConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IEntityConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IEntityConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Object&apos;s visibility state changed, the event value is the new state.
@@ -305,14 +162,13 @@ IEntity
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -368,13 +224,12 @@ IEntity
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
+                        Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -432,13 +287,12 @@ IEntity
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
+                        Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -568,43 +422,43 @@ IEntity
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>The 2D position of a canvas object.
-/// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D coordinate in pixel units.</value>
+    /// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D coordinate in pixel units.</value>
     public Eina.Position2D Position {
         get { return GetPosition(); }
         set { SetPosition(value); }
     }
     /// <summary>The 2D size of a canvas object.
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D size in pixel units.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D size in pixel units.</value>
     public Eina.Size2D Size {
         get { return GetSize(); }
         set { SetSize(value); }
     }
     /// <summary>Rectangular geometry that combines both position and size.
-/// (Since EFL 1.22)</summary>
-/// <value>The X,Y position and W,H size, in pixels.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The X,Y position and W,H size, in pixels.</value>
     public Eina.Rect Geometry {
         get { return GetGeometry(); }
         set { SetGeometry(value); }
     }
     /// <summary>The visibility of a canvas object.
-/// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
-/// 
-/// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
+    /// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
+    /// 
+    /// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
     public bool Visible {
         get { return GetVisible(); }
         set { SetVisible(value); }
     }
     /// <summary>The scaling factor of an object.
-/// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
-/// 
-/// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
-/// (Since EFL 1.22)</summary>
-/// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
+    /// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
+    /// 
+    /// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
     public double Scale {
         get { return GetScale(); }
         set { SetScale(value); }
@@ -734,7 +588,7 @@ IEntity
             return Efl.Gfx.IEntityConcrete.efl_gfx_entity_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Position2D.NativeStruct efl_gfx_entity_position_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -747,13 +601,13 @@ IEntity
         private static Eina.Position2D.NativeStruct position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((IEntity)wrapper).GetPosition();
+                    _ret_var = ((IEntity)ws.Target).GetPosition();
                 }
                 catch (Exception e)
                 {
@@ -783,14 +637,14 @@ IEntity
         private static void position_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((IEntity)wrapper).SetPosition(_in_pos);
+                    ((IEntity)ws.Target).SetPosition(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -819,13 +673,13 @@ IEntity
         private static Eina.Size2D.NativeStruct size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IEntity)wrapper).GetSize();
+                    _ret_var = ((IEntity)ws.Target).GetSize();
                 }
                 catch (Exception e)
                 {
@@ -855,14 +709,14 @@ IEntity
         private static void size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((IEntity)wrapper).SetSize(_in_size);
+                    ((IEntity)ws.Target).SetSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -891,13 +745,13 @@ IEntity
         private static Eina.Rect.NativeStruct geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((IEntity)wrapper).GetGeometry();
+                    _ret_var = ((IEntity)ws.Target).GetGeometry();
                 }
                 catch (Exception e)
                 {
@@ -927,14 +781,14 @@ IEntity
         private static void geometry_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                             
                 try
                 {
-                    ((IEntity)wrapper).SetGeometry(_in_rect);
+                    ((IEntity)ws.Target).SetGeometry(_in_rect);
                 }
                 catch (Exception e)
                 {
@@ -963,13 +817,13 @@ IEntity
         private static bool visible_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IEntity)wrapper).GetVisible();
+                    _ret_var = ((IEntity)ws.Target).GetVisible();
                 }
                 catch (Exception e)
                 {
@@ -999,13 +853,13 @@ IEntity
         private static void visible_set(System.IntPtr obj, System.IntPtr pd, bool v)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IEntity)wrapper).SetVisible(v);
+                    ((IEntity)ws.Target).SetVisible(v);
                 }
                 catch (Exception e)
                 {
@@ -1034,13 +888,13 @@ IEntity
         private static double scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IEntity)wrapper).GetScale();
+                    _ret_var = ((IEntity)ws.Target).GetScale();
                 }
                 catch (Exception e)
                 {
@@ -1070,13 +924,13 @@ IEntity
         private static void scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IEntity)wrapper).SetScale(scale);
+                    ((IEntity)ws.Target).SetScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -1094,7 +948,7 @@ IEntity
 
         private static efl_gfx_entity_scale_set_delegate efl_gfx_entity_scale_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index dfe37bb..0859a0a 100644 (file)
@@ -43,34 +43,34 @@ Eina.Rect GetFill();
 /// <param name="fill">The top-left corner to start drawing from as well as the size at which the bound image will be displayed.</param>
 void SetFill(Eina.Rect fill);
                     /// <summary>Binds the object&apos;s <see cref="Efl.Gfx.IFill.Fill"/> property to its actual geometry.
-/// If <c>true</c>, then every time the object is resized, it will automatically trigger a call to <see cref="Efl.Gfx.IFill.SetFill"/> with the new size (and 0, 0 as source image&apos;s origin), so the image will cover the whole object&apos;s area.
-/// 
-/// This property takes precedence over <see cref="Efl.Gfx.IFill.Fill"/>. If set to <c>false</c>, then <see cref="Efl.Gfx.IFill.Fill"/> should be set.
-/// 
-/// This flag is <c>true</c> by default (used to be <c>false</c> with the old APIs, and was known as &quot;filled&quot;).</summary>
-/// <value><c>true</c> to make the fill property follow object size or <c>false</c> otherwise.</value>
+    /// If <c>true</c>, then every time the object is resized, it will automatically trigger a call to <see cref="Efl.Gfx.IFill.SetFill"/> with the new size (and 0, 0 as source image&apos;s origin), so the image will cover the whole object&apos;s area.
+    /// 
+    /// This property takes precedence over <see cref="Efl.Gfx.IFill.Fill"/>. If set to <c>false</c>, then <see cref="Efl.Gfx.IFill.Fill"/> should be set.
+    /// 
+    /// This flag is <c>true</c> by default (used to be <c>false</c> with the old APIs, and was known as &quot;filled&quot;).</summary>
+    /// <value><c>true</c> to make the fill property follow object size or <c>false</c> otherwise.</value>
     bool FillAuto {
         get ;
         set ;
     }
     /// <summary>Specifies how to tile an image to fill its rectangle geometry.
-/// Note that if <c>w</c> or <c>h</c> are smaller than the dimensions of the object, the displayed image will be tiled around the object&apos;s area. To have only one copy of the bound image drawn, <c>x</c> and <c>y</c> must be 0 and <c>w</c> and <c>h</c> need to be the exact width and height of the image object itself, respectively.
-/// 
-/// Setting this property will reset the <see cref="Efl.Gfx.IFill.FillAuto"/> to <c>false</c>.</summary>
-/// <value>The top-left corner to start drawing from as well as the size at which the bound image will be displayed.</value>
+    /// Note that if <c>w</c> or <c>h</c> are smaller than the dimensions of the object, the displayed image will be tiled around the object&apos;s area. To have only one copy of the bound image drawn, <c>x</c> and <c>y</c> must be 0 and <c>w</c> and <c>h</c> need to be the exact width and height of the image object itself, respectively.
+    /// 
+    /// Setting this property will reset the <see cref="Efl.Gfx.IFill.FillAuto"/> to <c>false</c>.</summary>
+    /// <value>The top-left corner to start drawing from as well as the size at which the bound image will be displayed.</value>
     Eina.Rect Fill {
         get ;
         set ;
     }
 }
 /// <summary>Efl graphics fill interface</summary>
-sealed public class IFillConcrete : 
-
-IFill
+sealed public class IFillConcrete :
+    Efl.Eo.EoWrapper
+    , IFill
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -85,86 +85,12 @@ IFill
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_fill_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IFill"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IFillConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IFillConcrete()
+    private IFillConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Binds the object&apos;s <see cref="Efl.Gfx.IFill.Fill"/> property to its actual geometry.
@@ -211,21 +137,21 @@ IFill
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Binds the object&apos;s <see cref="Efl.Gfx.IFill.Fill"/> property to its actual geometry.
-/// If <c>true</c>, then every time the object is resized, it will automatically trigger a call to <see cref="Efl.Gfx.IFill.SetFill"/> with the new size (and 0, 0 as source image&apos;s origin), so the image will cover the whole object&apos;s area.
-/// 
-/// This property takes precedence over <see cref="Efl.Gfx.IFill.Fill"/>. If set to <c>false</c>, then <see cref="Efl.Gfx.IFill.Fill"/> should be set.
-/// 
-/// This flag is <c>true</c> by default (used to be <c>false</c> with the old APIs, and was known as &quot;filled&quot;).</summary>
-/// <value><c>true</c> to make the fill property follow object size or <c>false</c> otherwise.</value>
+    /// If <c>true</c>, then every time the object is resized, it will automatically trigger a call to <see cref="Efl.Gfx.IFill.SetFill"/> with the new size (and 0, 0 as source image&apos;s origin), so the image will cover the whole object&apos;s area.
+    /// 
+    /// This property takes precedence over <see cref="Efl.Gfx.IFill.Fill"/>. If set to <c>false</c>, then <see cref="Efl.Gfx.IFill.Fill"/> should be set.
+    /// 
+    /// This flag is <c>true</c> by default (used to be <c>false</c> with the old APIs, and was known as &quot;filled&quot;).</summary>
+    /// <value><c>true</c> to make the fill property follow object size or <c>false</c> otherwise.</value>
     public bool FillAuto {
         get { return GetFillAuto(); }
         set { SetFillAuto(value); }
     }
     /// <summary>Specifies how to tile an image to fill its rectangle geometry.
-/// Note that if <c>w</c> or <c>h</c> are smaller than the dimensions of the object, the displayed image will be tiled around the object&apos;s area. To have only one copy of the bound image drawn, <c>x</c> and <c>y</c> must be 0 and <c>w</c> and <c>h</c> need to be the exact width and height of the image object itself, respectively.
-/// 
-/// Setting this property will reset the <see cref="Efl.Gfx.IFill.FillAuto"/> to <c>false</c>.</summary>
-/// <value>The top-left corner to start drawing from as well as the size at which the bound image will be displayed.</value>
+    /// Note that if <c>w</c> or <c>h</c> are smaller than the dimensions of the object, the displayed image will be tiled around the object&apos;s area. To have only one copy of the bound image drawn, <c>x</c> and <c>y</c> must be 0 and <c>w</c> and <c>h</c> need to be the exact width and height of the image object itself, respectively.
+    /// 
+    /// Setting this property will reset the <see cref="Efl.Gfx.IFill.FillAuto"/> to <c>false</c>.</summary>
+    /// <value>The top-left corner to start drawing from as well as the size at which the bound image will be displayed.</value>
     public Eina.Rect Fill {
         get { return GetFill(); }
         set { SetFill(value); }
@@ -295,7 +221,7 @@ IFill
             return Efl.Gfx.IFillConcrete.efl_gfx_fill_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_gfx_fill_auto_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -308,13 +234,13 @@ IFill
         private static bool fill_auto_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_fill_auto_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IFill)wrapper).GetFillAuto();
+                    _ret_var = ((IFill)ws.Target).GetFillAuto();
                 }
                 catch (Exception e)
                 {
@@ -344,13 +270,13 @@ IFill
         private static void fill_auto_set(System.IntPtr obj, System.IntPtr pd, bool filled)
         {
             Eina.Log.Debug("function efl_gfx_fill_auto_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IFill)wrapper).SetFillAuto(filled);
+                    ((IFill)ws.Target).SetFillAuto(filled);
                 }
                 catch (Exception e)
                 {
@@ -379,13 +305,13 @@ IFill
         private static Eina.Rect.NativeStruct fill_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((IFill)wrapper).GetFill();
+                    _ret_var = ((IFill)ws.Target).GetFill();
                 }
                 catch (Exception e)
                 {
@@ -415,14 +341,14 @@ IFill
         private static void fill_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct fill)
         {
             Eina.Log.Debug("function efl_gfx_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_fill = fill;
                             
                 try
                 {
-                    ((IFill)wrapper).SetFill(_in_fill);
+                    ((IFill)ws.Target).SetFill(_in_fill);
                 }
                 catch (Exception e)
                 {
@@ -440,7 +366,7 @@ IFill
 
         private static efl_gfx_fill_set_delegate efl_gfx_fill_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 2f181d8..f1d626c 100644 (file)
@@ -87,13 +87,13 @@ void SetFilterData(System.String name, System.String value, bool execute);
 /// Filters are programmable effects that run whenever the object is rendered on its canvas. The program language is Lua and a complete reference can be found under &quot;EFL Graphics Filters&quot;.
 /// 
 /// This was a beta feature since 1.15.</summary>
-sealed public class IFilterConcrete : 
-
-IFilter
+sealed public class IFilterConcrete :
+    Efl.Eo.EoWrapper
+    , IFilter
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -108,86 +108,12 @@ IFilter
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_filter_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IFilter"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IFilterConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IFilterConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IFilterConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Gets the code of the filter program set on this object. May be <c>null</c>.</summary>
@@ -398,7 +324,7 @@ IFilter
             return Efl.Gfx.IFilterConcrete.efl_gfx_filter_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_filter_program_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String code, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String name);
@@ -411,15 +337,15 @@ IFilter
         private static void filter_program_get(System.IntPtr obj, System.IntPtr pd, out System.String code, out System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_program_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         System.String _out_code = default(System.String);
         System.String _out_name = default(System.String);
                             
                 try
                 {
-                    ((IFilter)wrapper).GetFilterProgram(out _out_code, out _out_name);
+                    ((IFilter)ws.Target).GetFilterProgram(out _out_code, out _out_name);
                 }
                 catch (Exception e)
                 {
@@ -450,13 +376,13 @@ IFilter
         private static void filter_program_set(System.IntPtr obj, System.IntPtr pd, System.String code, System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_program_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IFilter)wrapper).SetFilterProgram(code, name);
+                    ((IFilter)ws.Target).SetFilterProgram(code, name);
                 }
                 catch (Exception e)
                 {
@@ -485,15 +411,15 @@ IFilter
         private static void filter_state_get(System.IntPtr obj, System.IntPtr pd, out System.String cur_state, out double cur_val, out System.String next_state, out double next_val, out double pos)
         {
             Eina.Log.Debug("function efl_gfx_filter_state_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                 System.String _out_cur_state = default(System.String);
         cur_val = default(double);        System.String _out_next_state = default(System.String);
         next_val = default(double);        pos = default(double);                                                    
                 try
                 {
-                    ((IFilter)wrapper).GetFilterState(out _out_cur_state, out cur_val, out _out_next_state, out next_val, out pos);
+                    ((IFilter)ws.Target).GetFilterState(out _out_cur_state, out cur_val, out _out_next_state, out next_val, out pos);
                 }
                 catch (Exception e)
                 {
@@ -524,13 +450,13 @@ IFilter
         private static void filter_state_set(System.IntPtr obj, System.IntPtr pd, System.String cur_state, double cur_val, System.String next_state, double next_val, double pos)
         {
             Eina.Log.Debug("function efl_gfx_filter_state_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((IFilter)wrapper).SetFilterState(cur_state, cur_val, next_state, next_val, pos);
+                    ((IFilter)ws.Target).SetFilterState(cur_state, cur_val, next_state, next_val, pos);
                 }
                 catch (Exception e)
                 {
@@ -559,13 +485,13 @@ IFilter
         private static void filter_padding_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_filter_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((IFilter)wrapper).GetFilterPadding(out l, out r, out t, out b);
+                    ((IFilter)ws.Target).GetFilterPadding(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -594,13 +520,13 @@ IFilter
         private static Efl.Gfx.IEntity filter_source_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((IFilter)wrapper).GetFilterSource(name);
+                    _ret_var = ((IFilter)ws.Target).GetFilterSource(name);
                 }
                 catch (Exception e)
                 {
@@ -630,13 +556,13 @@ IFilter
         private static void filter_source_set(System.IntPtr obj, System.IntPtr pd, System.String name, Efl.Gfx.IEntity source)
         {
             Eina.Log.Debug("function efl_gfx_filter_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IFilter)wrapper).SetFilterSource(name, source);
+                    ((IFilter)ws.Target).SetFilterSource(name, source);
                 }
                 catch (Exception e)
                 {
@@ -665,14 +591,14 @@ IFilter
         private static void filter_data_get(System.IntPtr obj, System.IntPtr pd, System.String name, out System.String value, out bool execute)
         {
             Eina.Log.Debug("function efl_gfx_filter_data_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         System.String _out_value = default(System.String);
         execute = default(bool);                                    
                 try
                 {
-                    ((IFilter)wrapper).GetFilterData(name, out _out_value, out execute);
+                    ((IFilter)ws.Target).GetFilterData(name, out _out_value, out execute);
                 }
                 catch (Exception e)
                 {
@@ -702,13 +628,13 @@ IFilter
         private static void filter_data_set(System.IntPtr obj, System.IntPtr pd, System.String name, System.String value, bool execute)
         {
             Eina.Log.Debug("function efl_gfx_filter_data_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((IFilter)wrapper).SetFilterData(name, value, execute);
+                    ((IFilter)ws.Target).SetFilterData(name, value, execute);
                 }
                 catch (Exception e)
                 {
@@ -726,7 +652,7 @@ IFilter
 
         private static efl_gfx_filter_data_set_delegate efl_gfx_filter_data_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index c3a6445..7c3da07 100644 (file)
@@ -55,53 +55,53 @@ int GetLoopCount();
 /// <returns>Duration in seconds</returns>
 double GetFrameDuration(int start_frame, int frame_num);
                                 /// <summary>Check if an object can be animated (has multiple frames).
-/// This will be <c>true</c> for animated object for instance but <c>false</c> for a single frame object.</summary>
-/// <value><c>true</c> if the object is animated</value>
+    /// This will be <c>true</c> for animated object for instance but <c>false</c> for a single frame object.</summary>
+    /// <value><c>true</c> if the object is animated</value>
     bool Animated {
         get ;
     }
     /// <summary>Index of the current frame of an animated object.
-/// Ranges from 1 to <see cref="Efl.Gfx.IFrameController.GetFrameCount"/>. Valid only if <see cref="Efl.Gfx.IFrameController.GetAnimated"/>.</summary>
-/// <value>The index of current frame.</value>
+    /// Ranges from 1 to <see cref="Efl.Gfx.IFrameController.GetFrameCount"/>. Valid only if <see cref="Efl.Gfx.IFrameController.GetAnimated"/>.</summary>
+    /// <value>The index of current frame.</value>
     int Frame {
         get ;
         set ;
     }
     /// <summary>Get the total number of frames of the object, if animated.
-/// Returns -1 if not animated.</summary>
-/// <value>The number of frames in the animated object.</value>
+    /// Returns -1 if not animated.</summary>
+    /// <value>The number of frames in the animated object.</value>
     int FrameCount {
         get ;
     }
     /// <summary>Get the kind of looping the animated object does.
-/// This returns the kind of looping the animated object wants to do.
-/// 
-/// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>, you should display frames in a sequence like: 1-&gt;2-&gt;3-&gt;1-&gt;2-&gt;3-&gt;1...
-/// 
-/// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Pingpong"/>, it is better to display frames in a sequence like: 1-&gt;2-&gt;3-&gt;2-&gt;1-&gt;2-&gt;3-&gt;1...
-/// 
-/// The default type is <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>.</summary>
-/// <value>Loop type of the animated object.</value>
+    /// This returns the kind of looping the animated object wants to do.
+    /// 
+    /// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>, you should display frames in a sequence like: 1-&gt;2-&gt;3-&gt;1-&gt;2-&gt;3-&gt;1...
+    /// 
+    /// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Pingpong"/>, it is better to display frames in a sequence like: 1-&gt;2-&gt;3-&gt;2-&gt;1-&gt;2-&gt;3-&gt;1...
+    /// 
+    /// The default type is <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>.</summary>
+    /// <value>Loop type of the animated object.</value>
     Efl.Gfx.FrameControllerLoopHint LoopType {
         get ;
     }
     /// <summary>Get the number times the animation of the object loops.
-/// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame).
-/// 
-/// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops).</summary>
-/// <value>The number of loop of an animated object.</value>
+    /// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame).
+    /// 
+    /// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops).</summary>
+    /// <value>The number of loop of an animated object.</value>
     int LoopCount {
         get ;
     }
 }
 /// <summary>Efl frame controller of frame based animated object interface.</summary>
-sealed public class IFrameControllerConcrete : 
-
-IFrameController
+sealed public class IFrameControllerConcrete :
+    Efl.Eo.EoWrapper
+    , IFrameController
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -116,86 +116,12 @@ IFrameController
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_frame_controller_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IFrameController"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IFrameControllerConcrete(System.IntPtr raw)
+    private IFrameControllerConcrete(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IFrameControllerConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Check if an object can be animated (has multiple frames).
@@ -267,41 +193,41 @@ IFrameController
                                         return _ret_var;
  }
     /// <summary>Check if an object can be animated (has multiple frames).
-/// This will be <c>true</c> for animated object for instance but <c>false</c> for a single frame object.</summary>
-/// <value><c>true</c> if the object is animated</value>
+    /// This will be <c>true</c> for animated object for instance but <c>false</c> for a single frame object.</summary>
+    /// <value><c>true</c> if the object is animated</value>
     public bool Animated {
         get { return GetAnimated(); }
     }
     /// <summary>Index of the current frame of an animated object.
-/// Ranges from 1 to <see cref="Efl.Gfx.IFrameController.GetFrameCount"/>. Valid only if <see cref="Efl.Gfx.IFrameController.GetAnimated"/>.</summary>
-/// <value>The index of current frame.</value>
+    /// Ranges from 1 to <see cref="Efl.Gfx.IFrameController.GetFrameCount"/>. Valid only if <see cref="Efl.Gfx.IFrameController.GetAnimated"/>.</summary>
+    /// <value>The index of current frame.</value>
     public int Frame {
         get { return GetFrame(); }
         set { SetFrame(value); }
     }
     /// <summary>Get the total number of frames of the object, if animated.
-/// Returns -1 if not animated.</summary>
-/// <value>The number of frames in the animated object.</value>
+    /// Returns -1 if not animated.</summary>
+    /// <value>The number of frames in the animated object.</value>
     public int FrameCount {
         get { return GetFrameCount(); }
     }
     /// <summary>Get the kind of looping the animated object does.
-/// This returns the kind of looping the animated object wants to do.
-/// 
-/// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>, you should display frames in a sequence like: 1-&gt;2-&gt;3-&gt;1-&gt;2-&gt;3-&gt;1...
-/// 
-/// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Pingpong"/>, it is better to display frames in a sequence like: 1-&gt;2-&gt;3-&gt;2-&gt;1-&gt;2-&gt;3-&gt;1...
-/// 
-/// The default type is <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>.</summary>
-/// <value>Loop type of the animated object.</value>
+    /// This returns the kind of looping the animated object wants to do.
+    /// 
+    /// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>, you should display frames in a sequence like: 1-&gt;2-&gt;3-&gt;1-&gt;2-&gt;3-&gt;1...
+    /// 
+    /// If it returns <see cref="Efl.Gfx.FrameControllerLoopHint.Pingpong"/>, it is better to display frames in a sequence like: 1-&gt;2-&gt;3-&gt;2-&gt;1-&gt;2-&gt;3-&gt;1...
+    /// 
+    /// The default type is <see cref="Efl.Gfx.FrameControllerLoopHint.Loop"/>.</summary>
+    /// <value>Loop type of the animated object.</value>
     public Efl.Gfx.FrameControllerLoopHint LoopType {
         get { return GetLoopType(); }
     }
     /// <summary>Get the number times the animation of the object loops.
-/// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame).
-/// 
-/// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops).</summary>
-/// <value>The number of loop of an animated object.</value>
+    /// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame).
+    /// 
+    /// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops).</summary>
+    /// <value>The number of loop of an animated object.</value>
     public int LoopCount {
         get { return GetLoopCount(); }
     }
@@ -400,7 +326,7 @@ IFrameController
             return Efl.Gfx.IFrameControllerConcrete.efl_gfx_frame_controller_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_gfx_frame_controller_animated_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -413,13 +339,13 @@ IFrameController
         private static bool animated_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_animated_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IFrameController)wrapper).GetAnimated();
+                    _ret_var = ((IFrameController)ws.Target).GetAnimated();
                 }
                 catch (Exception e)
                 {
@@ -449,13 +375,13 @@ IFrameController
         private static int frame_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_frame_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IFrameController)wrapper).GetFrame();
+                    _ret_var = ((IFrameController)ws.Target).GetFrame();
                 }
                 catch (Exception e)
                 {
@@ -485,13 +411,13 @@ IFrameController
         private static bool frame_set(System.IntPtr obj, System.IntPtr pd, int frame_index)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_frame_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IFrameController)wrapper).SetFrame(frame_index);
+                    _ret_var = ((IFrameController)ws.Target).SetFrame(frame_index);
                 }
                 catch (Exception e)
                 {
@@ -521,13 +447,13 @@ IFrameController
         private static int frame_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_frame_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IFrameController)wrapper).GetFrameCount();
+                    _ret_var = ((IFrameController)ws.Target).GetFrameCount();
                 }
                 catch (Exception e)
                 {
@@ -557,13 +483,13 @@ IFrameController
         private static Efl.Gfx.FrameControllerLoopHint loop_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_loop_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.FrameControllerLoopHint _ret_var = default(Efl.Gfx.FrameControllerLoopHint);
                 try
                 {
-                    _ret_var = ((IFrameController)wrapper).GetLoopType();
+                    _ret_var = ((IFrameController)ws.Target).GetLoopType();
                 }
                 catch (Exception e)
                 {
@@ -593,13 +519,13 @@ IFrameController
         private static int loop_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_loop_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IFrameController)wrapper).GetLoopCount();
+                    _ret_var = ((IFrameController)ws.Target).GetLoopCount();
                 }
                 catch (Exception e)
                 {
@@ -629,13 +555,13 @@ IFrameController
         private static double frame_duration_get(System.IntPtr obj, System.IntPtr pd, int start_frame, int frame_num)
         {
             Eina.Log.Debug("function efl_gfx_frame_controller_frame_duration_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IFrameController)wrapper).GetFrameDuration(start_frame, frame_num);
+                    _ret_var = ((IFrameController)ws.Target).GetFrameDuration(start_frame, frame_num);
                 }
                 catch (Exception e)
                 {
@@ -654,7 +580,7 @@ IFrameController
 
         private static efl_gfx_frame_controller_frame_duration_get_delegate efl_gfx_frame_controller_frame_duration_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 28a731d..8672e41 100644 (file)
@@ -29,20 +29,20 @@ Efl.Gfx.GradientSpread GetSpread();
 /// <param name="s">Spread type to be used</param>
 void SetSpread(Efl.Gfx.GradientSpread s);
                     /// <summary>Returns the spread method use by this gradient. The default is EFL_GFX_GRADIENT_SPREAD_PAD.</summary>
-/// <value>Spread type to be used</value>
+    /// <value>Spread type to be used</value>
     Efl.Gfx.GradientSpread Spread {
         get ;
         set ;
     }
 }
 /// <summary>Efl graphics gradient interface</summary>
-sealed public class IGradientConcrete : 
-
-IGradient
+sealed public class IGradientConcrete :
+    Efl.Eo.EoWrapper
+    , IGradient
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -57,86 +57,12 @@ IGradient
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_gradient_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IGradient"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IGradientConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IGradientConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IGradientConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Get the list of color stops.</summary>
@@ -171,7 +97,7 @@ IGradient
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Returns the spread method use by this gradient. The default is EFL_GFX_GRADIENT_SPREAD_PAD.</summary>
-/// <value>Spread type to be used</value>
+    /// <value>Spread type to be used</value>
     public Efl.Gfx.GradientSpread Spread {
         get { return GetSpread(); }
         set { SetSpread(value); }
@@ -241,7 +167,7 @@ IGradient
             return Efl.Gfx.IGradientConcrete.efl_gfx_gradient_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_gradient_stop_get_delegate(System.IntPtr obj, System.IntPtr pd,  out System.IntPtr colors,  out uint length);
@@ -254,14 +180,14 @@ IGradient
         private static void stop_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr colors, out uint length)
         {
             Eina.Log.Debug("function efl_gfx_gradient_stop_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Gfx.GradientStop _out_colors = default(Efl.Gfx.GradientStop);
         length = default(uint);                            
                 try
                 {
-                    ((IGradient)wrapper).GetStop(out _out_colors, out length);
+                    ((IGradient)ws.Target).GetStop(out _out_colors, out length);
                 }
                 catch (Exception e)
                 {
@@ -291,14 +217,14 @@ IGradient
         private static void stop_set(System.IntPtr obj, System.IntPtr pd, ref Efl.Gfx.GradientStop.NativeStruct colors, uint length)
         {
             Eina.Log.Debug("function efl_gfx_gradient_stop_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Gfx.GradientStop _in_colors = colors;
                                                     
                 try
                 {
-                    ((IGradient)wrapper).SetStop(ref _in_colors, length);
+                    ((IGradient)ws.Target).SetStop(ref _in_colors, length);
                 }
                 catch (Exception e)
                 {
@@ -328,13 +254,13 @@ IGradient
         private static Efl.Gfx.GradientSpread spread_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_gradient_spread_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.GradientSpread _ret_var = default(Efl.Gfx.GradientSpread);
                 try
                 {
-                    _ret_var = ((IGradient)wrapper).GetSpread();
+                    _ret_var = ((IGradient)ws.Target).GetSpread();
                 }
                 catch (Exception e)
                 {
@@ -364,13 +290,13 @@ IGradient
         private static void spread_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.GradientSpread s)
         {
             Eina.Log.Debug("function efl_gfx_gradient_spread_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IGradient)wrapper).SetSpread(s);
+                    ((IGradient)ws.Target).SetSpread(s);
                 }
                 catch (Exception e)
                 {
@@ -388,7 +314,7 @@ IGradient
 
         private static efl_gfx_gradient_spread_set_delegate efl_gfx_gradient_spread_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index ef1a920..c29e4d9 100644 (file)
@@ -33,13 +33,13 @@ void GetEnd(out double x, out double y);
 void SetEnd(double x, double y);
                 }
 /// <summary>Efl graphics gradient linear interface</summary>
-sealed public class IGradientLinearConcrete : 
-
-IGradientLinear
+sealed public class IGradientLinearConcrete :
+    Efl.Eo.EoWrapper
+    , IGradientLinear
     , Efl.Gfx.IGradient
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -54,86 +54,12 @@ IGradientLinear
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_gradient_linear_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IGradientLinear"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IGradientLinearConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IGradientLinearConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IGradientLinearConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Gets the start point of this linear gradient.</summary>
@@ -196,7 +122,7 @@ IGradientLinear
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Returns the spread method use by this gradient. The default is EFL_GFX_GRADIENT_SPREAD_PAD.</summary>
-/// <value>Spread type to be used</value>
+    /// <value>Spread type to be used</value>
     public Efl.Gfx.GradientSpread Spread {
         get { return GetSpread(); }
         set { SetSpread(value); }
@@ -306,7 +232,7 @@ IGradientLinear
             return Efl.Gfx.IGradientLinearConcrete.efl_gfx_gradient_linear_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_gradient_linear_start_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double x,  out double y);
@@ -319,13 +245,13 @@ IGradientLinear
         private static void start_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_linear_start_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IGradientLinear)wrapper).GetStart(out x, out y);
+                    ((IGradientLinear)ws.Target).GetStart(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -354,13 +280,13 @@ IGradientLinear
         private static void start_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_linear_start_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IGradientLinear)wrapper).SetStart(x, y);
+                    ((IGradientLinear)ws.Target).SetStart(x, y);
                 }
                 catch (Exception e)
                 {
@@ -389,13 +315,13 @@ IGradientLinear
         private static void end_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_linear_end_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IGradientLinear)wrapper).GetEnd(out x, out y);
+                    ((IGradientLinear)ws.Target).GetEnd(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -424,13 +350,13 @@ IGradientLinear
         private static void end_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_linear_end_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IGradientLinear)wrapper).SetEnd(x, y);
+                    ((IGradientLinear)ws.Target).SetEnd(x, y);
                 }
                 catch (Exception e)
                 {
@@ -459,14 +385,14 @@ IGradientLinear
         private static void stop_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr colors, out uint length)
         {
             Eina.Log.Debug("function efl_gfx_gradient_stop_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Gfx.GradientStop _out_colors = default(Efl.Gfx.GradientStop);
         length = default(uint);                            
                 try
                 {
-                    ((IGradientLinear)wrapper).GetStop(out _out_colors, out length);
+                    ((IGradientLinear)ws.Target).GetStop(out _out_colors, out length);
                 }
                 catch (Exception e)
                 {
@@ -496,14 +422,14 @@ IGradientLinear
         private static void stop_set(System.IntPtr obj, System.IntPtr pd, ref Efl.Gfx.GradientStop.NativeStruct colors, uint length)
         {
             Eina.Log.Debug("function efl_gfx_gradient_stop_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Gfx.GradientStop _in_colors = colors;
                                                     
                 try
                 {
-                    ((IGradientLinear)wrapper).SetStop(ref _in_colors, length);
+                    ((IGradientLinear)ws.Target).SetStop(ref _in_colors, length);
                 }
                 catch (Exception e)
                 {
@@ -533,13 +459,13 @@ IGradientLinear
         private static Efl.Gfx.GradientSpread spread_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_gradient_spread_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.GradientSpread _ret_var = default(Efl.Gfx.GradientSpread);
                 try
                 {
-                    _ret_var = ((IGradientLinear)wrapper).GetSpread();
+                    _ret_var = ((IGradientLinear)ws.Target).GetSpread();
                 }
                 catch (Exception e)
                 {
@@ -569,13 +495,13 @@ IGradientLinear
         private static void spread_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.GradientSpread s)
         {
             Eina.Log.Debug("function efl_gfx_gradient_spread_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IGradientLinear)wrapper).SetSpread(s);
+                    ((IGradientLinear)ws.Target).SetSpread(s);
                 }
                 catch (Exception e)
                 {
@@ -593,7 +519,7 @@ IGradientLinear
 
         private static efl_gfx_gradient_spread_set_delegate efl_gfx_gradient_spread_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index bfb2766..9d53e31 100644 (file)
@@ -38,20 +38,20 @@ void GetFocal(out double x, out double y);
 /// <param name="y">Y co-ordinate of focal point</param>
 void SetFocal(double x, double y);
                             /// <summary>Gets the center radius of this radial gradient.</summary>
-/// <value>Center radius</value>
+    /// <value>Center radius</value>
     double Radius {
         get ;
         set ;
     }
 }
 /// <summary>Efl graphics gradient radial interface</summary>
-sealed public class IGradientRadialConcrete : 
-
-IGradientRadial
+sealed public class IGradientRadialConcrete :
+    Efl.Eo.EoWrapper
+    , IGradientRadial
     , Efl.Gfx.IGradient
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -66,86 +66,12 @@ IGradientRadial
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_gradient_radial_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IGradientRadial"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IGradientRadialConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IGradientRadialConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IGradientRadialConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Gets the center of this radial gradient.</summary>
@@ -221,13 +147,13 @@ IGradientRadial
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Gets the center radius of this radial gradient.</summary>
-/// <value>Center radius</value>
+    /// <value>Center radius</value>
     public double Radius {
         get { return GetRadius(); }
         set { SetRadius(value); }
     }
     /// <summary>Returns the spread method use by this gradient. The default is EFL_GFX_GRADIENT_SPREAD_PAD.</summary>
-/// <value>Spread type to be used</value>
+    /// <value>Spread type to be used</value>
     public Efl.Gfx.GradientSpread Spread {
         get { return GetSpread(); }
         set { SetSpread(value); }
@@ -357,7 +283,7 @@ IGradientRadial
             return Efl.Gfx.IGradientRadialConcrete.efl_gfx_gradient_radial_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_gradient_radial_center_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double x,  out double y);
@@ -370,13 +296,13 @@ IGradientRadial
         private static void center_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_center_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IGradientRadial)wrapper).GetCenter(out x, out y);
+                    ((IGradientRadial)ws.Target).GetCenter(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -405,13 +331,13 @@ IGradientRadial
         private static void center_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_center_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IGradientRadial)wrapper).SetCenter(x, y);
+                    ((IGradientRadial)ws.Target).SetCenter(x, y);
                 }
                 catch (Exception e)
                 {
@@ -440,13 +366,13 @@ IGradientRadial
         private static double radius_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_radius_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IGradientRadial)wrapper).GetRadius();
+                    _ret_var = ((IGradientRadial)ws.Target).GetRadius();
                 }
                 catch (Exception e)
                 {
@@ -476,13 +402,13 @@ IGradientRadial
         private static void radius_set(System.IntPtr obj, System.IntPtr pd, double r)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_radius_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IGradientRadial)wrapper).SetRadius(r);
+                    ((IGradientRadial)ws.Target).SetRadius(r);
                 }
                 catch (Exception e)
                 {
@@ -511,13 +437,13 @@ IGradientRadial
         private static void focal_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_focal_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IGradientRadial)wrapper).GetFocal(out x, out y);
+                    ((IGradientRadial)ws.Target).GetFocal(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -546,13 +472,13 @@ IGradientRadial
         private static void focal_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_gradient_radial_focal_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IGradientRadial)wrapper).SetFocal(x, y);
+                    ((IGradientRadial)ws.Target).SetFocal(x, y);
                 }
                 catch (Exception e)
                 {
@@ -581,14 +507,14 @@ IGradientRadial
         private static void stop_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr colors, out uint length)
         {
             Eina.Log.Debug("function efl_gfx_gradient_stop_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Gfx.GradientStop _out_colors = default(Efl.Gfx.GradientStop);
         length = default(uint);                            
                 try
                 {
-                    ((IGradientRadial)wrapper).GetStop(out _out_colors, out length);
+                    ((IGradientRadial)ws.Target).GetStop(out _out_colors, out length);
                 }
                 catch (Exception e)
                 {
@@ -618,14 +544,14 @@ IGradientRadial
         private static void stop_set(System.IntPtr obj, System.IntPtr pd, ref Efl.Gfx.GradientStop.NativeStruct colors, uint length)
         {
             Eina.Log.Debug("function efl_gfx_gradient_stop_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Gfx.GradientStop _in_colors = colors;
                                                     
                 try
                 {
-                    ((IGradientRadial)wrapper).SetStop(ref _in_colors, length);
+                    ((IGradientRadial)ws.Target).SetStop(ref _in_colors, length);
                 }
                 catch (Exception e)
                 {
@@ -655,13 +581,13 @@ IGradientRadial
         private static Efl.Gfx.GradientSpread spread_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_gradient_spread_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.GradientSpread _ret_var = default(Efl.Gfx.GradientSpread);
                 try
                 {
-                    _ret_var = ((IGradientRadial)wrapper).GetSpread();
+                    _ret_var = ((IGradientRadial)ws.Target).GetSpread();
                 }
                 catch (Exception e)
                 {
@@ -691,13 +617,13 @@ IGradientRadial
         private static void spread_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.GradientSpread s)
         {
             Eina.Log.Debug("function efl_gfx_gradient_spread_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IGradientRadial)wrapper).SetSpread(s);
+                    ((IGradientRadial)ws.Target).SetSpread(s);
                 }
                 catch (Exception e)
                 {
@@ -715,7 +641,7 @@ IGradientRadial
 
         private static efl_gfx_gradient_spread_set_delegate efl_gfx_gradient_spread_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 74914b7..8699b8b 100644 (file)
@@ -11,6 +11,7 @@ namespace Gfx {
 
 public partial class Constants
 {
+    /// <summary>Use with <see cref="Efl.Gfx.IHint.GetHintWeight"/>.</summary>
     public static readonly double HintExpand = 1.000000;
 }
 }
@@ -192,60 +193,60 @@ void SetHintFill(bool x, bool y);
     /// (Since EFL 1.22)</summary>
     event EventHandler HintsChangedEvt;
     /// <summary>Hints on the object&apos;s maximum size.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
-/// 
-/// The object container is in charge of fetching this property and placing the object accordingly.
-/// 
-/// Values -1 will be treated as unset hint components, when queried by managers.
-/// 
-/// Note: Smart objects (such as elementary) can have their own hint policy. So calling this API may or may not affect the size of smart objects.
-/// (Since EFL 1.22)</summary>
-/// <value>Maximum size (hint) in pixels, (-1, -1) by default for canvas objects).</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
+    /// 
+    /// The object container is in charge of fetching this property and placing the object accordingly.
+    /// 
+    /// Values -1 will be treated as unset hint components, when queried by managers.
+    /// 
+    /// Note: Smart objects (such as elementary) can have their own hint policy. So calling this API may or may not affect the size of smart objects.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Maximum size (hint) in pixels, (-1, -1) by default for canvas objects).</value>
     Eina.Size2D HintSizeMax {
         get ;
         set ;
     }
     /// <summary>Hints on the object&apos;s minimum size.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate. The object container is in charge of fetching this property and placing the object accordingly.
-/// 
-/// Value 0 will be treated as unset hint components, when queried by managers.
-/// 
-/// Note: This property is meant to be set by applications and not by EFL itself. Use this to request a specific size (treated as minimum size).
-/// (Since EFL 1.22)</summary>
-/// <value>Minimum size (hint) in pixels.</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate. The object container is in charge of fetching this property and placing the object accordingly.
+    /// 
+    /// Value 0 will be treated as unset hint components, when queried by managers.
+    /// 
+    /// Note: This property is meant to be set by applications and not by EFL itself. Use this to request a specific size (treated as minimum size).
+    /// (Since EFL 1.22)</summary>
+    /// <value>Minimum size (hint) in pixels.</value>
     Eina.Size2D HintSizeMin {
         get ;
         set ;
     }
     /// <summary>Internal hints for an object&apos;s minimum size.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
-/// 
-/// Values 0 will be treated as unset hint components, when queried by managers.
-/// 
-/// Note: This property is internal and meant for widget developers to define the absolute minimum size of the object. EFL itself sets this size internally, so any change to it from an application might be ignored. Use <see cref="Efl.Gfx.IHint.HintSizeMin"/> instead.
-/// (Since EFL 1.22)</summary>
-/// <value>Minimum size (hint) in pixels.</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
+    /// 
+    /// Values 0 will be treated as unset hint components, when queried by managers.
+    /// 
+    /// Note: This property is internal and meant for widget developers to define the absolute minimum size of the object. EFL itself sets this size internally, so any change to it from an application might be ignored. Use <see cref="Efl.Gfx.IHint.HintSizeMin"/> instead.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Minimum size (hint) in pixels.</value>
     Eina.Size2D HintSizeRestrictedMin {
         get ;
         set ;
     }
     /// <summary>Read-only minimum size combining both <see cref="Efl.Gfx.IHint.HintSizeRestrictedMin"/> and <see cref="Efl.Gfx.IHint.HintSizeMin"/> hints.
-/// <see cref="Efl.Gfx.IHint.HintSizeRestrictedMin"/> is intended for mostly internal usage and widget developers, and <see cref="Efl.Gfx.IHint.HintSizeMin"/> is intended to be set from application side. <see cref="Efl.Gfx.IHint.GetHintSizeCombinedMin"/> combines both values by taking their repective maximum (in both width and height), and is used internally to get an object&apos;s minimum size.
-/// (Since EFL 1.22)</summary>
-/// <value>Minimum size (hint) in pixels.</value>
+    /// <see cref="Efl.Gfx.IHint.HintSizeRestrictedMin"/> is intended for mostly internal usage and widget developers, and <see cref="Efl.Gfx.IHint.HintSizeMin"/> is intended to be set from application side. <see cref="Efl.Gfx.IHint.GetHintSizeCombinedMin"/> combines both values by taking their repective maximum (in both width and height), and is used internally to get an object&apos;s minimum size.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Minimum size (hint) in pixels.</value>
     Eina.Size2D HintSizeCombinedMin {
         get ;
     }
 }
 /// <summary>Efl graphics hint interface
 /// (Since EFL 1.22)</summary>
-sealed public class IHintConcrete : 
-
-IHint
+sealed public class IHintConcrete :
+    Efl.Eo.EoWrapper
+    , IHint
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -260,155 +261,12 @@ IHint
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_hint_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IHint"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IHintConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IHintConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IHintConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Object hints changed.
@@ -419,10 +277,9 @@ IHint
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -688,47 +545,47 @@ IHint
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Hints on the object&apos;s maximum size.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
-/// 
-/// The object container is in charge of fetching this property and placing the object accordingly.
-/// 
-/// Values -1 will be treated as unset hint components, when queried by managers.
-/// 
-/// Note: Smart objects (such as elementary) can have their own hint policy. So calling this API may or may not affect the size of smart objects.
-/// (Since EFL 1.22)</summary>
-/// <value>Maximum size (hint) in pixels, (-1, -1) by default for canvas objects).</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
+    /// 
+    /// The object container is in charge of fetching this property and placing the object accordingly.
+    /// 
+    /// Values -1 will be treated as unset hint components, when queried by managers.
+    /// 
+    /// Note: Smart objects (such as elementary) can have their own hint policy. So calling this API may or may not affect the size of smart objects.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Maximum size (hint) in pixels, (-1, -1) by default for canvas objects).</value>
     public Eina.Size2D HintSizeMax {
         get { return GetHintSizeMax(); }
         set { SetHintSizeMax(value); }
     }
     /// <summary>Hints on the object&apos;s minimum size.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate. The object container is in charge of fetching this property and placing the object accordingly.
-/// 
-/// Value 0 will be treated as unset hint components, when queried by managers.
-/// 
-/// Note: This property is meant to be set by applications and not by EFL itself. Use this to request a specific size (treated as minimum size).
-/// (Since EFL 1.22)</summary>
-/// <value>Minimum size (hint) in pixels.</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate. The object container is in charge of fetching this property and placing the object accordingly.
+    /// 
+    /// Value 0 will be treated as unset hint components, when queried by managers.
+    /// 
+    /// Note: This property is meant to be set by applications and not by EFL itself. Use this to request a specific size (treated as minimum size).
+    /// (Since EFL 1.22)</summary>
+    /// <value>Minimum size (hint) in pixels.</value>
     public Eina.Size2D HintSizeMin {
         get { return GetHintSizeMin(); }
         set { SetHintSizeMin(value); }
     }
     /// <summary>Internal hints for an object&apos;s minimum size.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
-/// 
-/// Values 0 will be treated as unset hint components, when queried by managers.
-/// 
-/// Note: This property is internal and meant for widget developers to define the absolute minimum size of the object. EFL itself sets this size internally, so any change to it from an application might be ignored. Use <see cref="Efl.Gfx.IHint.HintSizeMin"/> instead.
-/// (Since EFL 1.22)</summary>
-/// <value>Minimum size (hint) in pixels.</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
+    /// 
+    /// Values 0 will be treated as unset hint components, when queried by managers.
+    /// 
+    /// Note: This property is internal and meant for widget developers to define the absolute minimum size of the object. EFL itself sets this size internally, so any change to it from an application might be ignored. Use <see cref="Efl.Gfx.IHint.HintSizeMin"/> instead.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Minimum size (hint) in pixels.</value>
     public Eina.Size2D HintSizeRestrictedMin {
         get { return GetHintSizeRestrictedMin(); }
         set { SetHintSizeRestrictedMin(value); }
     }
     /// <summary>Read-only minimum size combining both <see cref="Efl.Gfx.IHint.HintSizeRestrictedMin"/> and <see cref="Efl.Gfx.IHint.HintSizeMin"/> hints.
-/// <see cref="Efl.Gfx.IHint.HintSizeRestrictedMin"/> is intended for mostly internal usage and widget developers, and <see cref="Efl.Gfx.IHint.HintSizeMin"/> is intended to be set from application side. <see cref="Efl.Gfx.IHint.GetHintSizeCombinedMin"/> combines both values by taking their repective maximum (in both width and height), and is used internally to get an object&apos;s minimum size.
-/// (Since EFL 1.22)</summary>
-/// <value>Minimum size (hint) in pixels.</value>
+    /// <see cref="Efl.Gfx.IHint.HintSizeRestrictedMin"/> is intended for mostly internal usage and widget developers, and <see cref="Efl.Gfx.IHint.HintSizeMin"/> is intended to be set from application side. <see cref="Efl.Gfx.IHint.GetHintSizeCombinedMin"/> combines both values by taking their repective maximum (in both width and height), and is used internally to get an object&apos;s minimum size.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Minimum size (hint) in pixels.</value>
     public Eina.Size2D HintSizeCombinedMin {
         get { return GetHintSizeCombinedMin(); }
     }
@@ -927,7 +784,7 @@ IHint
             return Efl.Gfx.IHintConcrete.efl_gfx_hint_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_hint_aspect_get_delegate(System.IntPtr obj, System.IntPtr pd,  out Efl.Gfx.HintAspect mode,  out Eina.Size2D.NativeStruct sz);
@@ -940,14 +797,14 @@ IHint
         private static void hint_aspect_get(System.IntPtr obj, System.IntPtr pd, out Efl.Gfx.HintAspect mode, out Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_hint_aspect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         mode = default(Efl.Gfx.HintAspect);        Eina.Size2D _out_sz = default(Eina.Size2D);
                             
                 try
                 {
-                    ((IHint)wrapper).GetHintAspect(out mode, out _out_sz);
+                    ((IHint)ws.Target).GetHintAspect(out mode, out _out_sz);
                 }
                 catch (Exception e)
                 {
@@ -977,14 +834,14 @@ IHint
         private static void hint_aspect_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.HintAspect mode, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_hint_aspect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Size2D _in_sz = sz;
                                             
                 try
                 {
-                    ((IHint)wrapper).SetHintAspect(mode, _in_sz);
+                    ((IHint)ws.Target).SetHintAspect(mode, _in_sz);
                 }
                 catch (Exception e)
                 {
@@ -1013,13 +870,13 @@ IHint
         private static Eina.Size2D.NativeStruct hint_size_max_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IHint)wrapper).GetHintSizeMax();
+                    _ret_var = ((IHint)ws.Target).GetHintSizeMax();
                 }
                 catch (Exception e)
                 {
@@ -1049,14 +906,14 @@ IHint
         private static void hint_size_max_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_sz = sz;
                             
                 try
                 {
-                    ((IHint)wrapper).SetHintSizeMax(_in_sz);
+                    ((IHint)ws.Target).SetHintSizeMax(_in_sz);
                 }
                 catch (Exception e)
                 {
@@ -1085,13 +942,13 @@ IHint
         private static Eina.Size2D.NativeStruct hint_size_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IHint)wrapper).GetHintSizeMin();
+                    _ret_var = ((IHint)ws.Target).GetHintSizeMin();
                 }
                 catch (Exception e)
                 {
@@ -1121,14 +978,14 @@ IHint
         private static void hint_size_min_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_min_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_sz = sz;
                             
                 try
                 {
-                    ((IHint)wrapper).SetHintSizeMin(_in_sz);
+                    ((IHint)ws.Target).SetHintSizeMin(_in_sz);
                 }
                 catch (Exception e)
                 {
@@ -1157,13 +1014,13 @@ IHint
         private static Eina.Size2D.NativeStruct hint_size_restricted_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_restricted_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IHint)wrapper).GetHintSizeRestrictedMin();
+                    _ret_var = ((IHint)ws.Target).GetHintSizeRestrictedMin();
                 }
                 catch (Exception e)
                 {
@@ -1193,14 +1050,14 @@ IHint
         private static void hint_size_restricted_min_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_restricted_min_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_sz = sz;
                             
                 try
                 {
-                    ((IHint)wrapper).SetHintSizeRestrictedMin(_in_sz);
+                    ((IHint)ws.Target).SetHintSizeRestrictedMin(_in_sz);
                 }
                 catch (Exception e)
                 {
@@ -1229,13 +1086,13 @@ IHint
         private static Eina.Size2D.NativeStruct hint_size_combined_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_hint_size_combined_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IHint)wrapper).GetHintSizeCombinedMin();
+                    _ret_var = ((IHint)ws.Target).GetHintSizeCombinedMin();
                 }
                 catch (Exception e)
                 {
@@ -1265,13 +1122,13 @@ IHint
         private static void hint_margin_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_hint_margin_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((IHint)wrapper).GetHintMargin(out l, out r, out t, out b);
+                    ((IHint)ws.Target).GetHintMargin(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -1300,13 +1157,13 @@ IHint
         private static void hint_margin_set(System.IntPtr obj, System.IntPtr pd, int l, int r, int t, int b)
         {
             Eina.Log.Debug("function efl_gfx_hint_margin_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IHint)wrapper).SetHintMargin(l, r, t, b);
+                    ((IHint)ws.Target).SetHintMargin(l, r, t, b);
                 }
                 catch (Exception e)
                 {
@@ -1335,13 +1192,13 @@ IHint
         private static void hint_weight_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_hint_weight_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IHint)wrapper).GetHintWeight(out x, out y);
+                    ((IHint)ws.Target).GetHintWeight(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -1370,13 +1227,13 @@ IHint
         private static void hint_weight_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_hint_weight_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IHint)wrapper).SetHintWeight(x, y);
+                    ((IHint)ws.Target).SetHintWeight(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1405,13 +1262,13 @@ IHint
         private static void hint_align_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_hint_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IHint)wrapper).GetHintAlign(out x, out y);
+                    ((IHint)ws.Target).GetHintAlign(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -1440,13 +1297,13 @@ IHint
         private static void hint_align_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_hint_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IHint)wrapper).SetHintAlign(x, y);
+                    ((IHint)ws.Target).SetHintAlign(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1475,13 +1332,13 @@ IHint
         private static void hint_fill_get(System.IntPtr obj, System.IntPtr pd, out bool x, out bool y)
         {
             Eina.Log.Debug("function efl_gfx_hint_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(bool);        y = default(bool);                            
                 try
                 {
-                    ((IHint)wrapper).GetHintFill(out x, out y);
+                    ((IHint)ws.Target).GetHintFill(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -1510,13 +1367,13 @@ IHint
         private static void hint_fill_set(System.IntPtr obj, System.IntPtr pd, bool x, bool y)
         {
             Eina.Log.Debug("function efl_gfx_hint_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IHint)wrapper).SetHintFill(x, y);
+                    ((IHint)ws.Target).SetHintFill(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1534,7 +1391,7 @@ IHint
 
         private static efl_gfx_hint_fill_set_delegate efl_gfx_hint_fill_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 6e03419..81d60b4 100644 (file)
@@ -121,79 +121,79 @@ Eina.Error GetImageLoadError();
     /// <summary>Image data has been unloaded (by some mechanism in EFL that threw out the original image data).</summary>
     event EventHandler ImageUnloadEvt;
     /// <summary>Whether to use high-quality image scaling algorithm for this image.
-/// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
-/// 
-/// <c>true</c> by default</summary>
-/// <value>Whether to use smooth scale or not.</value>
+    /// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
+    /// 
+    /// <c>true</c> by default</summary>
+    /// <value>Whether to use smooth scale or not.</value>
     bool SmoothScale {
         get ;
         set ;
     }
     /// <summary>Control how the image is scaled.</summary>
-/// <value>Image scale type</value>
+    /// <value>Image scale type</value>
     Efl.Gfx.ImageScaleType ScaleType {
         get ;
         set ;
     }
     /// <summary>The native width/height ratio of the image.</summary>
-/// <value>The image&apos;s ratio.</value>
+    /// <value>The image&apos;s ratio.</value>
     double Ratio {
         get ;
     }
     /// <summary>Scaling factor applied to the image borders.
-/// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
-/// 
-/// Default value is 1.0 (no scaling).</summary>
-/// <value>The scale factor.</value>
+    /// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
+    /// 
+    /// Default value is 1.0 (no scaling).</summary>
+    /// <value>The scale factor.</value>
     double BorderScale {
         get ;
         set ;
     }
     /// <summary>Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.
-/// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
-/// 
-/// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
-/// <value>Fill mode of the center region.</value>
+    /// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
+    /// 
+    /// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
+    /// <value>Fill mode of the center region.</value>
     Efl.Gfx.BorderFillMode BorderCenterFill {
         get ;
         set ;
     }
     /// <summary>This represents the size of the original image in pixels.
-/// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
-/// 
-/// This is a read-only property, and may return 0x0.</summary>
-/// <value>The size in pixels.</value>
+    /// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
+    /// 
+    /// This is a read-only property, and may return 0x0.</summary>
+    /// <value>The size in pixels.</value>
     Eina.Size2D ImageSize {
         get ;
     }
     /// <summary>Get the content hint setting of a given image object of the canvas.
-/// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
-/// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
+    /// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
+    /// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
     Efl.Gfx.ImageContentHint ContentHint {
         get ;
         set ;
     }
     /// <summary>Get the scale hint of a given image of the canvas.
-/// This function returns the scale hint value of the given image object of the canvas.</summary>
-/// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
+    /// This function returns the scale hint value of the given image object of the canvas.</summary>
+    /// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
     Efl.Gfx.ImageScaleHint ScaleHint {
         get ;
         set ;
     }
     /// <summary>Gets the (last) file loading error for a given object.</summary>
-/// <value>The load error code.</value>
+    /// <value>The load error code.</value>
     Eina.Error ImageLoadError {
         get ;
     }
 }
 /// <summary>Common APIs for all 2D images that can be rendered on the canvas.</summary>
-sealed public class IImageConcrete : 
-
-IImage
+sealed public class IImageConcrete :
+    Efl.Eo.EoWrapper
+    , IImage
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -208,155 +208,12 @@ IImage
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_image_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IImage"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IImageConcrete(System.IntPtr raw)
+    private IImageConcrete(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IImageConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Image data has been preloaded.</summary>
@@ -366,10 +223,9 @@ IImage
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -419,10 +275,9 @@ IImage
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -472,10 +327,9 @@ IImage
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -679,67 +533,67 @@ IImage
         return _ret_var;
  }
     /// <summary>Whether to use high-quality image scaling algorithm for this image.
-/// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
-/// 
-/// <c>true</c> by default</summary>
-/// <value>Whether to use smooth scale or not.</value>
+    /// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
+    /// 
+    /// <c>true</c> by default</summary>
+    /// <value>Whether to use smooth scale or not.</value>
     public bool SmoothScale {
         get { return GetSmoothScale(); }
         set { SetSmoothScale(value); }
     }
     /// <summary>Control how the image is scaled.</summary>
-/// <value>Image scale type</value>
+    /// <value>Image scale type</value>
     public Efl.Gfx.ImageScaleType ScaleType {
         get { return GetScaleType(); }
         set { SetScaleType(value); }
     }
     /// <summary>The native width/height ratio of the image.</summary>
-/// <value>The image&apos;s ratio.</value>
+    /// <value>The image&apos;s ratio.</value>
     public double Ratio {
         get { return GetRatio(); }
     }
     /// <summary>Scaling factor applied to the image borders.
-/// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
-/// 
-/// Default value is 1.0 (no scaling).</summary>
-/// <value>The scale factor.</value>
+    /// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
+    /// 
+    /// Default value is 1.0 (no scaling).</summary>
+    /// <value>The scale factor.</value>
     public double BorderScale {
         get { return GetBorderScale(); }
         set { SetBorderScale(value); }
     }
     /// <summary>Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.
-/// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
-/// 
-/// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
-/// <value>Fill mode of the center region.</value>
+    /// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
+    /// 
+    /// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
+    /// <value>Fill mode of the center region.</value>
     public Efl.Gfx.BorderFillMode BorderCenterFill {
         get { return GetBorderCenterFill(); }
         set { SetBorderCenterFill(value); }
     }
     /// <summary>This represents the size of the original image in pixels.
-/// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
-/// 
-/// This is a read-only property, and may return 0x0.</summary>
-/// <value>The size in pixels.</value>
+    /// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
+    /// 
+    /// This is a read-only property, and may return 0x0.</summary>
+    /// <value>The size in pixels.</value>
     public Eina.Size2D ImageSize {
         get { return GetImageSize(); }
     }
     /// <summary>Get the content hint setting of a given image object of the canvas.
-/// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
-/// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
+    /// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
+    /// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
     public Efl.Gfx.ImageContentHint ContentHint {
         get { return GetContentHint(); }
         set { SetContentHint(value); }
     }
     /// <summary>Get the scale hint of a given image of the canvas.
-/// This function returns the scale hint value of the given image object of the canvas.</summary>
-/// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
+    /// This function returns the scale hint value of the given image object of the canvas.</summary>
+    /// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
     public Efl.Gfx.ImageScaleHint ScaleHint {
         get { return GetScaleHint(); }
         set { SetScaleHint(value); }
     }
     /// <summary>Gets the (last) file loading error for a given object.</summary>
-/// <value>The load error code.</value>
+    /// <value>The load error code.</value>
     public Eina.Error ImageLoadError {
         get { return GetImageLoadError(); }
     }
@@ -938,7 +792,7 @@ IImage
             return Efl.Gfx.IImageConcrete.efl_gfx_image_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_gfx_image_smooth_scale_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -951,13 +805,13 @@ IImage
         private static bool smooth_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_smooth_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IImage)wrapper).GetSmoothScale();
+                    _ret_var = ((IImage)ws.Target).GetSmoothScale();
                 }
                 catch (Exception e)
                 {
@@ -987,13 +841,13 @@ IImage
         private static void smooth_scale_set(System.IntPtr obj, System.IntPtr pd, bool smooth_scale)
         {
             Eina.Log.Debug("function efl_gfx_image_smooth_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IImage)wrapper).SetSmoothScale(smooth_scale);
+                    ((IImage)ws.Target).SetSmoothScale(smooth_scale);
                 }
                 catch (Exception e)
                 {
@@ -1022,13 +876,13 @@ IImage
         private static Efl.Gfx.ImageScaleType scale_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageScaleType _ret_var = default(Efl.Gfx.ImageScaleType);
                 try
                 {
-                    _ret_var = ((IImage)wrapper).GetScaleType();
+                    _ret_var = ((IImage)ws.Target).GetScaleType();
                 }
                 catch (Exception e)
                 {
@@ -1058,13 +912,13 @@ IImage
         private static void scale_type_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageScaleType scale_type)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IImage)wrapper).SetScaleType(scale_type);
+                    ((IImage)ws.Target).SetScaleType(scale_type);
                 }
                 catch (Exception e)
                 {
@@ -1093,13 +947,13 @@ IImage
         private static double ratio_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_ratio_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IImage)wrapper).GetRatio();
+                    _ret_var = ((IImage)ws.Target).GetRatio();
                 }
                 catch (Exception e)
                 {
@@ -1129,13 +983,13 @@ IImage
         private static void border_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_image_border_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((IImage)wrapper).GetBorder(out l, out r, out t, out b);
+                    ((IImage)ws.Target).GetBorder(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -1164,13 +1018,13 @@ IImage
         private static void border_set(System.IntPtr obj, System.IntPtr pd, int l, int r, int t, int b)
         {
             Eina.Log.Debug("function efl_gfx_image_border_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IImage)wrapper).SetBorder(l, r, t, b);
+                    ((IImage)ws.Target).SetBorder(l, r, t, b);
                 }
                 catch (Exception e)
                 {
@@ -1199,13 +1053,13 @@ IImage
         private static double border_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_border_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IImage)wrapper).GetBorderScale();
+                    _ret_var = ((IImage)ws.Target).GetBorderScale();
                 }
                 catch (Exception e)
                 {
@@ -1235,13 +1089,13 @@ IImage
         private static void border_scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_image_border_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IImage)wrapper).SetBorderScale(scale);
+                    ((IImage)ws.Target).SetBorderScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -1270,13 +1124,13 @@ IImage
         private static Efl.Gfx.BorderFillMode border_center_fill_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_border_center_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.BorderFillMode _ret_var = default(Efl.Gfx.BorderFillMode);
                 try
                 {
-                    _ret_var = ((IImage)wrapper).GetBorderCenterFill();
+                    _ret_var = ((IImage)ws.Target).GetBorderCenterFill();
                 }
                 catch (Exception e)
                 {
@@ -1306,13 +1160,13 @@ IImage
         private static void border_center_fill_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.BorderFillMode fill)
         {
             Eina.Log.Debug("function efl_gfx_image_border_center_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IImage)wrapper).SetBorderCenterFill(fill);
+                    ((IImage)ws.Target).SetBorderCenterFill(fill);
                 }
                 catch (Exception e)
                 {
@@ -1341,13 +1195,13 @@ IImage
         private static Eina.Size2D.NativeStruct image_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IImage)wrapper).GetImageSize();
+                    _ret_var = ((IImage)ws.Target).GetImageSize();
                 }
                 catch (Exception e)
                 {
@@ -1377,13 +1231,13 @@ IImage
         private static Efl.Gfx.ImageContentHint content_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_content_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageContentHint _ret_var = default(Efl.Gfx.ImageContentHint);
                 try
                 {
-                    _ret_var = ((IImage)wrapper).GetContentHint();
+                    _ret_var = ((IImage)ws.Target).GetContentHint();
                 }
                 catch (Exception e)
                 {
@@ -1413,13 +1267,13 @@ IImage
         private static void content_hint_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageContentHint hint)
         {
             Eina.Log.Debug("function efl_gfx_image_content_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IImage)wrapper).SetContentHint(hint);
+                    ((IImage)ws.Target).SetContentHint(hint);
                 }
                 catch (Exception e)
                 {
@@ -1448,13 +1302,13 @@ IImage
         private static Efl.Gfx.ImageScaleHint scale_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageScaleHint _ret_var = default(Efl.Gfx.ImageScaleHint);
                 try
                 {
-                    _ret_var = ((IImage)wrapper).GetScaleHint();
+                    _ret_var = ((IImage)ws.Target).GetScaleHint();
                 }
                 catch (Exception e)
                 {
@@ -1484,13 +1338,13 @@ IImage
         private static void scale_hint_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageScaleHint hint)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IImage)wrapper).SetScaleHint(hint);
+                    ((IImage)ws.Target).SetScaleHint(hint);
                 }
                 catch (Exception e)
                 {
@@ -1519,13 +1373,13 @@ IImage
         private static Eina.Error image_load_error_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_error_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((IImage)wrapper).GetImageLoadError();
+                    _ret_var = ((IImage)ws.Target).GetImageLoadError();
                 }
                 catch (Exception e)
                 {
@@ -1544,7 +1398,7 @@ IImage
 
         private static efl_gfx_image_load_error_get_delegate efl_gfx_image_load_error_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index f355ee2..25a794d 100644 (file)
@@ -78,53 +78,53 @@ void LoadAsyncCancel();
     /// <summary>Called when an error happened during image loading</summary>
     event EventHandler<Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args> LoadErrorEvt;
     /// <summary>The load size of an image.
-/// The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like svg.
-/// 
-/// By default, the load size is not specified, so it is 0x0.</summary>
-/// <value>The image load size.</value>
+    /// The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like svg.
+    /// 
+    /// By default, the load size is not specified, so it is 0x0.</summary>
+    /// <value>The image load size.</value>
     Eina.Size2D LoadSize {
         get ;
         set ;
     }
     /// <summary>Get the DPI resolution of a loaded image object in the canvas.
-/// This function returns the DPI resolution of the given canvas image.</summary>
-/// <value>The DPI resolution.</value>
+    /// This function returns the DPI resolution of the given canvas image.</summary>
+    /// <value>The DPI resolution.</value>
     double LoadDpi {
         get ;
         set ;
     }
     /// <summary>Indicates whether the <see cref="Efl.Gfx.IImageLoadController.LoadRegion"/> property is supported for the current file.</summary>
-/// <value><c>true</c> if region load of the image is supported, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if region load of the image is supported, <c>false</c> otherwise</value>
     bool LoadRegionSupport {
         get ;
     }
     /// <summary>Retrieve the coordinates of a given image object&apos;s selective (source image) load region.</summary>
-/// <value>A region of the image.</value>
+    /// <value>A region of the image.</value>
     Eina.Rect LoadRegion {
         get ;
         set ;
     }
     /// <summary>Defines whether the orientation information in the image file should be honored.
-/// The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is <c>false</c>, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.</summary>
-/// <value><c>true</c> means that it should honor the orientation information.</value>
+    /// The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is <c>false</c>, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.</summary>
+    /// <value><c>true</c> means that it should honor the orientation information.</value>
     bool LoadOrientation {
         get ;
         set ;
     }
     /// <summary>The scale down factor is a divider on the original image size.
-/// Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.
-/// 
-/// This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.
-/// 
-/// Powers of two (2, 4, 8) are best supported (especially with JPEG)</summary>
-/// <value>The scale down dividing factor.</value>
+    /// Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.
+    /// 
+    /// This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.
+    /// 
+    /// Powers of two (2, 4, 8) are best supported (especially with JPEG)</summary>
+    /// <value>The scale down dividing factor.</value>
     int LoadScaleDown {
         get ;
         set ;
     }
     /// <summary>Initial load should skip header check and leave it all to data load
-/// If this is true, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).</summary>
-/// <value>Will be true if header is to be skipped.</value>
+    /// If this is true, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).</summary>
+    /// <value>Will be true if header is to be skipped.</value>
     bool LoadSkipHeader {
         get ;
         set ;
@@ -136,13 +136,13 @@ public class IImageLoadControllerLoadErrorEvt_Args : EventArgs {
     public Eina.Error arg { get; set; }
 }
 /// <summary>Common APIs for all loadable 2D images.</summary>
-sealed public class IImageLoadControllerConcrete : 
-
-IImageLoadController
+sealed public class IImageLoadControllerConcrete :
+    Efl.Eo.EoWrapper
+    , IImageLoadController
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -157,155 +157,12 @@ IImageLoadController
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_image_load_controller_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IImageLoadController"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IImageLoadControllerConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IImageLoadControllerConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
+    private IImageLoadControllerConcrete(System.IntPtr raw) : base(raw)
     {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when he image was loaded</summary>
@@ -315,10 +172,9 @@ IImageLoadController
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -368,13 +224,12 @@ IImageLoadController
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args args = new Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args();
+                        Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args args = new Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args();
                         args.arg = (Eina.Error)Marshal.PtrToStructure(evt.Info, typeof(Eina.Error));
                         try
                         {
@@ -537,53 +392,53 @@ IImageLoadController
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>The load size of an image.
-/// The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like svg.
-/// 
-/// By default, the load size is not specified, so it is 0x0.</summary>
-/// <value>The image load size.</value>
+    /// The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like svg.
+    /// 
+    /// By default, the load size is not specified, so it is 0x0.</summary>
+    /// <value>The image load size.</value>
     public Eina.Size2D LoadSize {
         get { return GetLoadSize(); }
         set { SetLoadSize(value); }
     }
     /// <summary>Get the DPI resolution of a loaded image object in the canvas.
-/// This function returns the DPI resolution of the given canvas image.</summary>
-/// <value>The DPI resolution.</value>
+    /// This function returns the DPI resolution of the given canvas image.</summary>
+    /// <value>The DPI resolution.</value>
     public double LoadDpi {
         get { return GetLoadDpi(); }
         set { SetLoadDpi(value); }
     }
     /// <summary>Indicates whether the <see cref="Efl.Gfx.IImageLoadController.LoadRegion"/> property is supported for the current file.</summary>
-/// <value><c>true</c> if region load of the image is supported, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if region load of the image is supported, <c>false</c> otherwise</value>
     public bool LoadRegionSupport {
         get { return GetLoadRegionSupport(); }
     }
     /// <summary>Retrieve the coordinates of a given image object&apos;s selective (source image) load region.</summary>
-/// <value>A region of the image.</value>
+    /// <value>A region of the image.</value>
     public Eina.Rect LoadRegion {
         get { return GetLoadRegion(); }
         set { SetLoadRegion(value); }
     }
     /// <summary>Defines whether the orientation information in the image file should be honored.
-/// The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is <c>false</c>, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.</summary>
-/// <value><c>true</c> means that it should honor the orientation information.</value>
+    /// The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is <c>false</c>, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.</summary>
+    /// <value><c>true</c> means that it should honor the orientation information.</value>
     public bool LoadOrientation {
         get { return GetLoadOrientation(); }
         set { SetLoadOrientation(value); }
     }
     /// <summary>The scale down factor is a divider on the original image size.
-/// Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.
-/// 
-/// This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.
-/// 
-/// Powers of two (2, 4, 8) are best supported (especially with JPEG)</summary>
-/// <value>The scale down dividing factor.</value>
+    /// Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.
+    /// 
+    /// This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.
+    /// 
+    /// Powers of two (2, 4, 8) are best supported (especially with JPEG)</summary>
+    /// <value>The scale down dividing factor.</value>
     public int LoadScaleDown {
         get { return GetLoadScaleDown(); }
         set { SetLoadScaleDown(value); }
     }
     /// <summary>Initial load should skip header check and leave it all to data load
-/// If this is true, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).</summary>
-/// <value>Will be true if header is to be skipped.</value>
+    /// If this is true, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).</summary>
+    /// <value>Will be true if header is to be skipped.</value>
     public bool LoadSkipHeader {
         get { return GetLoadSkipHeader(); }
         set { SetLoadSkipHeader(value); }
@@ -763,7 +618,7 @@ IImageLoadController
             return Efl.Gfx.IImageLoadControllerConcrete.efl_gfx_image_load_controller_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Size2D.NativeStruct efl_gfx_image_load_controller_load_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -776,13 +631,13 @@ IImageLoadController
         private static Eina.Size2D.NativeStruct load_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IImageLoadController)wrapper).GetLoadSize();
+                    _ret_var = ((IImageLoadController)ws.Target).GetLoadSize();
                 }
                 catch (Exception e)
                 {
@@ -812,14 +667,14 @@ IImageLoadController
         private static void load_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((IImageLoadController)wrapper).SetLoadSize(_in_size);
+                    ((IImageLoadController)ws.Target).SetLoadSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -848,13 +703,13 @@ IImageLoadController
         private static double load_dpi_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_dpi_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IImageLoadController)wrapper).GetLoadDpi();
+                    _ret_var = ((IImageLoadController)ws.Target).GetLoadDpi();
                 }
                 catch (Exception e)
                 {
@@ -884,13 +739,13 @@ IImageLoadController
         private static void load_dpi_set(System.IntPtr obj, System.IntPtr pd, double dpi)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_dpi_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IImageLoadController)wrapper).SetLoadDpi(dpi);
+                    ((IImageLoadController)ws.Target).SetLoadDpi(dpi);
                 }
                 catch (Exception e)
                 {
@@ -919,13 +774,13 @@ IImageLoadController
         private static bool load_region_support_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_support_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IImageLoadController)wrapper).GetLoadRegionSupport();
+                    _ret_var = ((IImageLoadController)ws.Target).GetLoadRegionSupport();
                 }
                 catch (Exception e)
                 {
@@ -955,13 +810,13 @@ IImageLoadController
         private static Eina.Rect.NativeStruct load_region_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((IImageLoadController)wrapper).GetLoadRegion();
+                    _ret_var = ((IImageLoadController)ws.Target).GetLoadRegion();
                 }
                 catch (Exception e)
                 {
@@ -991,14 +846,14 @@ IImageLoadController
         private static void load_region_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct region)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_region = region;
                             
                 try
                 {
-                    ((IImageLoadController)wrapper).SetLoadRegion(_in_region);
+                    ((IImageLoadController)ws.Target).SetLoadRegion(_in_region);
                 }
                 catch (Exception e)
                 {
@@ -1027,13 +882,13 @@ IImageLoadController
         private static bool load_orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_orientation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IImageLoadController)wrapper).GetLoadOrientation();
+                    _ret_var = ((IImageLoadController)ws.Target).GetLoadOrientation();
                 }
                 catch (Exception e)
                 {
@@ -1063,13 +918,13 @@ IImageLoadController
         private static void load_orientation_set(System.IntPtr obj, System.IntPtr pd, bool enable)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_orientation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IImageLoadController)wrapper).SetLoadOrientation(enable);
+                    ((IImageLoadController)ws.Target).SetLoadOrientation(enable);
                 }
                 catch (Exception e)
                 {
@@ -1098,13 +953,13 @@ IImageLoadController
         private static int load_scale_down_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_scale_down_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IImageLoadController)wrapper).GetLoadScaleDown();
+                    _ret_var = ((IImageLoadController)ws.Target).GetLoadScaleDown();
                 }
                 catch (Exception e)
                 {
@@ -1134,13 +989,13 @@ IImageLoadController
         private static void load_scale_down_set(System.IntPtr obj, System.IntPtr pd, int div)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_scale_down_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IImageLoadController)wrapper).SetLoadScaleDown(div);
+                    ((IImageLoadController)ws.Target).SetLoadScaleDown(div);
                 }
                 catch (Exception e)
                 {
@@ -1169,13 +1024,13 @@ IImageLoadController
         private static bool load_skip_header_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_skip_header_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IImageLoadController)wrapper).GetLoadSkipHeader();
+                    _ret_var = ((IImageLoadController)ws.Target).GetLoadSkipHeader();
                 }
                 catch (Exception e)
                 {
@@ -1205,13 +1060,13 @@ IImageLoadController
         private static void load_skip_header_set(System.IntPtr obj, System.IntPtr pd, bool skip)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_skip_header_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IImageLoadController)wrapper).SetLoadSkipHeader(skip);
+                    ((IImageLoadController)ws.Target).SetLoadSkipHeader(skip);
                 }
                 catch (Exception e)
                 {
@@ -1240,13 +1095,13 @@ IImageLoadController
         private static void load_async_start(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_async_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IImageLoadController)wrapper).LoadAsyncStart();
+                    ((IImageLoadController)ws.Target).LoadAsyncStart();
                 }
                 catch (Exception e)
                 {
@@ -1275,13 +1130,13 @@ IImageLoadController
         private static void load_async_cancel(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_async_cancel was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IImageLoadController)wrapper).LoadAsyncCancel();
+                    ((IImageLoadController)ws.Target).LoadAsyncCancel();
                 }
                 catch (Exception e)
                 {
@@ -1299,7 +1154,7 @@ IImageLoadController
 
         private static efl_gfx_image_load_controller_load_async_cancel_delegate efl_gfx_image_load_controller_load_async_cancel_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_gfx_image_orientable.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_gfx_image_orientable.eo.cs
new file mode 100644 (file)
index 0000000..cf23043
--- /dev/null
@@ -0,0 +1,242 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Gfx {
+
+/// <summary>Interface for objects which can be oriented.</summary>
+[Efl.Gfx.IImageOrientableConcrete.NativeMethods]
+public interface IImageOrientable : 
+    Efl.Eo.IWrapper, IDisposable
+{
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+/// This can be used to set the rotation on an image or a window, for instance.</summary>
+/// <returns>The final orientation of the object.</returns>
+Efl.Gfx.ImageOrientation GetOrientation();
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+/// This can be used to set the rotation on an image or a window, for instance.</summary>
+/// <param name="dir">The final orientation of the object.</param>
+void SetOrientation(Efl.Gfx.ImageOrientation dir);
+            /// <summary>Control the orientation (rotation and flipping) of a visual object.
+    /// This can be used to set the rotation on an image or a window, for instance.</summary>
+    /// <value>The final orientation of the object.</value>
+    Efl.Gfx.ImageOrientation Orientation {
+        get ;
+        set ;
+    }
+}
+/// <summary>Interface for objects which can be oriented.</summary>
+sealed public class IImageOrientableConcrete :
+    Efl.Eo.EoWrapper
+    , IImageOrientable
+    
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(IImageOrientableConcrete))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
+        efl_gfx_image_orientable_interface_get();
+    /// <summary>Initializes a new instance of the <see cref="IImageOrientable"/> class.
+    /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
+    private IImageOrientableConcrete(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+    /// This can be used to set the rotation on an image or a window, for instance.</summary>
+    /// <returns>The final orientation of the object.</returns>
+    public Efl.Gfx.ImageOrientation GetOrientation() {
+         var _ret_var = Efl.Gfx.IImageOrientableConcrete.NativeMethods.efl_gfx_image_orientation_get_ptr.Value.Delegate(this.NativeHandle);
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+    /// This can be used to set the rotation on an image or a window, for instance.</summary>
+    /// <param name="dir">The final orientation of the object.</param>
+    public void SetOrientation(Efl.Gfx.ImageOrientation dir) {
+                                 Efl.Gfx.IImageOrientableConcrete.NativeMethods.efl_gfx_image_orientation_set_ptr.Value.Delegate(this.NativeHandle,dir);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+    /// This can be used to set the rotation on an image or a window, for instance.</summary>
+    /// <value>The final orientation of the object.</value>
+    public Efl.Gfx.ImageOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Gfx.IImageOrientableConcrete.efl_gfx_image_orientable_interface_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public class NativeMethods  : Efl.Eo.NativeClass
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Efl);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_gfx_image_orientation_get_static_delegate == null)
+            {
+                efl_gfx_image_orientation_get_static_delegate = new efl_gfx_image_orientation_get_delegate(orientation_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_orientation_get_static_delegate) });
+            }
+
+            if (efl_gfx_image_orientation_set_static_delegate == null)
+            {
+                efl_gfx_image_orientation_set_static_delegate = new efl_gfx_image_orientation_set_delegate(orientation_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_orientation_set_static_delegate) });
+            }
+
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Gfx.IImageOrientableConcrete.efl_gfx_image_orientable_interface_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate Efl.Gfx.ImageOrientation efl_gfx_image_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.Gfx.ImageOrientation efl_gfx_image_orientation_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_get_api_delegate> efl_gfx_image_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_get_api_delegate>(Module, "efl_gfx_image_orientation_get");
+
+        private static Efl.Gfx.ImageOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gfx_image_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Gfx.ImageOrientation _ret_var = default(Efl.Gfx.ImageOrientation);
+                try
+                {
+                    _ret_var = ((IImageOrientable)ws.Target).GetOrientation();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_image_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gfx_image_orientation_get_delegate efl_gfx_image_orientation_get_static_delegate;
+
+        
+        private delegate void efl_gfx_image_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Gfx.ImageOrientation dir);
+
+        
+        public delegate void efl_gfx_image_orientation_set_api_delegate(System.IntPtr obj,  Efl.Gfx.ImageOrientation dir);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_set_api_delegate> efl_gfx_image_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_set_api_delegate>(Module, "efl_gfx_image_orientation_set");
+
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageOrientation dir)
+        {
+            Eina.Log.Debug("function efl_gfx_image_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((IImageOrientable)ws.Target).SetOrientation(dir);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_gfx_image_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+            }
+        }
+
+        private static efl_gfx_image_orientation_set_delegate efl_gfx_image_orientation_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
+namespace Efl {
+
+namespace Gfx {
+
+/// <summary>An orientation type, to rotate and flip images.
+/// This is similar to EXIF&apos;s orientation. Directional values (<c>up</c>, <c>down</c>, <c>left</c>, <c>right</c>) indicate the final direction in which the top of the image will be facing (e.g. a picture of a house will have its roof pointing to the right if the <c>right</c> orientation is used). Flipping values (<c>flip_horizontal</c> and <c>flip_vertical</c>) can be additionaly added to produce a mirroring in each axis. Not to be confused with <see cref="Efl.Ui.LayoutOrientation"/> which is meant for widgets, rather than images and canvases. This enum is used to rotate images, videos and the like.</summary>
+public enum ImageOrientation
+{
+/// <summary>Default, same as up, do not rotate.</summary>
+None = 0,
+/// <summary>Orient up, do not rotate.</summary>
+Up = 0,
+/// <summary>Orient right, rotate 90 degrees clock-wise.</summary>
+Right = 1,
+/// <summary>Orient down, rotate 180 degrees.</summary>
+Down = 2,
+/// <summary>Orient left, rotate 270 degrees clock-wise.</summary>
+Left = 3,
+/// <summary>Bitmask that can be used to isolate rotation values, that is, <c>none</c>, <c>up</c>, <c>down</c>, <c>left</c> and <c>right</c>.</summary>
+RotationBitmask = 3,
+/// <summary>Mirror horizontally. Can be added to the other values.</summary>
+FlipHorizontal = 4,
+/// <summary>Mirror vertically. Can be added to the other values.</summary>
+FlipVertical = 8,
+/// <summary>Bitmask that can be used to isolate flipping values, that is, <c>flip_vertical</c> and <c>flip_horizontal</c>.</summary>
+FlipBitmask = 12,
+}
+
+}
+
+}
+
index 0f457cf..32be006 100644 (file)
@@ -292,34 +292,34 @@ void Lighting3dAbsolute(double lx, double ly, double lz, int lr, int lg, int lb,
 /// <param name="foc">The focal distance, must be greater than 0.</param>
 void Perspective3dAbsolute(double px, double py, double z0, double foc);
                                                                                                                     /// <summary>Number of points of a map.
-/// This sets the number of points of map. Currently, the number of points must be multiples of 4.
-/// (Since EFL 1.22)</summary>
-/// <value>The number of points of map</value>
+    /// This sets the number of points of map. Currently, the number of points must be multiples of 4.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The number of points of map</value>
     int MappingPointCount {
         get ;
         set ;
     }
     /// <summary>Clockwise state of a map (read-only).
-/// This determines if the output points (X and Y. Z is not used) are clockwise or counter-clockwise. This can be used for &quot;back-face culling&quot;. This is where you hide objects that &quot;face away&quot; from you. In this case objects that are not clockwise.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if clockwise, <c>false</c> if counter clockwise</value>
+    /// This determines if the output points (X and Y. Z is not used) are clockwise or counter-clockwise. This can be used for &quot;back-face culling&quot;. This is where you hide objects that &quot;face away&quot; from you. In this case objects that are not clockwise.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if clockwise, <c>false</c> if counter clockwise</value>
     bool MappingClockwise {
         get ;
     }
     /// <summary>Smoothing state for map rendering.
-/// This sets smoothing for map rendering. If the object is a type that has its own smoothing settings, then both the smooth settings for this object and the map must be turned off. By default smooth maps are enabled.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> by default.</value>
+    /// This sets smoothing for map rendering. If the object is a type that has its own smoothing settings, then both the smooth settings for this object and the map must be turned off. By default smooth maps are enabled.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> by default.</value>
     bool MappingSmooth {
         get ;
         set ;
     }
     /// <summary>Alpha flag for map rendering.
-/// This sets alpha flag for map rendering. If the object is a type that has its own alpha settings, then this will take precedence. Only image objects support this currently (<see cref="Efl.Canvas.Image"/> and its friends). Setting this to off stops alpha blending of the map area, and is useful if you know the object and/or all sub-objects is 100% solid.
-/// 
-/// Note that this may conflict with <see cref="Efl.Gfx.IMapping.MappingSmooth"/> depending on which algorithm is used for anti-aliasing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> by default.</value>
+    /// This sets alpha flag for map rendering. If the object is a type that has its own alpha settings, then this will take precedence. Only image objects support this currently (<see cref="Efl.Canvas.Image"/> and its friends). Setting this to off stops alpha blending of the map area, and is useful if you know the object and/or all sub-objects is 100% solid.
+    /// 
+    /// Note that this may conflict with <see cref="Efl.Gfx.IMapping.MappingSmooth"/> depending on which algorithm is used for anti-aliasing.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> by default.</value>
     bool MappingAlpha {
         get ;
         set ;
@@ -334,13 +334,13 @@ void Perspective3dAbsolute(double px, double py, double z0, double foc);
 /// 
 /// At the moment of writing, maps can only have 4 points (no more, no less).
 /// (Since EFL 1.22)</summary>
-sealed public class IMappingConcrete : 
-
-IMapping
+sealed public class IMappingConcrete :
+    Efl.Eo.EoWrapper
+    , IMapping
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -355,86 +355,12 @@ IMapping
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
         efl_gfx_mapping_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IMapping"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IMappingConcrete(System.IntPtr raw)
+    private IMappingConcrete(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IMappingConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Number of points of a map.
@@ -796,34 +722,34 @@ IMapping
         Eina.Error.RaiseIfUnhandledException();
                                                                          }
     /// <summary>Number of points of a map.
-/// This sets the number of points of map. Currently, the number of points must be multiples of 4.
-/// (Since EFL 1.22)</summary>
-/// <value>The number of points of map</value>
+    /// This sets the number of points of map. Currently, the number of points must be multiples of 4.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The number of points of map</value>
     public int MappingPointCount {
         get { return GetMappingPointCount(); }
         set { SetMappingPointCount(value); }
     }
     /// <summary>Clockwise state of a map (read-only).
-/// This determines if the output points (X and Y. Z is not used) are clockwise or counter-clockwise. This can be used for &quot;back-face culling&quot;. This is where you hide objects that &quot;face away&quot; from you. In this case objects that are not clockwise.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if clockwise, <c>false</c> if counter clockwise</value>
+    /// This determines if the output points (X and Y. Z is not used) are clockwise or counter-clockwise. This can be used for &quot;back-face culling&quot;. This is where you hide objects that &quot;face away&quot; from you. In this case objects that are not clockwise.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if clockwise, <c>false</c> if counter clockwise</value>
     public bool MappingClockwise {
         get { return GetMappingClockwise(); }
     }
     /// <summary>Smoothing state for map rendering.
-/// This sets smoothing for map rendering. If the object is a type that has its own smoothing settings, then both the smooth settings for this object and the map must be turned off. By default smooth maps are enabled.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> by default.</value>
+    /// This sets smoothing for map rendering. If the object is a type that has its own smoothing settings, then both the smooth settings for this object and the map must be turned off. By default smooth maps are enabled.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> by default.</value>
     public bool MappingSmooth {
         get { return GetMappingSmooth(); }
         set { SetMappingSmooth(value); }
     }
     /// <summary>Alpha flag for map rendering.
-/// This sets alpha flag for map rendering. If the object is a type that has its own alpha settings, then this will take precedence. Only image objects support this currently (<see cref="Efl.Canvas.Image"/> and its friends). Setting this to off stops alpha blending of the map area, and is useful if you know the object and/or all sub-objects is 100% solid.
-/// 
-/// Note that this may conflict with <see cref="Efl.Gfx.IMapping.MappingSmooth"/> depending on which algorithm is used for anti-aliasing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> by default.</value>
+    /// This sets alpha flag for map rendering. If the object is a type that has its own alpha settings, then this will take precedence. Only image objects support this currently (<see cref="Efl.Canvas.Image"/> and its friends). Setting this to off stops alpha blending of the map area, and is useful if you know the object and/or all sub-objects is 100% solid.
+    /// 
+    /// Note that this may conflict with <see cref="Efl.Gfx.IMapping.MappingSmooth"/> depending on which algorithm is used for anti-aliasing.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> by default.</value>
     public bool MappingAlpha {
         get { return GetMappingAlpha(); }
         set { SetMappingAlpha(value); }
@@ -1133,7 +1059,7 @@ IMapping
             return Efl.Gfx.IMappingConcrete.efl_gfx_mapping_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_gfx_mapping_point_count_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1146,13 +1072,13 @@ IMapping
         private static int mapping_point_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_point_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IMappingConcrete)wrapper).GetMappingPointCount();
+                    _ret_var = ((IMappingConcrete)ws.Target).GetMappingPointCount();
                 }
                 catch (Exception e)
                 {
@@ -1182,13 +1108,13 @@ IMapping
         private static void mapping_point_count_set(System.IntPtr obj, System.IntPtr pd, int count)
         {
             Eina.Log.Debug("function efl_gfx_mapping_point_count_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).SetMappingPointCount(count);
+                    ((IMappingConcrete)ws.Target).SetMappingPointCount(count);
                 }
                 catch (Exception e)
                 {
@@ -1217,13 +1143,13 @@ IMapping
         private static bool mapping_clockwise_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_clockwise_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IMappingConcrete)wrapper).GetMappingClockwise();
+                    _ret_var = ((IMappingConcrete)ws.Target).GetMappingClockwise();
                 }
                 catch (Exception e)
                 {
@@ -1253,13 +1179,13 @@ IMapping
         private static bool mapping_smooth_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_smooth_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IMappingConcrete)wrapper).GetMappingSmooth();
+                    _ret_var = ((IMappingConcrete)ws.Target).GetMappingSmooth();
                 }
                 catch (Exception e)
                 {
@@ -1289,13 +1215,13 @@ IMapping
         private static void mapping_smooth_set(System.IntPtr obj, System.IntPtr pd, bool smooth)
         {
             Eina.Log.Debug("function efl_gfx_mapping_smooth_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).SetMappingSmooth(smooth);
+                    ((IMappingConcrete)ws.Target).SetMappingSmooth(smooth);
                 }
                 catch (Exception e)
                 {
@@ -1324,13 +1250,13 @@ IMapping
         private static bool mapping_alpha_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_alpha_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IMappingConcrete)wrapper).GetMappingAlpha();
+                    _ret_var = ((IMappingConcrete)ws.Target).GetMappingAlpha();
                 }
                 catch (Exception e)
                 {
@@ -1360,13 +1286,13 @@ IMapping
         private static void mapping_alpha_set(System.IntPtr obj, System.IntPtr pd, bool alpha)
         {
             Eina.Log.Debug("function efl_gfx_mapping_alpha_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).SetMappingAlpha(alpha);
+                    ((IMappingConcrete)ws.Target).SetMappingAlpha(alpha);
                 }
                 catch (Exception e)
                 {
@@ -1395,13 +1321,13 @@ IMapping
         private static void mapping_coord_absolute_get(System.IntPtr obj, System.IntPtr pd, int idx, out double x, out double y, out double z)
         {
             Eina.Log.Debug("function efl_gfx_mapping_coord_absolute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                 x = default(double);        y = default(double);        z = default(double);                                            
                 try
                 {
-                    ((IMappingConcrete)wrapper).GetMappingCoordAbsolute(idx, out x, out y, out z);
+                    ((IMappingConcrete)ws.Target).GetMappingCoordAbsolute(idx, out x, out y, out z);
                 }
                 catch (Exception e)
                 {
@@ -1430,13 +1356,13 @@ IMapping
         private static void mapping_coord_absolute_set(System.IntPtr obj, System.IntPtr pd, int idx, double x, double y, double z)
         {
             Eina.Log.Debug("function efl_gfx_mapping_coord_absolute_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IMappingConcrete)wrapper).SetMappingCoordAbsolute(idx, x, y, z);
+                    ((IMappingConcrete)ws.Target).SetMappingCoordAbsolute(idx, x, y, z);
                 }
                 catch (Exception e)
                 {
@@ -1465,13 +1391,13 @@ IMapping
         private static void mapping_uv_get(System.IntPtr obj, System.IntPtr pd, int idx, out double u, out double v)
         {
             Eina.Log.Debug("function efl_gfx_mapping_uv_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         u = default(double);        v = default(double);                                    
                 try
                 {
-                    ((IMappingConcrete)wrapper).GetMappingUv(idx, out u, out v);
+                    ((IMappingConcrete)ws.Target).GetMappingUv(idx, out u, out v);
                 }
                 catch (Exception e)
                 {
@@ -1500,13 +1426,13 @@ IMapping
         private static void mapping_uv_set(System.IntPtr obj, System.IntPtr pd, int idx, double u, double v)
         {
             Eina.Log.Debug("function efl_gfx_mapping_uv_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).SetMappingUv(idx, u, v);
+                    ((IMappingConcrete)ws.Target).SetMappingUv(idx, u, v);
                 }
                 catch (Exception e)
                 {
@@ -1535,13 +1461,13 @@ IMapping
         private static void mapping_color_get(System.IntPtr obj, System.IntPtr pd, int idx, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_mapping_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                                    
                 try
                 {
-                    ((IMappingConcrete)wrapper).GetMappingColor(idx, out r, out g, out b, out a);
+                    ((IMappingConcrete)ws.Target).GetMappingColor(idx, out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -1570,13 +1496,13 @@ IMapping
         private static void mapping_color_set(System.IntPtr obj, System.IntPtr pd, int idx, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_mapping_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).SetMappingColor(idx, r, g, b, a);
+                    ((IMappingConcrete)ws.Target).SetMappingColor(idx, r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1605,13 +1531,13 @@ IMapping
         private static bool mapping_has(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_has was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IMappingConcrete)wrapper).HasMapping();
+                    _ret_var = ((IMappingConcrete)ws.Target).HasMapping();
                 }
                 catch (Exception e)
                 {
@@ -1641,13 +1567,13 @@ IMapping
         private static void mapping_reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_mapping_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IMappingConcrete)wrapper).ResetMapping();
+                    ((IMappingConcrete)ws.Target).ResetMapping();
                 }
                 catch (Exception e)
                 {
@@ -1676,13 +1602,13 @@ IMapping
         private static void translate(System.IntPtr obj, System.IntPtr pd, double dx, double dy, double dz)
         {
             Eina.Log.Debug("function efl_gfx_mapping_translate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).Translate(dx, dy, dz);
+                    ((IMappingConcrete)ws.Target).Translate(dx, dy, dz);
                 }
                 catch (Exception e)
                 {
@@ -1711,13 +1637,13 @@ IMapping
         private static void rotate(System.IntPtr obj, System.IntPtr pd, double degrees, Efl.Gfx.IEntity pivot, double cx, double cy)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IMappingConcrete)wrapper).Rotate(degrees, pivot, cx, cy);
+                    ((IMappingConcrete)ws.Target).Rotate(degrees, pivot, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -1746,13 +1672,13 @@ IMapping
         private static void rotate_3d(System.IntPtr obj, System.IntPtr pd, double dx, double dy, double dz, Efl.Gfx.IEntity pivot, double cx, double cy, double cz)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate_3d was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).Rotate3d(dx, dy, dz, pivot, cx, cy, cz);
+                    ((IMappingConcrete)ws.Target).Rotate3d(dx, dy, dz, pivot, cx, cy, cz);
                 }
                 catch (Exception e)
                 {
@@ -1781,13 +1707,13 @@ IMapping
         private static void rotate_quat(System.IntPtr obj, System.IntPtr pd, double qx, double qy, double qz, double qw, Efl.Gfx.IEntity pivot, double cx, double cy, double cz)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate_quat was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                                             
                 try
                 {
-                    ((IMappingConcrete)wrapper).RotateQuat(qx, qy, qz, qw, pivot, cx, cy, cz);
+                    ((IMappingConcrete)ws.Target).RotateQuat(qx, qy, qz, qw, pivot, cx, cy, cz);
                 }
                 catch (Exception e)
                 {
@@ -1816,13 +1742,13 @@ IMapping
         private static void zoom(System.IntPtr obj, System.IntPtr pd, double zoomx, double zoomy, Efl.Gfx.IEntity pivot, double cx, double cy)
         {
             Eina.Log.Debug("function efl_gfx_mapping_zoom was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).Zoom(zoomx, zoomy, pivot, cx, cy);
+                    ((IMappingConcrete)ws.Target).Zoom(zoomx, zoomy, pivot, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -1851,13 +1777,13 @@ IMapping
         private static void lighting_3d(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity pivot, double lx, double ly, double lz, int lr, int lg, int lb, int ar, int ag, int ab)
         {
             Eina.Log.Debug("function efl_gfx_mapping_lighting_3d was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                                                                                             
                 try
                 {
-                    ((IMappingConcrete)wrapper).Lighting3d(pivot, lx, ly, lz, lr, lg, lb, ar, ag, ab);
+                    ((IMappingConcrete)ws.Target).Lighting3d(pivot, lx, ly, lz, lr, lg, lb, ar, ag, ab);
                 }
                 catch (Exception e)
                 {
@@ -1886,13 +1812,13 @@ IMapping
         private static void perspective_3d(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity pivot, double px, double py, double z0, double foc)
         {
             Eina.Log.Debug("function efl_gfx_mapping_perspective_3d was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).Perspective3d(pivot, px, py, z0, foc);
+                    ((IMappingConcrete)ws.Target).Perspective3d(pivot, px, py, z0, foc);
                 }
                 catch (Exception e)
                 {
@@ -1921,13 +1847,13 @@ IMapping
         private static void rotate_absolute(System.IntPtr obj, System.IntPtr pd, double degrees, double cx, double cy)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).RotateAbsolute(degrees, cx, cy);
+                    ((IMappingConcrete)ws.Target).RotateAbsolute(degrees, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -1956,13 +1882,13 @@ IMapping
         private static void rotate_3d_absolute(System.IntPtr obj, System.IntPtr pd, double dx, double dy, double dz, double cx, double cy, double cz)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate_3d_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((IMappingConcrete)wrapper).Rotate3dAbsolute(dx, dy, dz, cx, cy, cz);
+                    ((IMappingConcrete)ws.Target).Rotate3dAbsolute(dx, dy, dz, cx, cy, cz);
                 }
                 catch (Exception e)
                 {
@@ -1991,13 +1917,13 @@ IMapping
         private static void rotate_quat_absolute(System.IntPtr obj, System.IntPtr pd, double qx, double qy, double qz, double qw, double cx, double cy, double cz)
         {
             Eina.Log.Debug("function efl_gfx_mapping_rotate_quat_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).RotateQuatAbsolute(qx, qy, qz, qw, cx, cy, cz);
+                    ((IMappingConcrete)ws.Target).RotateQuatAbsolute(qx, qy, qz, qw, cx, cy, cz);
                 }
                 catch (Exception e)
                 {
@@ -2026,13 +1952,13 @@ IMapping
         private static void zoom_absolute(System.IntPtr obj, System.IntPtr pd, double zoomx, double zoomy, double cx, double cy)
         {
             Eina.Log.Debug("function efl_gfx_mapping_zoom_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IMappingConcrete)wrapper).ZoomAbsolute(zoomx, zoomy, cx, cy);
+                    ((IMappingConcrete)ws.Target).ZoomAbsolute(zoomx, zoomy, cx, cy);
                 }
                 catch (Exception e)
                 {
@@ -2061,13 +1987,13 @@ IMapping
         private static void lighting_3d_absolute(System.IntPtr obj, System.IntPtr pd, double lx, double ly, double lz, int lr, int lg, int lb, int ar, int ag, int ab)
         {
             Eina.Log.Debug("function efl_gfx_mapping_lighting_3d_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                                                                     
                 try
                 {
-                    ((IMappingConcrete)wrapper).Lighting3dAbsolute(lx, ly, lz, lr, lg, lb, ar, ag, ab);
+                    ((IMappingConcrete)ws.Target).Lighting3dAbsolute(lx, ly, lz, lr, lg, lb, ar, ag, ab);
                 }
                 catch (Exception e)
                 {
@@ -2096,13 +2022,13 @@ IMapping
         private static void perspective_3d_absolute(System.IntPtr obj, System.IntPtr pd, double px, double py, double z0, double foc)
         {
             Eina.Log.Debug("function efl_gfx_mapping_perspective_3d_absolute was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IMappingConcrete)wrapper).Perspective3dAbsolute(px, py, z0, foc);
+                    ((IMappingConcrete)ws.Target).Perspective3dAbsolute(px, py, z0, foc);
                 }
                 catch (Exception e)
                 {
@@ -2120,7 +2046,7 @@ IMapping
 
         private static efl_gfx_mapping_perspective_3d_absolute_delegate efl_gfx_mapping_perspective_3d_absolute_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 2fee23a..43ec1c1 100644 (file)
@@ -144,13 +144,13 @@ void Reserve(uint cmd_count, uint pts_count);
 void Commit();
                                                                                                 }
 /// <summary>EFL graphics path object interface</summary>
-sealed public class IPathConcrete : 
-
-IPath
+sealed public class IPathConcrete :
+    Efl.Eo.EoWrapper
+    , IPath
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -165,86 +165,12 @@ IPath
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_path_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IPath"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPathConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPathConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IPathConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Set the list of commands and points to be used to create the content of path.</summary>
@@ -722,7 +648,7 @@ IPath
             return Efl.Gfx.IPathConcrete.efl_gfx_path_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_path_get_delegate(System.IntPtr obj, System.IntPtr pd,  out System.IntPtr op,  out System.IntPtr points);
@@ -735,15 +661,15 @@ IPath
         private static void path_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr op, out System.IntPtr points)
         {
             Eina.Log.Debug("function efl_gfx_path_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Gfx.PathCommandType _out_op = default(Efl.Gfx.PathCommandType);
         double _out_points = default(double);
                             
                 try
                 {
-                    ((IPathConcrete)wrapper).GetPath(out _out_op, out _out_points);
+                    ((IPathConcrete)ws.Target).GetPath(out _out_op, out _out_points);
                 }
                 catch (Exception e)
                 {
@@ -774,15 +700,15 @@ IPath
         private static void path_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr op, System.IntPtr points)
         {
             Eina.Log.Debug("function efl_gfx_path_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_op = Eina.PrimitiveConversion.PointerToManaged<Efl.Gfx.PathCommandType>(op);
         var _in_points = Eina.PrimitiveConversion.PointerToManaged<double>(points);
                                             
                 try
                 {
-                    ((IPathConcrete)wrapper).SetPath(_in_op, _in_points);
+                    ((IPathConcrete)ws.Target).SetPath(_in_op, _in_points);
                 }
                 catch (Exception e)
                 {
@@ -811,13 +737,13 @@ IPath
         private static void length_get(System.IntPtr obj, System.IntPtr pd, out uint commands, out uint points)
         {
             Eina.Log.Debug("function efl_gfx_path_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         commands = default(uint);        points = default(uint);                            
                 try
                 {
-                    ((IPathConcrete)wrapper).GetLength(out commands, out points);
+                    ((IPathConcrete)ws.Target).GetLength(out commands, out points);
                 }
                 catch (Exception e)
                 {
@@ -846,13 +772,13 @@ IPath
         private static void current_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_path_current_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IPathConcrete)wrapper).GetCurrent(out x, out y);
+                    ((IPathConcrete)ws.Target).GetCurrent(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -881,13 +807,13 @@ IPath
         private static void current_ctrl_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_path_current_ctrl_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IPathConcrete)wrapper).GetCurrentCtrl(out x, out y);
+                    ((IPathConcrete)ws.Target).GetCurrentCtrl(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -916,13 +842,13 @@ IPath
         private static void copy_from(System.IntPtr obj, System.IntPtr pd, Efl.Object dup_from)
         {
             Eina.Log.Debug("function efl_gfx_path_copy_from was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IPathConcrete)wrapper).CopyFrom(dup_from);
+                    ((IPathConcrete)ws.Target).CopyFrom(dup_from);
                 }
                 catch (Exception e)
                 {
@@ -951,14 +877,14 @@ IPath
         private static void bounds_get(System.IntPtr obj, System.IntPtr pd, out Eina.Rect.NativeStruct r)
         {
             Eina.Log.Debug("function efl_gfx_path_bounds_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Rect _out_r = default(Eina.Rect);
                     
                 try
                 {
-                    ((IPathConcrete)wrapper).GetBounds(out _out_r);
+                    ((IPathConcrete)ws.Target).GetBounds(out _out_r);
                 }
                 catch (Exception e)
                 {
@@ -988,13 +914,13 @@ IPath
         private static void reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IPathConcrete)wrapper).Reset();
+                    ((IPathConcrete)ws.Target).Reset();
                 }
                 catch (Exception e)
                 {
@@ -1023,13 +949,13 @@ IPath
         private static void append_move_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_move_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendMoveTo(x, y);
+                    ((IPathConcrete)ws.Target).AppendMoveTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1058,13 +984,13 @@ IPath
         private static void append_line_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_line_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendLineTo(x, y);
+                    ((IPathConcrete)ws.Target).AppendLineTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1093,13 +1019,13 @@ IPath
         private static void append_quadratic_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double ctrl_x, double ctrl_y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_quadratic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendQuadraticTo(x, y, ctrl_x, ctrl_y);
+                    ((IPathConcrete)ws.Target).AppendQuadraticTo(x, y, ctrl_x, ctrl_y);
                 }
                 catch (Exception e)
                 {
@@ -1128,13 +1054,13 @@ IPath
         private static void append_squadratic_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_squadratic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendSquadraticTo(x, y);
+                    ((IPathConcrete)ws.Target).AppendSquadraticTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1163,13 +1089,13 @@ IPath
         private static void append_cubic_to(System.IntPtr obj, System.IntPtr pd, double ctrl_x0, double ctrl_y0, double ctrl_x1, double ctrl_y1, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_cubic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendCubicTo(ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, x, y);
+                    ((IPathConcrete)ws.Target).AppendCubicTo(ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, x, y);
                 }
                 catch (Exception e)
                 {
@@ -1198,13 +1124,13 @@ IPath
         private static void append_scubic_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double ctrl_x, double ctrl_y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_scubic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendScubicTo(x, y, ctrl_x, ctrl_y);
+                    ((IPathConcrete)ws.Target).AppendScubicTo(x, y, ctrl_x, ctrl_y);
                 }
                 catch (Exception e)
                 {
@@ -1233,13 +1159,13 @@ IPath
         private static void append_arc_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double rx, double ry, double angle, bool large_arc, bool sweep)
         {
             Eina.Log.Debug("function efl_gfx_path_append_arc_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                     
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendArcTo(x, y, rx, ry, angle, large_arc, sweep);
+                    ((IPathConcrete)ws.Target).AppendArcTo(x, y, rx, ry, angle, large_arc, sweep);
                 }
                 catch (Exception e)
                 {
@@ -1268,13 +1194,13 @@ IPath
         private static void append_arc(System.IntPtr obj, System.IntPtr pd, double x, double y, double w, double h, double start_angle, double sweep_length)
         {
             Eina.Log.Debug("function efl_gfx_path_append_arc was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendArc(x, y, w, h, start_angle, sweep_length);
+                    ((IPathConcrete)ws.Target).AppendArc(x, y, w, h, start_angle, sweep_length);
                 }
                 catch (Exception e)
                 {
@@ -1303,13 +1229,13 @@ IPath
         private static void append_close(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_append_close was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IPathConcrete)wrapper).CloseAppend();
+                    ((IPathConcrete)ws.Target).CloseAppend();
                 }
                 catch (Exception e)
                 {
@@ -1338,13 +1264,13 @@ IPath
         private static void append_circle(System.IntPtr obj, System.IntPtr pd, double x, double y, double radius)
         {
             Eina.Log.Debug("function efl_gfx_path_append_circle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendCircle(x, y, radius);
+                    ((IPathConcrete)ws.Target).AppendCircle(x, y, radius);
                 }
                 catch (Exception e)
                 {
@@ -1373,13 +1299,13 @@ IPath
         private static void append_rect(System.IntPtr obj, System.IntPtr pd, double x, double y, double w, double h, double rx, double ry)
         {
             Eina.Log.Debug("function efl_gfx_path_append_rect was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendRect(x, y, w, h, rx, ry);
+                    ((IPathConcrete)ws.Target).AppendRect(x, y, w, h, rx, ry);
                 }
                 catch (Exception e)
                 {
@@ -1408,13 +1334,13 @@ IPath
         private static void append_svg_path(System.IntPtr obj, System.IntPtr pd, System.String svg_path_data)
         {
             Eina.Log.Debug("function efl_gfx_path_append_svg_path was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IPathConcrete)wrapper).AppendSvgPath(svg_path_data);
+                    ((IPathConcrete)ws.Target).AppendSvgPath(svg_path_data);
                 }
                 catch (Exception e)
                 {
@@ -1443,13 +1369,13 @@ IPath
         private static bool interpolate(System.IntPtr obj, System.IntPtr pd, Efl.Object from, Efl.Object to, double pos_map)
         {
             Eina.Log.Debug("function efl_gfx_path_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPathConcrete)wrapper).Interpolate(from, to, pos_map);
+                    _ret_var = ((IPathConcrete)ws.Target).Interpolate(from, to, pos_map);
                 }
                 catch (Exception e)
                 {
@@ -1479,13 +1405,13 @@ IPath
         private static bool equal_commands(System.IntPtr obj, System.IntPtr pd, Efl.Object with)
         {
             Eina.Log.Debug("function efl_gfx_path_equal_commands was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPathConcrete)wrapper).EqualCommands(with);
+                    _ret_var = ((IPathConcrete)ws.Target).EqualCommands(with);
                 }
                 catch (Exception e)
                 {
@@ -1515,13 +1441,13 @@ IPath
         private static void reserve(System.IntPtr obj, System.IntPtr pd, uint cmd_count, uint pts_count)
         {
             Eina.Log.Debug("function efl_gfx_path_reserve was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IPathConcrete)wrapper).Reserve(cmd_count, pts_count);
+                    ((IPathConcrete)ws.Target).Reserve(cmd_count, pts_count);
                 }
                 catch (Exception e)
                 {
@@ -1550,13 +1476,13 @@ IPath
         private static void commit(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_commit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IPathConcrete)wrapper).Commit();
+                    ((IPathConcrete)ws.Target).Commit();
                 }
                 catch (Exception e)
                 {
@@ -1574,7 +1500,7 @@ IPath
 
         private static efl_gfx_path_commit_delegate efl_gfx_path_commit_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 5dc3fb7..300c73b 100644 (file)
@@ -78,52 +78,52 @@ Efl.Gfx.FillRule GetFillRule();
 /// <param name="fill_rule">The current fill rule of the shape object. One of <see cref="Efl.Gfx.FillRule.Winding"/> or <see cref="Efl.Gfx.FillRule.OddEven"/></param>
 void SetFillRule(Efl.Gfx.FillRule fill_rule);
                                                                     /// <summary>The stroke scale to be used for stroking the path. Will be used along with stroke width property.</summary>
-/// <value>Stroke scale value</value>
+    /// <value>Stroke scale value</value>
     double StrokeScale {
         get ;
         set ;
     }
     /// <summary>The stroke width to be used for stroking the path.</summary>
-/// <value>Stroke width to be used</value>
+    /// <value>Stroke width to be used</value>
     double StrokeWidth {
         get ;
         set ;
     }
     /// <summary>Not implemented</summary>
-/// <value>Centered stroke location</value>
+    /// <value>Centered stroke location</value>
     double StrokeLocation {
         get ;
         set ;
     }
     /// <summary>The cap style to be used for stroking the path. The cap will be used for capping the end point of a open subpath.
-/// See also <see cref="Efl.Gfx.Cap"/>.</summary>
-/// <value>Cap style to use, default is <see cref="Efl.Gfx.Cap.Butt"/></value>
+    /// See also <see cref="Efl.Gfx.Cap"/>.</summary>
+    /// <value>Cap style to use, default is <see cref="Efl.Gfx.Cap.Butt"/></value>
     Efl.Gfx.Cap StrokeCap {
         get ;
         set ;
     }
     /// <summary>The join style to be used for stroking the path. The join style will be used for joining the two line segment while stroking the path.
-/// See also <see cref="Efl.Gfx.Join"/>.</summary>
-/// <value>Join style to use, default is <see cref="Efl.Gfx.Join.Miter"/></value>
+    /// See also <see cref="Efl.Gfx.Join"/>.</summary>
+    /// <value>Join style to use, default is <see cref="Efl.Gfx.Join.Miter"/></value>
     Efl.Gfx.Join StrokeJoin {
         get ;
         set ;
     }
     /// <summary>The fill rule of the given shape object. <see cref="Efl.Gfx.FillRule.Winding"/> or <see cref="Efl.Gfx.FillRule.OddEven"/>.</summary>
-/// <value>The current fill rule of the shape object. One of <see cref="Efl.Gfx.FillRule.Winding"/> or <see cref="Efl.Gfx.FillRule.OddEven"/></value>
+    /// <value>The current fill rule of the shape object. One of <see cref="Efl.Gfx.FillRule.Winding"/> or <see cref="Efl.Gfx.FillRule.OddEven"/></value>
     Efl.Gfx.FillRule FillRule {
         get ;
         set ;
     }
 }
 /// <summary>EFL graphics shape object interface</summary>
-sealed public class IShapeConcrete : 
-
-IShape
+sealed public class IShapeConcrete :
+    Efl.Eo.EoWrapper
+    , IShape
     , Efl.Gfx.IPath
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -138,86 +138,12 @@ IShape
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_shape_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IShape"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IShapeConcrete(System.IntPtr raw)
+    private IShapeConcrete(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IShapeConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>The stroke scale to be used for stroking the path. Will be used along with stroke width property.</summary>
@@ -551,39 +477,39 @@ IShape
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>The stroke scale to be used for stroking the path. Will be used along with stroke width property.</summary>
-/// <value>Stroke scale value</value>
+    /// <value>Stroke scale value</value>
     public double StrokeScale {
         get { return GetStrokeScale(); }
         set { SetStrokeScale(value); }
     }
     /// <summary>The stroke width to be used for stroking the path.</summary>
-/// <value>Stroke width to be used</value>
+    /// <value>Stroke width to be used</value>
     public double StrokeWidth {
         get { return GetStrokeWidth(); }
         set { SetStrokeWidth(value); }
     }
     /// <summary>Not implemented</summary>
-/// <value>Centered stroke location</value>
+    /// <value>Centered stroke location</value>
     public double StrokeLocation {
         get { return GetStrokeLocation(); }
         set { SetStrokeLocation(value); }
     }
     /// <summary>The cap style to be used for stroking the path. The cap will be used for capping the end point of a open subpath.
-/// See also <see cref="Efl.Gfx.Cap"/>.</summary>
-/// <value>Cap style to use, default is <see cref="Efl.Gfx.Cap.Butt"/></value>
+    /// See also <see cref="Efl.Gfx.Cap"/>.</summary>
+    /// <value>Cap style to use, default is <see cref="Efl.Gfx.Cap.Butt"/></value>
     public Efl.Gfx.Cap StrokeCap {
         get { return GetStrokeCap(); }
         set { SetStrokeCap(value); }
     }
     /// <summary>The join style to be used for stroking the path. The join style will be used for joining the two line segment while stroking the path.
-/// See also <see cref="Efl.Gfx.Join"/>.</summary>
-/// <value>Join style to use, default is <see cref="Efl.Gfx.Join.Miter"/></value>
+    /// See also <see cref="Efl.Gfx.Join"/>.</summary>
+    /// <value>Join style to use, default is <see cref="Efl.Gfx.Join.Miter"/></value>
     public Efl.Gfx.Join StrokeJoin {
         get { return GetStrokeJoin(); }
         set { SetStrokeJoin(value); }
     }
     /// <summary>The fill rule of the given shape object. <see cref="Efl.Gfx.FillRule.Winding"/> or <see cref="Efl.Gfx.FillRule.OddEven"/>.</summary>
-/// <value>The current fill rule of the shape object. One of <see cref="Efl.Gfx.FillRule.Winding"/> or <see cref="Efl.Gfx.FillRule.OddEven"/></value>
+    /// <value>The current fill rule of the shape object. One of <see cref="Efl.Gfx.FillRule.Winding"/> or <see cref="Efl.Gfx.FillRule.OddEven"/></value>
     public Efl.Gfx.FillRule FillRule {
         get { return GetFillRule(); }
         set { SetFillRule(value); }
@@ -1013,7 +939,7 @@ IShape
             return Efl.Gfx.IShapeConcrete.efl_gfx_shape_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_gfx_shape_stroke_scale_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1026,13 +952,13 @@ IShape
         private static double stroke_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IShapeConcrete)wrapper).GetStrokeScale();
+                    _ret_var = ((IShapeConcrete)ws.Target).GetStrokeScale();
                 }
                 catch (Exception e)
                 {
@@ -1062,13 +988,13 @@ IShape
         private static void stroke_scale_set(System.IntPtr obj, System.IntPtr pd, double s)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).SetStrokeScale(s);
+                    ((IShapeConcrete)ws.Target).SetStrokeScale(s);
                 }
                 catch (Exception e)
                 {
@@ -1097,13 +1023,13 @@ IShape
         private static void stroke_color_get(System.IntPtr obj, System.IntPtr pd, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                            
                 try
                 {
-                    ((IShapeConcrete)wrapper).GetStrokeColor(out r, out g, out b, out a);
+                    ((IShapeConcrete)ws.Target).GetStrokeColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -1132,13 +1058,13 @@ IShape
         private static void stroke_color_set(System.IntPtr obj, System.IntPtr pd, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).SetStrokeColor(r, g, b, a);
+                    ((IShapeConcrete)ws.Target).SetStrokeColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1167,13 +1093,13 @@ IShape
         private static double stroke_width_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_width_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IShapeConcrete)wrapper).GetStrokeWidth();
+                    _ret_var = ((IShapeConcrete)ws.Target).GetStrokeWidth();
                 }
                 catch (Exception e)
                 {
@@ -1203,13 +1129,13 @@ IShape
         private static void stroke_width_set(System.IntPtr obj, System.IntPtr pd, double w)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_width_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).SetStrokeWidth(w);
+                    ((IShapeConcrete)ws.Target).SetStrokeWidth(w);
                 }
                 catch (Exception e)
                 {
@@ -1238,13 +1164,13 @@ IShape
         private static double stroke_location_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_location_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IShapeConcrete)wrapper).GetStrokeLocation();
+                    _ret_var = ((IShapeConcrete)ws.Target).GetStrokeLocation();
                 }
                 catch (Exception e)
                 {
@@ -1274,13 +1200,13 @@ IShape
         private static void stroke_location_set(System.IntPtr obj, System.IntPtr pd, double centered)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_location_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).SetStrokeLocation(centered);
+                    ((IShapeConcrete)ws.Target).SetStrokeLocation(centered);
                 }
                 catch (Exception e)
                 {
@@ -1309,14 +1235,14 @@ IShape
         private static void stroke_dash_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr dash, out uint length)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_dash_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Gfx.Dash _out_dash = default(Efl.Gfx.Dash);
         length = default(uint);                            
                 try
                 {
-                    ((IShapeConcrete)wrapper).GetStrokeDash(out _out_dash, out length);
+                    ((IShapeConcrete)ws.Target).GetStrokeDash(out _out_dash, out length);
                 }
                 catch (Exception e)
                 {
@@ -1346,14 +1272,14 @@ IShape
         private static void stroke_dash_set(System.IntPtr obj, System.IntPtr pd, ref Efl.Gfx.Dash.NativeStruct dash, uint length)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_dash_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Gfx.Dash _in_dash = dash;
                                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).SetStrokeDash(ref _in_dash, length);
+                    ((IShapeConcrete)ws.Target).SetStrokeDash(ref _in_dash, length);
                 }
                 catch (Exception e)
                 {
@@ -1383,13 +1309,13 @@ IShape
         private static Efl.Gfx.Cap stroke_cap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_cap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.Cap _ret_var = default(Efl.Gfx.Cap);
                 try
                 {
-                    _ret_var = ((IShapeConcrete)wrapper).GetStrokeCap();
+                    _ret_var = ((IShapeConcrete)ws.Target).GetStrokeCap();
                 }
                 catch (Exception e)
                 {
@@ -1419,13 +1345,13 @@ IShape
         private static void stroke_cap_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.Cap c)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_cap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).SetStrokeCap(c);
+                    ((IShapeConcrete)ws.Target).SetStrokeCap(c);
                 }
                 catch (Exception e)
                 {
@@ -1454,13 +1380,13 @@ IShape
         private static Efl.Gfx.Join stroke_join_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_join_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.Join _ret_var = default(Efl.Gfx.Join);
                 try
                 {
-                    _ret_var = ((IShapeConcrete)wrapper).GetStrokeJoin();
+                    _ret_var = ((IShapeConcrete)ws.Target).GetStrokeJoin();
                 }
                 catch (Exception e)
                 {
@@ -1490,13 +1416,13 @@ IShape
         private static void stroke_join_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.Join j)
         {
             Eina.Log.Debug("function efl_gfx_shape_stroke_join_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).SetStrokeJoin(j);
+                    ((IShapeConcrete)ws.Target).SetStrokeJoin(j);
                 }
                 catch (Exception e)
                 {
@@ -1525,13 +1451,13 @@ IShape
         private static Efl.Gfx.FillRule fill_rule_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_shape_fill_rule_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.FillRule _ret_var = default(Efl.Gfx.FillRule);
                 try
                 {
-                    _ret_var = ((IShapeConcrete)wrapper).GetFillRule();
+                    _ret_var = ((IShapeConcrete)ws.Target).GetFillRule();
                 }
                 catch (Exception e)
                 {
@@ -1561,13 +1487,13 @@ IShape
         private static void fill_rule_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.FillRule fill_rule)
         {
             Eina.Log.Debug("function efl_gfx_shape_fill_rule_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).SetFillRule(fill_rule);
+                    ((IShapeConcrete)ws.Target).SetFillRule(fill_rule);
                 }
                 catch (Exception e)
                 {
@@ -1596,15 +1522,15 @@ IShape
         private static void path_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr op, out System.IntPtr points)
         {
             Eina.Log.Debug("function efl_gfx_path_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Gfx.PathCommandType _out_op = default(Efl.Gfx.PathCommandType);
         double _out_points = default(double);
                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).GetPath(out _out_op, out _out_points);
+                    ((IShapeConcrete)ws.Target).GetPath(out _out_op, out _out_points);
                 }
                 catch (Exception e)
                 {
@@ -1635,15 +1561,15 @@ IShape
         private static void path_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr op, System.IntPtr points)
         {
             Eina.Log.Debug("function efl_gfx_path_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_op = Eina.PrimitiveConversion.PointerToManaged<Efl.Gfx.PathCommandType>(op);
         var _in_points = Eina.PrimitiveConversion.PointerToManaged<double>(points);
                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).SetPath(_in_op, _in_points);
+                    ((IShapeConcrete)ws.Target).SetPath(_in_op, _in_points);
                 }
                 catch (Exception e)
                 {
@@ -1672,13 +1598,13 @@ IShape
         private static void length_get(System.IntPtr obj, System.IntPtr pd, out uint commands, out uint points)
         {
             Eina.Log.Debug("function efl_gfx_path_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         commands = default(uint);        points = default(uint);                            
                 try
                 {
-                    ((IShapeConcrete)wrapper).GetLength(out commands, out points);
+                    ((IShapeConcrete)ws.Target).GetLength(out commands, out points);
                 }
                 catch (Exception e)
                 {
@@ -1707,13 +1633,13 @@ IShape
         private static void current_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_path_current_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IShapeConcrete)wrapper).GetCurrent(out x, out y);
+                    ((IShapeConcrete)ws.Target).GetCurrent(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -1742,13 +1668,13 @@ IShape
         private static void current_ctrl_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_path_current_ctrl_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IShapeConcrete)wrapper).GetCurrentCtrl(out x, out y);
+                    ((IShapeConcrete)ws.Target).GetCurrentCtrl(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -1777,13 +1703,13 @@ IShape
         private static void copy_from(System.IntPtr obj, System.IntPtr pd, Efl.Object dup_from)
         {
             Eina.Log.Debug("function efl_gfx_path_copy_from was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).CopyFrom(dup_from);
+                    ((IShapeConcrete)ws.Target).CopyFrom(dup_from);
                 }
                 catch (Exception e)
                 {
@@ -1812,14 +1738,14 @@ IShape
         private static void bounds_get(System.IntPtr obj, System.IntPtr pd, out Eina.Rect.NativeStruct r)
         {
             Eina.Log.Debug("function efl_gfx_path_bounds_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Rect _out_r = default(Eina.Rect);
                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).GetBounds(out _out_r);
+                    ((IShapeConcrete)ws.Target).GetBounds(out _out_r);
                 }
                 catch (Exception e)
                 {
@@ -1849,13 +1775,13 @@ IShape
         private static void reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IShapeConcrete)wrapper).Reset();
+                    ((IShapeConcrete)ws.Target).Reset();
                 }
                 catch (Exception e)
                 {
@@ -1884,13 +1810,13 @@ IShape
         private static void append_move_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_move_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendMoveTo(x, y);
+                    ((IShapeConcrete)ws.Target).AppendMoveTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1919,13 +1845,13 @@ IShape
         private static void append_line_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_line_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendLineTo(x, y);
+                    ((IShapeConcrete)ws.Target).AppendLineTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1954,13 +1880,13 @@ IShape
         private static void append_quadratic_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double ctrl_x, double ctrl_y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_quadratic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendQuadraticTo(x, y, ctrl_x, ctrl_y);
+                    ((IShapeConcrete)ws.Target).AppendQuadraticTo(x, y, ctrl_x, ctrl_y);
                 }
                 catch (Exception e)
                 {
@@ -1989,13 +1915,13 @@ IShape
         private static void append_squadratic_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_squadratic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendSquadraticTo(x, y);
+                    ((IShapeConcrete)ws.Target).AppendSquadraticTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -2024,13 +1950,13 @@ IShape
         private static void append_cubic_to(System.IntPtr obj, System.IntPtr pd, double ctrl_x0, double ctrl_y0, double ctrl_x1, double ctrl_y1, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_cubic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendCubicTo(ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, x, y);
+                    ((IShapeConcrete)ws.Target).AppendCubicTo(ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, x, y);
                 }
                 catch (Exception e)
                 {
@@ -2059,13 +1985,13 @@ IShape
         private static void append_scubic_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double ctrl_x, double ctrl_y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_scubic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendScubicTo(x, y, ctrl_x, ctrl_y);
+                    ((IShapeConcrete)ws.Target).AppendScubicTo(x, y, ctrl_x, ctrl_y);
                 }
                 catch (Exception e)
                 {
@@ -2094,13 +2020,13 @@ IShape
         private static void append_arc_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double rx, double ry, double angle, bool large_arc, bool sweep)
         {
             Eina.Log.Debug("function efl_gfx_path_append_arc_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendArcTo(x, y, rx, ry, angle, large_arc, sweep);
+                    ((IShapeConcrete)ws.Target).AppendArcTo(x, y, rx, ry, angle, large_arc, sweep);
                 }
                 catch (Exception e)
                 {
@@ -2129,13 +2055,13 @@ IShape
         private static void append_arc(System.IntPtr obj, System.IntPtr pd, double x, double y, double w, double h, double start_angle, double sweep_length)
         {
             Eina.Log.Debug("function efl_gfx_path_append_arc was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendArc(x, y, w, h, start_angle, sweep_length);
+                    ((IShapeConcrete)ws.Target).AppendArc(x, y, w, h, start_angle, sweep_length);
                 }
                 catch (Exception e)
                 {
@@ -2164,13 +2090,13 @@ IShape
         private static void append_close(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_append_close was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IShapeConcrete)wrapper).CloseAppend();
+                    ((IShapeConcrete)ws.Target).CloseAppend();
                 }
                 catch (Exception e)
                 {
@@ -2199,13 +2125,13 @@ IShape
         private static void append_circle(System.IntPtr obj, System.IntPtr pd, double x, double y, double radius)
         {
             Eina.Log.Debug("function efl_gfx_path_append_circle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendCircle(x, y, radius);
+                    ((IShapeConcrete)ws.Target).AppendCircle(x, y, radius);
                 }
                 catch (Exception e)
                 {
@@ -2234,13 +2160,13 @@ IShape
         private static void append_rect(System.IntPtr obj, System.IntPtr pd, double x, double y, double w, double h, double rx, double ry)
         {
             Eina.Log.Debug("function efl_gfx_path_append_rect was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendRect(x, y, w, h, rx, ry);
+                    ((IShapeConcrete)ws.Target).AppendRect(x, y, w, h, rx, ry);
                 }
                 catch (Exception e)
                 {
@@ -2269,13 +2195,13 @@ IShape
         private static void append_svg_path(System.IntPtr obj, System.IntPtr pd, System.String svg_path_data)
         {
             Eina.Log.Debug("function efl_gfx_path_append_svg_path was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IShapeConcrete)wrapper).AppendSvgPath(svg_path_data);
+                    ((IShapeConcrete)ws.Target).AppendSvgPath(svg_path_data);
                 }
                 catch (Exception e)
                 {
@@ -2304,13 +2230,13 @@ IShape
         private static bool interpolate(System.IntPtr obj, System.IntPtr pd, Efl.Object from, Efl.Object to, double pos_map)
         {
             Eina.Log.Debug("function efl_gfx_path_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IShapeConcrete)wrapper).Interpolate(from, to, pos_map);
+                    _ret_var = ((IShapeConcrete)ws.Target).Interpolate(from, to, pos_map);
                 }
                 catch (Exception e)
                 {
@@ -2340,13 +2266,13 @@ IShape
         private static bool equal_commands(System.IntPtr obj, System.IntPtr pd, Efl.Object with)
         {
             Eina.Log.Debug("function efl_gfx_path_equal_commands was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IShapeConcrete)wrapper).EqualCommands(with);
+                    _ret_var = ((IShapeConcrete)ws.Target).EqualCommands(with);
                 }
                 catch (Exception e)
                 {
@@ -2376,13 +2302,13 @@ IShape
         private static void reserve(System.IntPtr obj, System.IntPtr pd, uint cmd_count, uint pts_count)
         {
             Eina.Log.Debug("function efl_gfx_path_reserve was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IShapeConcrete)wrapper).Reserve(cmd_count, pts_count);
+                    ((IShapeConcrete)ws.Target).Reserve(cmd_count, pts_count);
                 }
                 catch (Exception e)
                 {
@@ -2411,13 +2337,13 @@ IShape
         private static void commit(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_commit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IShapeConcrete)wrapper).Commit();
+                    ((IShapeConcrete)ws.Target).Commit();
                 }
                 catch (Exception e)
                 {
@@ -2435,7 +2361,7 @@ IShape
 
         private static efl_gfx_path_commit_delegate efl_gfx_path_commit_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index ec413f5..9f45a5f 100644 (file)
@@ -40,13 +40,13 @@ bool SetSizeClass(System.String size_class, int minw, int minh, int maxw, int ma
 void DelSizeClass(System.String size_class);
             }
 /// <summary>Efl Gfx Size Class interface</summary>
-sealed public class ISizeClassConcrete : 
-
-ISizeClass
+sealed public class ISizeClassConcrete :
+    Efl.Eo.EoWrapper
+    , ISizeClass
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -61,86 +61,12 @@ ISizeClass
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_size_class_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ISizeClass"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ISizeClassConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ISizeClassConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ISizeClassConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Get width and height of size class.
@@ -233,7 +159,7 @@ ISizeClass
             return Efl.Gfx.ISizeClassConcrete.efl_gfx_size_class_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_gfx_size_class_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String size_class,  out int minw,  out int minh,  out int maxw,  out int maxh);
@@ -246,13 +172,13 @@ ISizeClass
         private static bool size_class_get(System.IntPtr obj, System.IntPtr pd, System.String size_class, out int minw, out int minh, out int maxw, out int maxh)
         {
             Eina.Log.Debug("function efl_gfx_size_class_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         minw = default(int);        minh = default(int);        maxw = default(int);        maxh = default(int);                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISizeClass)wrapper).GetSizeClass(size_class, out minw, out minh, out maxw, out maxh);
+                    _ret_var = ((ISizeClass)ws.Target).GetSizeClass(size_class, out minw, out minh, out maxw, out maxh);
                 }
                 catch (Exception e)
                 {
@@ -282,13 +208,13 @@ ISizeClass
         private static bool size_class_set(System.IntPtr obj, System.IntPtr pd, System.String size_class, int minw, int minh, int maxw, int maxh)
         {
             Eina.Log.Debug("function efl_gfx_size_class_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISizeClass)wrapper).SetSizeClass(size_class, minw, minh, maxw, maxh);
+                    _ret_var = ((ISizeClass)ws.Target).SetSizeClass(size_class, minw, minh, maxw, maxh);
                 }
                 catch (Exception e)
                 {
@@ -318,13 +244,13 @@ ISizeClass
         private static void size_class_del(System.IntPtr obj, System.IntPtr pd, System.String size_class)
         {
             Eina.Log.Debug("function efl_gfx_size_class_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ISizeClass)wrapper).DelSizeClass(size_class);
+                    ((ISizeClass)ws.Target).DelSizeClass(size_class);
                 }
                 catch (Exception e)
                 {
@@ -342,7 +268,7 @@ ISizeClass
 
         private static efl_gfx_size_class_del_delegate efl_gfx_size_class_del_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index cbd5c3a..721c31d 100644 (file)
@@ -11,6 +11,7 @@ namespace Gfx {
 
 public partial class Constants
 {
+    /// <summary>bottom-most layer number</summary>
     public static readonly short StackLayerMin = -32768;
 }
 }
@@ -23,6 +24,7 @@ namespace Gfx {
 
 public partial class Constants
 {
+    /// <summary>top-most layer number</summary>
     public static readonly short StackLayerMax = 32767;
 }
 }
@@ -111,41 +113,41 @@ void LowerToBottom();
     /// (Since EFL 1.22)</summary>
     event EventHandler StackingChangedEvt;
     /// <summary>Retrieves the layer of its canvas that the given object is part of.
-/// See also <see cref="Efl.Gfx.IStack.SetLayer"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The number of the layer to place the object on. Must be between <see cref="Efl.Gfx.Constants.StackLayerMin"/> and <see cref="Efl.Gfx.Constants.StackLayerMax"/>.</value>
+    /// See also <see cref="Efl.Gfx.IStack.SetLayer"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The number of the layer to place the object on. Must be between <see cref="Efl.Gfx.Constants.StackLayerMin"/> and <see cref="Efl.Gfx.Constants.StackLayerMax"/>.</value>
     short Layer {
         get ;
         set ;
     }
     /// <summary>Get the Evas object stacked right below <c>obj</c>
-/// This function will traverse layers in its search, if there are objects on layers below the one <c>obj</c> is placed at.
-/// 
-/// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
+    /// This function will traverse layers in its search, if there are objects on layers below the one <c>obj</c> is placed at.
+    /// 
+    /// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
     Efl.Gfx.IStack Below {
         get ;
     }
     /// <summary>Get the Evas object stacked right above <c>obj</c>
-/// This function will traverse layers in its search, if there are objects on layers above the one <c>obj</c> is placed at.
-/// 
-/// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
+    /// This function will traverse layers in its search, if there are objects on layers above the one <c>obj</c> is placed at.
+    /// 
+    /// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
     Efl.Gfx.IStack Above {
         get ;
     }
 }
 /// <summary>Efl graphics stack interface
 /// (Since EFL 1.22)</summary>
-sealed public class IStackConcrete : 
-
-IStack
+sealed public class IStackConcrete :
+    Efl.Eo.EoWrapper
+    , IStack
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -160,155 +162,12 @@ IStack
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_stack_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IStack"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IStackConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IStackConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
+    private IStackConcrete(System.IntPtr raw) : base(raw)
     {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Object stacking was changed.
@@ -319,10 +178,9 @@ IStack
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -461,28 +319,28 @@ IStack
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Retrieves the layer of its canvas that the given object is part of.
-/// See also <see cref="Efl.Gfx.IStack.SetLayer"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The number of the layer to place the object on. Must be between <see cref="Efl.Gfx.Constants.StackLayerMin"/> and <see cref="Efl.Gfx.Constants.StackLayerMax"/>.</value>
+    /// See also <see cref="Efl.Gfx.IStack.SetLayer"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The number of the layer to place the object on. Must be between <see cref="Efl.Gfx.Constants.StackLayerMin"/> and <see cref="Efl.Gfx.Constants.StackLayerMax"/>.</value>
     public short Layer {
         get { return GetLayer(); }
         set { SetLayer(value); }
     }
     /// <summary>Get the Evas object stacked right below <c>obj</c>
-/// This function will traverse layers in its search, if there are objects on layers below the one <c>obj</c> is placed at.
-/// 
-/// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
+    /// This function will traverse layers in its search, if there are objects on layers below the one <c>obj</c> is placed at.
+    /// 
+    /// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
     public Efl.Gfx.IStack Below {
         get { return GetBelow(); }
     }
     /// <summary>Get the Evas object stacked right above <c>obj</c>
-/// This function will traverse layers in its search, if there are objects on layers above the one <c>obj</c> is placed at.
-/// 
-/// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
-/// (Since EFL 1.22)</summary>
-/// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
+    /// This function will traverse layers in its search, if there are objects on layers above the one <c>obj</c> is placed at.
+    /// 
+    /// See also <see cref="Efl.Gfx.IStack.GetLayer"/>, <see cref="Efl.Gfx.IStack.SetLayer"/> and <see cref="Efl.Gfx.IStack.GetBelow"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The <see cref="Efl.Gfx.IStack"/> object directly below <c>obj</c>, if any, or <c>null</c>, if none.</value>
     public Efl.Gfx.IStack Above {
         get { return GetAbove(); }
     }
@@ -591,7 +449,7 @@ IStack
             return Efl.Gfx.IStackConcrete.efl_gfx_stack_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate short efl_gfx_stack_layer_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -604,13 +462,13 @@ IStack
         private static short layer_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_layer_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             short _ret_var = default(short);
                 try
                 {
-                    _ret_var = ((IStack)wrapper).GetLayer();
+                    _ret_var = ((IStack)ws.Target).GetLayer();
                 }
                 catch (Exception e)
                 {
@@ -640,13 +498,13 @@ IStack
         private static void layer_set(System.IntPtr obj, System.IntPtr pd, short l)
         {
             Eina.Log.Debug("function efl_gfx_stack_layer_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IStack)wrapper).SetLayer(l);
+                    ((IStack)ws.Target).SetLayer(l);
                 }
                 catch (Exception e)
                 {
@@ -675,13 +533,13 @@ IStack
         private static Efl.Gfx.IStack below_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_below_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IStack _ret_var = default(Efl.Gfx.IStack);
                 try
                 {
-                    _ret_var = ((IStack)wrapper).GetBelow();
+                    _ret_var = ((IStack)ws.Target).GetBelow();
                 }
                 catch (Exception e)
                 {
@@ -711,13 +569,13 @@ IStack
         private static Efl.Gfx.IStack above_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_above_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IStack _ret_var = default(Efl.Gfx.IStack);
                 try
                 {
-                    _ret_var = ((IStack)wrapper).GetAbove();
+                    _ret_var = ((IStack)ws.Target).GetAbove();
                 }
                 catch (Exception e)
                 {
@@ -747,13 +605,13 @@ IStack
         private static void stack_below(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IStack below)
         {
             Eina.Log.Debug("function efl_gfx_stack_below was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IStack)wrapper).StackBelow(below);
+                    ((IStack)ws.Target).StackBelow(below);
                 }
                 catch (Exception e)
                 {
@@ -782,13 +640,13 @@ IStack
         private static void raise_to_top(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_raise_to_top was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IStack)wrapper).RaiseToTop();
+                    ((IStack)ws.Target).RaiseToTop();
                 }
                 catch (Exception e)
                 {
@@ -817,13 +675,13 @@ IStack
         private static void stack_above(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IStack above)
         {
             Eina.Log.Debug("function efl_gfx_stack_above was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IStack)wrapper).StackAbove(above);
+                    ((IStack)ws.Target).StackAbove(above);
                 }
                 catch (Exception e)
                 {
@@ -852,13 +710,13 @@ IStack
         private static void lower_to_bottom(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_stack_lower_to_bottom was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IStack)wrapper).LowerToBottom();
+                    ((IStack)ws.Target).LowerToBottom();
                 }
                 catch (Exception e)
                 {
@@ -876,7 +734,7 @@ IStack
 
         private static efl_gfx_stack_lower_to_bottom_delegate efl_gfx_stack_lower_to_bottom_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 483c075..8b75490 100644 (file)
@@ -36,13 +36,13 @@ bool SetTextClass(System.String text_class, System.String font, Efl.Font.Size si
 void DelTextClass(System.String text_class);
             }
 /// <summary>Efl Gfx Text Class interface</summary>
-sealed public class ITextClassConcrete : 
-
-ITextClass
+sealed public class ITextClassConcrete :
+    Efl.Eo.EoWrapper
+    , ITextClass
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -57,86 +57,12 @@ ITextClass
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_text_class_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ITextClass"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextClassConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextClassConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ITextClassConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Get font and font size from edje text class.
@@ -225,7 +151,7 @@ ITextClass
             return Efl.Gfx.ITextClassConcrete.efl_gfx_text_class_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_gfx_text_class_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text_class, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String font,  out Efl.Font.Size size);
@@ -238,14 +164,14 @@ ITextClass
         private static bool text_class_get(System.IntPtr obj, System.IntPtr pd, System.String text_class, out System.String font, out Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_gfx_text_class_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         System.String _out_font = default(System.String);
         size = default(Efl.Font.Size);                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextClass)wrapper).GetTextClass(text_class, out _out_font, out size);
+                    _ret_var = ((ITextClass)ws.Target).GetTextClass(text_class, out _out_font, out size);
                 }
                 catch (Exception e)
                 {
@@ -276,13 +202,13 @@ ITextClass
         private static bool text_class_set(System.IntPtr obj, System.IntPtr pd, System.String text_class, System.String font, Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_gfx_text_class_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextClass)wrapper).SetTextClass(text_class, font, size);
+                    _ret_var = ((ITextClass)ws.Target).SetTextClass(text_class, font, size);
                 }
                 catch (Exception e)
                 {
@@ -312,13 +238,13 @@ ITextClass
         private static void text_class_del(System.IntPtr obj, System.IntPtr pd, System.String text_class)
         {
             Eina.Log.Debug("function efl_gfx_text_class_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextClass)wrapper).DelTextClass(text_class);
+                    ((ITextClass)ws.Target).DelTextClass(text_class);
                 }
                 catch (Exception e)
                 {
@@ -336,7 +262,7 @@ ITextClass
 
         private static efl_gfx_text_class_del_delegate efl_gfx_text_class_del_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 073a8cb..f6eb8a1 100644 (file)
@@ -9,17 +9,25 @@ namespace Efl {
 
 namespace Font {
 
+/// <summary>Efl font size type</summary>
 public struct Size
 {
     private int payload;
-    public static implicit operator Size(int x)
+
+    /// <summary>Converts an instance of int to this struct.</summary>
+    /// <param name="value">The value to be converted.</param>
+    /// <returns>A struct with the given value.</returns>
+    public static implicit operator Size(int value)
     {
-        return new Size{payload=x};
+        return new Size{payload=value};
     }
 
-    public static implicit operator int(Size x)
+    /// <summary>Converts an instance of this struct to int.</summary>
+    /// <param name="value">The value to be converted packed in this struct.</param>
+    /// <returns>The actual value the alias is wrapping.</returns>
+    public static implicit operator int(Size value)
     {
-        return x.payload;
+        return value.payload;
     }
 
 }
@@ -246,15 +254,15 @@ namespace Gfx {
 /// (Since EFL 1.18)</summary>
 public enum ChangeFlag
 {
-/// <summary>No change</summary>
+/// <summary>Nothing changed.</summary>
 None = 0,
-/// <summary>matrix got changed</summary>
+/// <summary>Matrix got changed.</summary>
 Matrix = 1,
-/// <summary>path got changes</summary>
+/// <summary>Path got changed.</summary>
 Path = 2,
-/// <summary>coloring or fill information changed, not geometry</summary>
+/// <summary>Coloring or fill information changed, not geometry.</summary>
 Fill = 4,
-/// <summary>all properties got changed</summary>
+/// <summary>All properties got changed.</summary>
 All = 65535,
 }
 
@@ -327,12 +335,16 @@ public struct Dash
         this.Gap = Gap;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Dash(IntPtr ptr)
     {
         var tmp = (Dash.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Dash.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Dash.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -361,6 +373,8 @@ public struct Dash
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -401,12 +415,16 @@ public struct GradientStop
         this.A = A;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator GradientStop(IntPtr ptr)
     {
         var tmp = (GradientStop.NativeStruct)Marshal.PtrToStructure(ptr, typeof(GradientStop.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct GradientStop.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -447,6 +465,8 @@ public struct GradientStop
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -482,12 +502,16 @@ public struct StrokeColor
         this.A = A;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator StrokeColor(IntPtr ptr)
     {
         var tmp = (StrokeColor.NativeStruct)Marshal.PtrToStructure(ptr, typeof(StrokeColor.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct StrokeColor.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -524,6 +548,8 @@ public struct StrokeColor
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -576,12 +602,16 @@ public struct Stroke
         this.Join = Join;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Stroke(IntPtr ptr)
     {
         var tmp = (Stroke.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Stroke.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Stroke.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -634,6 +664,8 @@ public struct Stroke
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -657,12 +689,16 @@ public struct ShapePublic
         this.Stroke = Stroke;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ShapePublic(IntPtr ptr)
     {
         var tmp = (ShapePublic.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ShapePublic.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ShapePublic.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -687,57 +723,7 @@ public struct ShapePublic
 
     }
 
-}
-
-}
-
-}
-
-namespace Efl {
-
-namespace Gfx {
-
-[StructLayout(LayoutKind.Sequential)]
-public struct PathChangeEvent
-{
-    /// <summary>Indicates what changed.</summary>
-    public Efl.Gfx.ChangeFlag What;
-    ///<summary>Constructor for PathChangeEvent.</summary>
-    public PathChangeEvent(
-        Efl.Gfx.ChangeFlag What = default(Efl.Gfx.ChangeFlag)    )
-    {
-        this.What = What;
-    }
-
-    public static implicit operator PathChangeEvent(IntPtr ptr)
-    {
-        var tmp = (PathChangeEvent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(PathChangeEvent.NativeStruct));
-        return tmp;
-    }
-
-    ///<summary>Internal wrapper for struct PathChangeEvent.</summary>
-    [StructLayout(LayoutKind.Sequential)]
-    public struct NativeStruct
-    {
-        
-        public Efl.Gfx.ChangeFlag What;
-        ///<summary>Implicit conversion to the internal/marshalling representation.</summary>
-        public static implicit operator PathChangeEvent.NativeStruct(PathChangeEvent _external_struct)
-        {
-            var _internal_struct = new PathChangeEvent.NativeStruct();
-            _internal_struct.What = _external_struct.What;
-            return _internal_struct;
-        }
-
-        ///<summary>Implicit conversion to the managed representation.</summary>
-        public static implicit operator PathChangeEvent(PathChangeEvent.NativeStruct _internal_struct)
-        {
-            var _external_struct = new PathChangeEvent();
-            _external_struct.What = _internal_struct.What;
-            return _external_struct;
-        }
-
-    }
+    #pragma warning restore CS1591
 
 }
 
@@ -764,12 +750,16 @@ public struct RenderPost
         this.Updated_area = Updated_area;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator RenderPost(IntPtr ptr)
     {
         var tmp = (RenderPost.NativeStruct)Marshal.PtrToStructure(ptr, typeof(RenderPost.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct RenderPost.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -794,6 +784,8 @@ public struct RenderPost
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 11a13a8..cef8883 100644 (file)
@@ -39,29 +39,29 @@ Eina.Size2D GetViewSize();
 /// <param name="size">Size of the view.</param>
 void SetViewSize(Eina.Size2D size);
             /// <summary>The dimensions of this object&apos;s viewport.
-/// This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.
-/// 
-/// For scalable scenes (vector graphics, 3D or GL), this means scaling the contents of the scene and drawing more pixels as a result; For pixmaps this means zooming and stretching up or down the backing buffer to fit this view.
-/// 
-/// In most cases the view should have the same dimensions as the object on the canvas, for best quality.
-/// 
-/// <see cref="Efl.Gfx.IView.SetViewSize"/> may not be implemented. If it is, it might trigger a complete recalculation of the scene, or reload of the pixel data.
-/// 
-/// Refer to each implementing class specific documentation for more details.</summary>
-/// <value>Size of the view.</value>
+    /// This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.
+    /// 
+    /// For scalable scenes (vector graphics, 3D or GL), this means scaling the contents of the scene and drawing more pixels as a result; For pixmaps this means zooming and stretching up or down the backing buffer to fit this view.
+    /// 
+    /// In most cases the view should have the same dimensions as the object on the canvas, for best quality.
+    /// 
+    /// <see cref="Efl.Gfx.IView.SetViewSize"/> may not be implemented. If it is, it might trigger a complete recalculation of the scene, or reload of the pixel data.
+    /// 
+    /// Refer to each implementing class specific documentation for more details.</summary>
+    /// <value>Size of the view.</value>
     Eina.Size2D ViewSize {
         get ;
         set ;
     }
 }
 /// <summary>Efl graphics view interface</summary>
-sealed public class IViewConcrete : 
-
-IView
+sealed public class IViewConcrete :
+    Efl.Eo.EoWrapper
+    , IView
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -76,86 +76,12 @@ IView
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_gfx_view_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IView"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IViewConcrete(System.IntPtr raw)
+    private IViewConcrete(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IViewConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>The dimensions of this object&apos;s viewport.
@@ -191,16 +117,16 @@ IView
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>The dimensions of this object&apos;s viewport.
-/// This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.
-/// 
-/// For scalable scenes (vector graphics, 3D or GL), this means scaling the contents of the scene and drawing more pixels as a result; For pixmaps this means zooming and stretching up or down the backing buffer to fit this view.
-/// 
-/// In most cases the view should have the same dimensions as the object on the canvas, for best quality.
-/// 
-/// <see cref="Efl.Gfx.IView.SetViewSize"/> may not be implemented. If it is, it might trigger a complete recalculation of the scene, or reload of the pixel data.
-/// 
-/// Refer to each implementing class specific documentation for more details.</summary>
-/// <value>Size of the view.</value>
+    /// This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.
+    /// 
+    /// For scalable scenes (vector graphics, 3D or GL), this means scaling the contents of the scene and drawing more pixels as a result; For pixmaps this means zooming and stretching up or down the backing buffer to fit this view.
+    /// 
+    /// In most cases the view should have the same dimensions as the object on the canvas, for best quality.
+    /// 
+    /// <see cref="Efl.Gfx.IView.SetViewSize"/> may not be implemented. If it is, it might trigger a complete recalculation of the scene, or reload of the pixel data.
+    /// 
+    /// Refer to each implementing class specific documentation for more details.</summary>
+    /// <value>Size of the view.</value>
     public Eina.Size2D ViewSize {
         get { return GetViewSize(); }
         set { SetViewSize(value); }
@@ -250,7 +176,7 @@ IView
             return Efl.Gfx.IViewConcrete.efl_gfx_view_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Size2D.NativeStruct efl_gfx_view_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -263,13 +189,13 @@ IView
         private static Eina.Size2D.NativeStruct view_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_view_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IView)wrapper).GetViewSize();
+                    _ret_var = ((IView)ws.Target).GetViewSize();
                 }
                 catch (Exception e)
                 {
@@ -299,14 +225,14 @@ IView
         private static void view_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_view_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((IView)wrapper).SetViewSize(_in_size);
+                    ((IView)ws.Target).SetViewSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -324,7 +250,7 @@ IView
 
         private static efl_gfx_view_size_set_delegate efl_gfx_view_size_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index c94e2fe..e9650e6 100644 (file)
@@ -11,7 +11,7 @@ namespace Input {
 
 /// <summary>Represents a pointing device such as a touch finger, pen or mouse.</summary>
 [Efl.Input.Device.NativeMethods]
-public class Device : Efl.Object, Efl.Eo.IWrapper
+public class Device : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Device(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Device"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Device type property</summary>
     /// <returns>Input device class</returns>
     virtual public Efl.Input.DeviceType GetDeviceType() {
@@ -152,29 +125,29 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
         return _ret_var;
  }
     /// <summary>Device type property</summary>
-/// <value>Input device class</value>
+    /// <value>Input device class</value>
     public Efl.Input.DeviceType DeviceType {
         get { return GetDeviceType(); }
         set { SetDeviceType(value); }
     }
     /// <summary>Device source property</summary>
-/// <value>Input device</value>
+    /// <value>Input device</value>
     public Efl.Input.Device Source {
         get { return GetSource(); }
         set { SetSource(value); }
     }
     /// <summary>Get the <see cref="Efl.Input.Device"/> that represents a seat.
-/// This method will find the seat the device belongs to.
-/// 
-/// For this, it walk through device&apos;s parents looking for a device with <see cref="Efl.Input.DeviceType.Seat"/>. It may be the device itself.
-/// 
-/// In case no seat is found, <c>null</c> is returned.</summary>
-/// <value>The seat this device belongs to.</value>
+    /// This method will find the seat the device belongs to.
+    /// 
+    /// For this, it walk through device&apos;s parents looking for a device with <see cref="Efl.Input.DeviceType.Seat"/>. It may be the device itself.
+    /// 
+    /// In case no seat is found, <c>null</c> is returned.</summary>
+    /// <value>The seat this device belongs to.</value>
     public Efl.Input.Device Seat {
         get { return GetSeat(); }
     }
     /// <summary>Seat id number</summary>
-/// <value>The id of the seat</value>
+    /// <value>The id of the seat</value>
     public uint SeatId {
         get { return GetSeatId(); }
         set { SetSeatId(value); }
@@ -295,7 +268,7 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
             return Efl.Input.Device.efl_input_device_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Input.DeviceType efl_input_device_type_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -308,13 +281,13 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
         private static Efl.Input.DeviceType device_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.DeviceType _ret_var = default(Efl.Input.DeviceType);
                 try
                 {
-                    _ret_var = ((Device)wrapper).GetDeviceType();
+                    _ret_var = ((Device)ws.Target).GetDeviceType();
                 }
                 catch (Exception e)
                 {
@@ -344,13 +317,13 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
         private static void device_type_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.DeviceType klass)
         {
             Eina.Log.Debug("function efl_input_device_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Device)wrapper).SetDeviceType(klass);
+                    ((Device)ws.Target).SetDeviceType(klass);
                 }
                 catch (Exception e)
                 {
@@ -379,13 +352,13 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
         private static Efl.Input.Device source_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((Device)wrapper).GetSource();
+                    _ret_var = ((Device)ws.Target).GetSource();
                 }
                 catch (Exception e)
                 {
@@ -415,13 +388,13 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
         private static void source_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device src)
         {
             Eina.Log.Debug("function efl_input_device_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Device)wrapper).SetSource(src);
+                    ((Device)ws.Target).SetSource(src);
                 }
                 catch (Exception e)
                 {
@@ -450,13 +423,13 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
         private static Efl.Input.Device seat_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_seat_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((Device)wrapper).GetSeat();
+                    _ret_var = ((Device)ws.Target).GetSeat();
                 }
                 catch (Exception e)
                 {
@@ -486,13 +459,13 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
         private static uint seat_id_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_seat_id_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((Device)wrapper).GetSeatId();
+                    _ret_var = ((Device)ws.Target).GetSeatId();
                 }
                 catch (Exception e)
                 {
@@ -522,13 +495,13 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
         private static void seat_id_set(System.IntPtr obj, System.IntPtr pd, uint id)
         {
             Eina.Log.Debug("function efl_input_device_seat_id_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Device)wrapper).SetSeatId(id);
+                    ((Device)ws.Target).SetSeatId(id);
                 }
                 catch (Exception e)
                 {
@@ -557,13 +530,13 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
         private static System.IntPtr children_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_children_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Input.Device> _ret_var = default(Eina.Iterator<Efl.Input.Device>);
                 try
                 {
-                    _ret_var = ((Device)wrapper).ChildrenIterate();
+                    _ret_var = ((Device)ws.Target).ChildrenIterate();
                 }
                 catch (Exception e)
                 {
@@ -593,13 +566,13 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
         private static uint has_pointer_caps(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_has_pointer_caps was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((Device)wrapper).HasPointerCaps();
+                    _ret_var = ((Device)ws.Target).HasPointerCaps();
                 }
                 catch (Exception e)
                 {
@@ -618,7 +591,7 @@ public class Device : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_input_device_has_pointer_caps_delegate efl_input_device_has_pointer_caps_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 346095e..1777998 100644 (file)
@@ -53,51 +53,51 @@ bool GetFake();
     /// <summary>Resets the internal data to 0 or default values.</summary>
 void Reset();
                                                     /// <summary>The time at which an event was generated.
-/// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
-/// <value>Time in milliseconds when the event happened.</value>
+    /// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
+    /// <value>Time in milliseconds when the event happened.</value>
     double Timestamp {
         get ;
         set ;
     }
     /// <summary>Input device that originated this event.</summary>
-/// <value>Input device origin</value>
+    /// <value>Input device origin</value>
     Efl.Input.Device Device {
         get ;
         set ;
     }
     /// <summary>Extra flags for this event, may be changed by the user.</summary>
-/// <value>Input event flags</value>
+    /// <value>Input event flags</value>
     Efl.Input.Flags EventFlags {
         get ;
         set ;
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event is on hold.</summary>
-/// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
     bool Processed {
         get ;
         set ;
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event happened while scrolling.</summary>
-/// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
     bool Scrolling {
         get ;
         set ;
     }
     /// <summary><c>true</c> if the event was fake, not triggered by real hardware.</summary>
-/// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
     bool Fake {
         get ;
     }
 }
 /// <summary>Represents a generic event data.
 /// Note: Most Efl Events do not carry Efl Objects, rather simple data structures. This class is intended to carry more complex event data, such as pointer events.</summary>
-sealed public class IEventConcrete : 
-
-IEvent
+sealed public class IEventConcrete :
+    Efl.Eo.EoWrapper
+    , IEvent
     , Efl.IDuplicate
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -112,86 +112,12 @@ IEvent
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
         efl_input_event_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IEvent"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IEventConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IEventConcrete()
+    private IEventConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>The time at which an event was generated.
@@ -281,38 +207,38 @@ IEvent
         return _ret_var;
  }
     /// <summary>The time at which an event was generated.
-/// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
-/// <value>Time in milliseconds when the event happened.</value>
+    /// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
+    /// <value>Time in milliseconds when the event happened.</value>
     public double Timestamp {
         get { return GetTimestamp(); }
         set { SetTimestamp(value); }
     }
     /// <summary>Input device that originated this event.</summary>
-/// <value>Input device origin</value>
+    /// <value>Input device origin</value>
     public Efl.Input.Device Device {
         get { return GetDevice(); }
         set { SetDevice(value); }
     }
     /// <summary>Extra flags for this event, may be changed by the user.</summary>
-/// <value>Input event flags</value>
+    /// <value>Input event flags</value>
     public Efl.Input.Flags EventFlags {
         get { return GetEventFlags(); }
         set { SetEventFlags(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event is on hold.</summary>
-/// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
     public bool Processed {
         get { return GetProcessed(); }
         set { SetProcessed(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event happened while scrolling.</summary>
-/// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
     public bool Scrolling {
         get { return GetScrolling(); }
         set { SetScrolling(value); }
     }
     /// <summary><c>true</c> if the event was fake, not triggered by real hardware.</summary>
-/// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
     public bool Fake {
         get { return GetFake(); }
     }
@@ -471,7 +397,7 @@ IEvent
             return Efl.Input.IEventConcrete.efl_input_event_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_input_timestamp_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -484,13 +410,13 @@ IEvent
         private static double timestamp_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_timestamp_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IEventConcrete)wrapper).GetTimestamp();
+                    _ret_var = ((IEventConcrete)ws.Target).GetTimestamp();
                 }
                 catch (Exception e)
                 {
@@ -520,13 +446,13 @@ IEvent
         private static void timestamp_set(System.IntPtr obj, System.IntPtr pd, double ms)
         {
             Eina.Log.Debug("function efl_input_timestamp_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IEventConcrete)wrapper).SetTimestamp(ms);
+                    ((IEventConcrete)ws.Target).SetTimestamp(ms);
                 }
                 catch (Exception e)
                 {
@@ -555,13 +481,13 @@ IEvent
         private static Efl.Input.Device device_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((IEventConcrete)wrapper).GetDevice();
+                    _ret_var = ((IEventConcrete)ws.Target).GetDevice();
                 }
                 catch (Exception e)
                 {
@@ -591,13 +517,13 @@ IEvent
         private static void device_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device dev)
         {
             Eina.Log.Debug("function efl_input_device_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IEventConcrete)wrapper).SetDevice(dev);
+                    ((IEventConcrete)ws.Target).SetDevice(dev);
                 }
                 catch (Exception e)
                 {
@@ -626,13 +552,13 @@ IEvent
         private static Efl.Input.Flags event_flags_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_event_flags_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Flags _ret_var = default(Efl.Input.Flags);
                 try
                 {
-                    _ret_var = ((IEventConcrete)wrapper).GetEventFlags();
+                    _ret_var = ((IEventConcrete)ws.Target).GetEventFlags();
                 }
                 catch (Exception e)
                 {
@@ -662,13 +588,13 @@ IEvent
         private static void event_flags_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Flags flags)
         {
             Eina.Log.Debug("function efl_input_event_flags_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IEventConcrete)wrapper).SetEventFlags(flags);
+                    ((IEventConcrete)ws.Target).SetEventFlags(flags);
                 }
                 catch (Exception e)
                 {
@@ -697,13 +623,13 @@ IEvent
         private static bool processed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_processed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IEventConcrete)wrapper).GetProcessed();
+                    _ret_var = ((IEventConcrete)ws.Target).GetProcessed();
                 }
                 catch (Exception e)
                 {
@@ -733,13 +659,13 @@ IEvent
         private static void processed_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_processed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IEventConcrete)wrapper).SetProcessed(val);
+                    ((IEventConcrete)ws.Target).SetProcessed(val);
                 }
                 catch (Exception e)
                 {
@@ -768,13 +694,13 @@ IEvent
         private static bool scrolling_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_scrolling_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IEventConcrete)wrapper).GetScrolling();
+                    _ret_var = ((IEventConcrete)ws.Target).GetScrolling();
                 }
                 catch (Exception e)
                 {
@@ -804,13 +730,13 @@ IEvent
         private static void scrolling_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_scrolling_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IEventConcrete)wrapper).SetScrolling(val);
+                    ((IEventConcrete)ws.Target).SetScrolling(val);
                 }
                 catch (Exception e)
                 {
@@ -839,13 +765,13 @@ IEvent
         private static bool fake_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_fake_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IEventConcrete)wrapper).GetFake();
+                    _ret_var = ((IEventConcrete)ws.Target).GetFake();
                 }
                 catch (Exception e)
                 {
@@ -875,13 +801,13 @@ IEvent
         private static void reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IEventConcrete)wrapper).Reset();
+                    ((IEventConcrete)ws.Target).Reset();
                 }
                 catch (Exception e)
                 {
@@ -910,13 +836,13 @@ IEvent
         private static Efl.IDuplicate duplicate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_duplicate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IDuplicate _ret_var = default(Efl.IDuplicate);
                 try
                 {
-                    _ret_var = ((IEventConcrete)wrapper).Duplicate();
+                    _ret_var = ((IEventConcrete)ws.Target).Duplicate();
                 }
                 catch (Exception e)
                 {
@@ -935,7 +861,7 @@ IEvent
 
         private static efl_duplicate_delegate efl_duplicate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3b24e86..b0aef4b 100644 (file)
@@ -12,7 +12,7 @@ namespace Input {
 /// <summary>Represents a focus event.
 /// (Since EFL 1.22)</summary>
 [Efl.Input.Focus.NativeMethods]
-public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
+public class Focus : Efl.Object, Efl.IDuplicate, Efl.Input.IEvent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Focus(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Focus"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,33 +56,6 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The focused object
     /// (Since EFL 1.22)</summary>
     /// <returns>The focused object. In case this represents a canvas focus the object will be <c>null</c></returns>
@@ -185,45 +158,45 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>The focused object
-/// (Since EFL 1.22)</summary>
-/// <value>The focused object. In case this represents a canvas focus the object will be <c>null</c></value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The focused object. In case this represents a canvas focus the object will be <c>null</c></value>
     public Efl.Object Object {
         get { return GetObject(); }
         set { SetObject(value); }
     }
     /// <summary>The time at which an event was generated.
-/// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
-/// <value>Time in milliseconds when the event happened.</value>
+    /// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
+    /// <value>Time in milliseconds when the event happened.</value>
     public double Timestamp {
         get { return GetTimestamp(); }
         set { SetTimestamp(value); }
     }
     /// <summary>Input device that originated this event.</summary>
-/// <value>Input device origin</value>
+    /// <value>Input device origin</value>
     public Efl.Input.Device Device {
         get { return GetDevice(); }
         set { SetDevice(value); }
     }
     /// <summary>Extra flags for this event, may be changed by the user.</summary>
-/// <value>Input event flags</value>
+    /// <value>Input event flags</value>
     public Efl.Input.Flags EventFlags {
         get { return GetEventFlags(); }
         set { SetEventFlags(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event is on hold.</summary>
-/// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
     public bool Processed {
         get { return GetProcessed(); }
         set { SetProcessed(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event happened while scrolling.</summary>
-/// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
     public bool Scrolling {
         get { return GetScrolling(); }
         set { SetScrolling(value); }
     }
     /// <summary><c>true</c> if the event was fake, not triggered by real hardware.</summary>
-/// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
     public bool Fake {
         get { return GetFake(); }
     }
@@ -403,7 +376,7 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
             return Efl.Input.Focus.efl_input_focus_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Object efl_input_focus_object_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -416,13 +389,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static Efl.Object object_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_focus_object_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((Focus)wrapper).GetObject();
+                    _ret_var = ((Focus)ws.Target).GetObject();
                 }
                 catch (Exception e)
                 {
@@ -452,13 +425,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void object_set(System.IntPtr obj, System.IntPtr pd, Efl.Object kw_object)
         {
             Eina.Log.Debug("function efl_input_focus_object_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Focus)wrapper).SetObject(kw_object);
+                    ((Focus)ws.Target).SetObject(kw_object);
                 }
                 catch (Exception e)
                 {
@@ -487,13 +460,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static Efl.IDuplicate duplicate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_duplicate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IDuplicate _ret_var = default(Efl.IDuplicate);
                 try
                 {
-                    _ret_var = ((Focus)wrapper).Duplicate();
+                    _ret_var = ((Focus)ws.Target).Duplicate();
                 }
                 catch (Exception e)
                 {
@@ -523,13 +496,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static double timestamp_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_timestamp_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Focus)wrapper).GetTimestamp();
+                    _ret_var = ((Focus)ws.Target).GetTimestamp();
                 }
                 catch (Exception e)
                 {
@@ -559,13 +532,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void timestamp_set(System.IntPtr obj, System.IntPtr pd, double ms)
         {
             Eina.Log.Debug("function efl_input_timestamp_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Focus)wrapper).SetTimestamp(ms);
+                    ((Focus)ws.Target).SetTimestamp(ms);
                 }
                 catch (Exception e)
                 {
@@ -594,13 +567,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static Efl.Input.Device device_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((Focus)wrapper).GetDevice();
+                    _ret_var = ((Focus)ws.Target).GetDevice();
                 }
                 catch (Exception e)
                 {
@@ -630,13 +603,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void device_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device dev)
         {
             Eina.Log.Debug("function efl_input_device_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Focus)wrapper).SetDevice(dev);
+                    ((Focus)ws.Target).SetDevice(dev);
                 }
                 catch (Exception e)
                 {
@@ -665,13 +638,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static Efl.Input.Flags event_flags_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_event_flags_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Flags _ret_var = default(Efl.Input.Flags);
                 try
                 {
-                    _ret_var = ((Focus)wrapper).GetEventFlags();
+                    _ret_var = ((Focus)ws.Target).GetEventFlags();
                 }
                 catch (Exception e)
                 {
@@ -701,13 +674,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void event_flags_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Flags flags)
         {
             Eina.Log.Debug("function efl_input_event_flags_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Focus)wrapper).SetEventFlags(flags);
+                    ((Focus)ws.Target).SetEventFlags(flags);
                 }
                 catch (Exception e)
                 {
@@ -736,13 +709,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static bool processed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_processed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Focus)wrapper).GetProcessed();
+                    _ret_var = ((Focus)ws.Target).GetProcessed();
                 }
                 catch (Exception e)
                 {
@@ -772,13 +745,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void processed_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_processed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Focus)wrapper).SetProcessed(val);
+                    ((Focus)ws.Target).SetProcessed(val);
                 }
                 catch (Exception e)
                 {
@@ -807,13 +780,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static bool scrolling_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_scrolling_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Focus)wrapper).GetScrolling();
+                    _ret_var = ((Focus)ws.Target).GetScrolling();
                 }
                 catch (Exception e)
                 {
@@ -843,13 +816,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void scrolling_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_scrolling_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Focus)wrapper).SetScrolling(val);
+                    ((Focus)ws.Target).SetScrolling(val);
                 }
                 catch (Exception e)
                 {
@@ -878,13 +851,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static bool fake_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_fake_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Focus)wrapper).GetFake();
+                    _ret_var = ((Focus)ws.Target).GetFake();
                 }
                 catch (Exception e)
                 {
@@ -914,13 +887,13 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Focus)wrapper).Reset();
+                    ((Focus)ws.Target).Reset();
                 }
                 catch (Exception e)
                 {
@@ -938,7 +911,7 @@ public class Focus : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
 
         private static efl_input_reset_delegate efl_input_reset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index a8120d2..3276125 100644 (file)
@@ -11,7 +11,7 @@ namespace Input {
 
 /// <summary>Event data sent when inputs are put on hold or resumed.</summary>
 [Efl.Input.Hold.NativeMethods]
-public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
+public class Hold : Efl.Object, Efl.IDuplicate, Efl.Input.IEvent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Hold(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Hold"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Property to show if inputs are now on hold.</summary>
     /// <returns><c>true</c> if inputs are on hold, <c>false</c> otherwise</returns>
     virtual public bool GetHold() {
@@ -182,38 +155,38 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>The time at which an event was generated.
-/// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
-/// <value>Time in milliseconds when the event happened.</value>
+    /// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
+    /// <value>Time in milliseconds when the event happened.</value>
     public double Timestamp {
         get { return GetTimestamp(); }
         set { SetTimestamp(value); }
     }
     /// <summary>Input device that originated this event.</summary>
-/// <value>Input device origin</value>
+    /// <value>Input device origin</value>
     public Efl.Input.Device Device {
         get { return GetDevice(); }
         set { SetDevice(value); }
     }
     /// <summary>Extra flags for this event, may be changed by the user.</summary>
-/// <value>Input event flags</value>
+    /// <value>Input event flags</value>
     public Efl.Input.Flags EventFlags {
         get { return GetEventFlags(); }
         set { SetEventFlags(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event is on hold.</summary>
-/// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
     public bool Processed {
         get { return GetProcessed(); }
         set { SetProcessed(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event happened while scrolling.</summary>
-/// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
     public bool Scrolling {
         get { return GetScrolling(); }
         set { SetScrolling(value); }
     }
     /// <summary><c>true</c> if the event was fake, not triggered by real hardware.</summary>
-/// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
     public bool Fake {
         get { return GetFake(); }
     }
@@ -393,7 +366,7 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
             return Efl.Input.Hold.efl_input_hold_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_input_hold_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -406,13 +379,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static bool hold_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_hold_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Hold)wrapper).GetHold();
+                    _ret_var = ((Hold)ws.Target).GetHold();
                 }
                 catch (Exception e)
                 {
@@ -442,13 +415,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void hold_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_hold_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Hold)wrapper).SetHold(val);
+                    ((Hold)ws.Target).SetHold(val);
                 }
                 catch (Exception e)
                 {
@@ -477,13 +450,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static Efl.IDuplicate duplicate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_duplicate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IDuplicate _ret_var = default(Efl.IDuplicate);
                 try
                 {
-                    _ret_var = ((Hold)wrapper).Duplicate();
+                    _ret_var = ((Hold)ws.Target).Duplicate();
                 }
                 catch (Exception e)
                 {
@@ -513,13 +486,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static double timestamp_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_timestamp_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Hold)wrapper).GetTimestamp();
+                    _ret_var = ((Hold)ws.Target).GetTimestamp();
                 }
                 catch (Exception e)
                 {
@@ -549,13 +522,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void timestamp_set(System.IntPtr obj, System.IntPtr pd, double ms)
         {
             Eina.Log.Debug("function efl_input_timestamp_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Hold)wrapper).SetTimestamp(ms);
+                    ((Hold)ws.Target).SetTimestamp(ms);
                 }
                 catch (Exception e)
                 {
@@ -584,13 +557,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static Efl.Input.Device device_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((Hold)wrapper).GetDevice();
+                    _ret_var = ((Hold)ws.Target).GetDevice();
                 }
                 catch (Exception e)
                 {
@@ -620,13 +593,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void device_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device dev)
         {
             Eina.Log.Debug("function efl_input_device_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Hold)wrapper).SetDevice(dev);
+                    ((Hold)ws.Target).SetDevice(dev);
                 }
                 catch (Exception e)
                 {
@@ -655,13 +628,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static Efl.Input.Flags event_flags_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_event_flags_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Flags _ret_var = default(Efl.Input.Flags);
                 try
                 {
-                    _ret_var = ((Hold)wrapper).GetEventFlags();
+                    _ret_var = ((Hold)ws.Target).GetEventFlags();
                 }
                 catch (Exception e)
                 {
@@ -691,13 +664,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void event_flags_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Flags flags)
         {
             Eina.Log.Debug("function efl_input_event_flags_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Hold)wrapper).SetEventFlags(flags);
+                    ((Hold)ws.Target).SetEventFlags(flags);
                 }
                 catch (Exception e)
                 {
@@ -726,13 +699,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static bool processed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_processed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Hold)wrapper).GetProcessed();
+                    _ret_var = ((Hold)ws.Target).GetProcessed();
                 }
                 catch (Exception e)
                 {
@@ -762,13 +735,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void processed_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_processed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Hold)wrapper).SetProcessed(val);
+                    ((Hold)ws.Target).SetProcessed(val);
                 }
                 catch (Exception e)
                 {
@@ -797,13 +770,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static bool scrolling_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_scrolling_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Hold)wrapper).GetScrolling();
+                    _ret_var = ((Hold)ws.Target).GetScrolling();
                 }
                 catch (Exception e)
                 {
@@ -833,13 +806,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void scrolling_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_scrolling_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Hold)wrapper).SetScrolling(val);
+                    ((Hold)ws.Target).SetScrolling(val);
                 }
                 catch (Exception e)
                 {
@@ -868,13 +841,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static bool fake_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_fake_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Hold)wrapper).GetFake();
+                    _ret_var = ((Hold)ws.Target).GetFake();
                 }
                 catch (Exception e)
                 {
@@ -904,13 +877,13 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
         private static void reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Hold)wrapper).Reset();
+                    ((Hold)ws.Target).Reset();
                 }
                 catch (Exception e)
                 {
@@ -928,7 +901,7 @@ public class Hold : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent
 
         private static efl_input_reset_delegate efl_input_reset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 5ceb1f9..cb8beb6 100644 (file)
@@ -150,13 +150,13 @@ public class IInterfaceFocusOutEvt_Args : EventArgs {
 /// A &quot;finger&quot; refers to a single point of input, usually in an absolute coordinates input device, and that can support more than one input position at at time (think multi-touch screens). The first finger (id 0) is sent along with a pointer event, so be careful to not handle those events twice. Note that if the input device can support &quot;hovering&quot;, it is entirely possible to receive move events without down coming first.
 /// 
 /// A &quot;key&quot; is a key press from a keyboard or equivalent type of input device. Long, repeated, key presses will always happen like this: down...up,down...up,down...up (not down...up or down...down...down...up).</summary>
-sealed public class IInterfaceConcrete : 
-
-IInterface
+sealed public class IInterfaceConcrete :
+    Efl.Eo.EoWrapper
+    , IInterface
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -171,155 +171,12 @@ IInterface
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
         efl_input_interface_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IInterface"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IInterfaceConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IInterfaceConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IInterfaceConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Main pointer move (current and previous positions are known).</summary>
@@ -329,13 +186,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerMoveEvt_Args args = new Efl.Input.IInterfacePointerMoveEvt_Args();
+                        Efl.Input.IInterfacePointerMoveEvt_Args args = new Efl.Input.IInterfacePointerMoveEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -384,13 +240,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerDownEvt_Args args = new Efl.Input.IInterfacePointerDownEvt_Args();
+                        Efl.Input.IInterfacePointerDownEvt_Args args = new Efl.Input.IInterfacePointerDownEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -439,13 +294,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerUpEvt_Args args = new Efl.Input.IInterfacePointerUpEvt_Args();
+                        Efl.Input.IInterfacePointerUpEvt_Args args = new Efl.Input.IInterfacePointerUpEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -494,13 +348,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerCancelEvt_Args args = new Efl.Input.IInterfacePointerCancelEvt_Args();
+                        Efl.Input.IInterfacePointerCancelEvt_Args args = new Efl.Input.IInterfacePointerCancelEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -549,13 +402,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerInEvt_Args args = new Efl.Input.IInterfacePointerInEvt_Args();
+                        Efl.Input.IInterfacePointerInEvt_Args args = new Efl.Input.IInterfacePointerInEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -604,13 +456,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerOutEvt_Args args = new Efl.Input.IInterfacePointerOutEvt_Args();
+                        Efl.Input.IInterfacePointerOutEvt_Args args = new Efl.Input.IInterfacePointerOutEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -659,13 +510,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerWheelEvt_Args args = new Efl.Input.IInterfacePointerWheelEvt_Args();
+                        Efl.Input.IInterfacePointerWheelEvt_Args args = new Efl.Input.IInterfacePointerWheelEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -714,13 +564,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfacePointerAxisEvt_Args args = new Efl.Input.IInterfacePointerAxisEvt_Args();
+                        Efl.Input.IInterfacePointerAxisEvt_Args args = new Efl.Input.IInterfacePointerAxisEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -769,13 +618,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceFingerMoveEvt_Args args = new Efl.Input.IInterfaceFingerMoveEvt_Args();
+                        Efl.Input.IInterfaceFingerMoveEvt_Args args = new Efl.Input.IInterfaceFingerMoveEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -824,13 +672,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceFingerDownEvt_Args args = new Efl.Input.IInterfaceFingerDownEvt_Args();
+                        Efl.Input.IInterfaceFingerDownEvt_Args args = new Efl.Input.IInterfaceFingerDownEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -879,13 +726,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceFingerUpEvt_Args args = new Efl.Input.IInterfaceFingerUpEvt_Args();
+                        Efl.Input.IInterfaceFingerUpEvt_Args args = new Efl.Input.IInterfaceFingerUpEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
                         try
                         {
@@ -934,13 +780,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceKeyDownEvt_Args args = new Efl.Input.IInterfaceKeyDownEvt_Args();
+                        Efl.Input.IInterfaceKeyDownEvt_Args args = new Efl.Input.IInterfaceKeyDownEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Key);
                         try
                         {
@@ -989,13 +834,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceKeyUpEvt_Args args = new Efl.Input.IInterfaceKeyUpEvt_Args();
+                        Efl.Input.IInterfaceKeyUpEvt_Args args = new Efl.Input.IInterfaceKeyUpEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Key);
                         try
                         {
@@ -1044,13 +888,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceHoldEvt_Args args = new Efl.Input.IInterfaceHoldEvt_Args();
+                        Efl.Input.IInterfaceHoldEvt_Args args = new Efl.Input.IInterfaceHoldEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Hold);
                         try
                         {
@@ -1099,13 +942,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceFocusInEvt_Args args = new Efl.Input.IInterfaceFocusInEvt_Args();
+                        Efl.Input.IInterfaceFocusInEvt_Args args = new Efl.Input.IInterfaceFocusInEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -1154,13 +996,12 @@ IInterface
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Input.IInterfaceFocusOutEvt_Args args = new Efl.Input.IInterfaceFocusOutEvt_Args();
+                        Efl.Input.IInterfaceFocusOutEvt_Args args = new Efl.Input.IInterfaceFocusOutEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -1262,7 +1103,7 @@ IInterface
             return Efl.Input.IInterfaceConcrete.efl_input_interface_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_input_seat_event_filter_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.Device seat);
@@ -1275,13 +1116,13 @@ IInterface
         private static bool seat_event_filter_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_input_seat_event_filter_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IInterface)wrapper).GetSeatEventFilter(seat);
+                    _ret_var = ((IInterface)ws.Target).GetSeatEventFilter(seat);
                 }
                 catch (Exception e)
                 {
@@ -1311,13 +1152,13 @@ IInterface
         private static void seat_event_filter_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat, bool enable)
         {
             Eina.Log.Debug("function efl_input_seat_event_filter_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterface)wrapper).SetSeatEventFilter(seat, enable);
+                    ((IInterface)ws.Target).SetSeatEventFilter(seat, enable);
                 }
                 catch (Exception e)
                 {
@@ -1335,7 +1176,7 @@ IInterface
 
         private static efl_input_seat_event_filter_set_delegate efl_input_seat_event_filter_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 15d22a2..ff450b1 100644 (file)
@@ -11,7 +11,7 @@ namespace Input {
 
 /// <summary>Represents a single key event from a keyboard or similar device.</summary>
 [Efl.Input.Key.NativeMethods]
-public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,Efl.Input.IState
+public class Key : Efl.Object, Efl.IDuplicate, Efl.Input.IEvent, Efl.Input.IState
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Key(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Key"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary><c>true</c> if the key is down, <c>false</c> if it is released.</summary>
     /// <returns><c>true</c> if the key is pressed, <c>false</c> otherwise</returns>
     virtual public bool GetPressed() {
@@ -271,69 +244,69 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
                                         return _ret_var;
  }
     /// <summary><c>true</c> if the key is down, <c>false</c> if it is released.</summary>
-/// <value><c>true</c> if the key is pressed, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the key is pressed, <c>false</c> otherwise</value>
     public bool Pressed {
         get { return GetPressed(); }
         set { SetPressed(value); }
     }
     /// <summary>Name string of the key.</summary>
-/// <value>Key name</value>
+    /// <value>Key name</value>
     public System.String KeyName {
         get { return GetKeyName(); }
         set { SetKeyName(value); }
     }
     /// <summary>A UTF8 string if this keystroke has produced a visible string to be added.</summary>
-/// <value>Visible string from key press in UTF8</value>
+    /// <value>Visible string from key press in UTF8</value>
     public System.String String {
         get { return GetString(); }
         set { SetString(value); }
     }
     /// <summary>A UTF8 string if this keystroke has modified a string in the middle of being composed.
-/// Note: This string replaces the previous one</summary>
-/// <value>Composed key string in UTF8</value>
+    /// Note: This string replaces the previous one</summary>
+    /// <value>Composed key string in UTF8</value>
     public System.String Compose {
         get { return GetCompose(); }
         set { SetCompose(value); }
     }
     /// <summary>Key scan code numeric value.</summary>
-/// <value>Key scan code</value>
+    /// <value>Key scan code</value>
     public int KeyCode {
         get { return GetKeyCode(); }
         set { SetKeyCode(value); }
     }
     /// <summary>The time at which an event was generated.
-/// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
-/// <value>Time in milliseconds when the event happened.</value>
+    /// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
+    /// <value>Time in milliseconds when the event happened.</value>
     public double Timestamp {
         get { return GetTimestamp(); }
         set { SetTimestamp(value); }
     }
     /// <summary>Input device that originated this event.</summary>
-/// <value>Input device origin</value>
+    /// <value>Input device origin</value>
     public Efl.Input.Device Device {
         get { return GetDevice(); }
         set { SetDevice(value); }
     }
     /// <summary>Extra flags for this event, may be changed by the user.</summary>
-/// <value>Input event flags</value>
+    /// <value>Input event flags</value>
     public Efl.Input.Flags EventFlags {
         get { return GetEventFlags(); }
         set { SetEventFlags(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event is on hold.</summary>
-/// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
     public bool Processed {
         get { return GetProcessed(); }
         set { SetProcessed(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event happened while scrolling.</summary>
-/// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
     public bool Scrolling {
         get { return GetScrolling(); }
         set { SetScrolling(value); }
     }
     /// <summary><c>true</c> if the event was fake, not triggered by real hardware.</summary>
-/// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
     public bool Fake {
         get { return GetFake(); }
     }
@@ -633,7 +606,7 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
             return Efl.Input.Key.efl_input_key_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_input_key_pressed_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -646,13 +619,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static bool pressed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_key_pressed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetPressed();
+                    _ret_var = ((Key)ws.Target).GetPressed();
                 }
                 catch (Exception e)
                 {
@@ -682,13 +655,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void pressed_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_key_pressed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetPressed(val);
+                    ((Key)ws.Target).SetPressed(val);
                 }
                 catch (Exception e)
                 {
@@ -717,13 +690,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static System.String key_name_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_key_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetKeyName();
+                    _ret_var = ((Key)ws.Target).GetKeyName();
                 }
                 catch (Exception e)
                 {
@@ -753,13 +726,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void key_name_set(System.IntPtr obj, System.IntPtr pd, System.String val)
         {
             Eina.Log.Debug("function efl_input_key_name_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetKeyName(val);
+                    ((Key)ws.Target).SetKeyName(val);
                 }
                 catch (Exception e)
                 {
@@ -788,13 +761,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetKey();
+                    _ret_var = ((Key)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -824,13 +797,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String val)
         {
             Eina.Log.Debug("function efl_input_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetKey(val);
+                    ((Key)ws.Target).SetKey(val);
                 }
                 catch (Exception e)
                 {
@@ -859,13 +832,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static System.String string_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_key_string_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetString();
+                    _ret_var = ((Key)ws.Target).GetString();
                 }
                 catch (Exception e)
                 {
@@ -895,13 +868,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void string_set(System.IntPtr obj, System.IntPtr pd, System.String val)
         {
             Eina.Log.Debug("function efl_input_key_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetString(val);
+                    ((Key)ws.Target).SetString(val);
                 }
                 catch (Exception e)
                 {
@@ -930,13 +903,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static System.String compose_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_key_compose_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetCompose();
+                    _ret_var = ((Key)ws.Target).GetCompose();
                 }
                 catch (Exception e)
                 {
@@ -966,13 +939,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void compose_set(System.IntPtr obj, System.IntPtr pd, System.String val)
         {
             Eina.Log.Debug("function efl_input_key_compose_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetCompose(val);
+                    ((Key)ws.Target).SetCompose(val);
                 }
                 catch (Exception e)
                 {
@@ -1001,13 +974,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static int key_code_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_key_code_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetKeyCode();
+                    _ret_var = ((Key)ws.Target).GetKeyCode();
                 }
                 catch (Exception e)
                 {
@@ -1037,13 +1010,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void key_code_set(System.IntPtr obj, System.IntPtr pd, int val)
         {
             Eina.Log.Debug("function efl_input_key_code_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetKeyCode(val);
+                    ((Key)ws.Target).SetKeyCode(val);
                 }
                 catch (Exception e)
                 {
@@ -1072,13 +1045,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static Efl.IDuplicate duplicate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_duplicate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IDuplicate _ret_var = default(Efl.IDuplicate);
                 try
                 {
-                    _ret_var = ((Key)wrapper).Duplicate();
+                    _ret_var = ((Key)ws.Target).Duplicate();
                 }
                 catch (Exception e)
                 {
@@ -1108,13 +1081,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static double timestamp_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_timestamp_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetTimestamp();
+                    _ret_var = ((Key)ws.Target).GetTimestamp();
                 }
                 catch (Exception e)
                 {
@@ -1144,13 +1117,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void timestamp_set(System.IntPtr obj, System.IntPtr pd, double ms)
         {
             Eina.Log.Debug("function efl_input_timestamp_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetTimestamp(ms);
+                    ((Key)ws.Target).SetTimestamp(ms);
                 }
                 catch (Exception e)
                 {
@@ -1179,13 +1152,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static Efl.Input.Device device_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetDevice();
+                    _ret_var = ((Key)ws.Target).GetDevice();
                 }
                 catch (Exception e)
                 {
@@ -1215,13 +1188,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void device_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device dev)
         {
             Eina.Log.Debug("function efl_input_device_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetDevice(dev);
+                    ((Key)ws.Target).SetDevice(dev);
                 }
                 catch (Exception e)
                 {
@@ -1250,13 +1223,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static Efl.Input.Flags event_flags_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_event_flags_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Flags _ret_var = default(Efl.Input.Flags);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetEventFlags();
+                    _ret_var = ((Key)ws.Target).GetEventFlags();
                 }
                 catch (Exception e)
                 {
@@ -1286,13 +1259,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void event_flags_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Flags flags)
         {
             Eina.Log.Debug("function efl_input_event_flags_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetEventFlags(flags);
+                    ((Key)ws.Target).SetEventFlags(flags);
                 }
                 catch (Exception e)
                 {
@@ -1321,13 +1294,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static bool processed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_processed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetProcessed();
+                    _ret_var = ((Key)ws.Target).GetProcessed();
                 }
                 catch (Exception e)
                 {
@@ -1357,13 +1330,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void processed_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_processed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetProcessed(val);
+                    ((Key)ws.Target).SetProcessed(val);
                 }
                 catch (Exception e)
                 {
@@ -1392,13 +1365,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static bool scrolling_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_scrolling_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetScrolling();
+                    _ret_var = ((Key)ws.Target).GetScrolling();
                 }
                 catch (Exception e)
                 {
@@ -1428,13 +1401,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void scrolling_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_scrolling_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Key)wrapper).SetScrolling(val);
+                    ((Key)ws.Target).SetScrolling(val);
                 }
                 catch (Exception e)
                 {
@@ -1463,13 +1436,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static bool fake_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_fake_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetFake();
+                    _ret_var = ((Key)ws.Target).GetFake();
                 }
                 catch (Exception e)
                 {
@@ -1499,13 +1472,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static void reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Key)wrapper).Reset();
+                    ((Key)ws.Target).Reset();
                 }
                 catch (Exception e)
                 {
@@ -1534,13 +1507,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static bool modifier_enabled_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Modifier mod, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_input_modifier_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetModifierEnabled(mod, seat);
+                    _ret_var = ((Key)ws.Target).GetModifierEnabled(mod, seat);
                 }
                 catch (Exception e)
                 {
@@ -1570,13 +1543,13 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
         private static bool lock_enabled_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Lock kw_lock, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_input_lock_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Key)wrapper).GetLockEnabled(kw_lock, seat);
+                    _ret_var = ((Key)ws.Target).GetLockEnabled(kw_lock, seat);
                 }
                 catch (Exception e)
                 {
@@ -1595,7 +1568,7 @@ public class Key : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,E
 
         private static efl_input_lock_enabled_get_delegate efl_input_lock_enabled_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 442499c..4b7864b 100644 (file)
@@ -11,7 +11,7 @@ namespace Input {
 
 /// <summary>Event data carried over with any pointer event (mouse, touch, pen, ...)</summary>
 [Efl.Input.Pointer.NativeMethods]
-public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEvent,Efl.Input.IState
+public class Pointer : Efl.Object, Efl.IDuplicate, Efl.Input.IEvent, Efl.Input.IState
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Pointer(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Pointer"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The action represented by this event.</summary>
     /// <returns>Event action</returns>
     virtual public Efl.Pointer.Action GetAction() {
@@ -416,120 +389,120 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
                                         return _ret_var;
  }
     /// <summary>The action represented by this event.</summary>
-/// <value>Event action</value>
+    /// <value>Event action</value>
     public Efl.Pointer.Action Action {
         get { return GetAction(); }
         set { SetAction(value); }
     }
     /// <summary>The mouse button that triggered the event.
-/// Valid if and only if <see cref="Efl.Input.Pointer.GetValueHas"/>(<c>button</c>) is <c>true</c>.</summary>
-/// <value>1 to 32, 0 if not a button event.</value>
+    /// Valid if and only if <see cref="Efl.Input.Pointer.GetValueHas"/>(<c>button</c>) is <c>true</c>.</summary>
+    /// <value>1 to 32, 0 if not a button event.</value>
     public int Button {
         get { return GetButton(); }
         set { SetButton(value); }
     }
     /// <summary>Position where the event happened, relative to the window.
-/// See <see cref="Efl.Input.Pointer.PrecisePosition"/> for floating point precision (subpixel location).</summary>
-/// <value>The position of the event, in pixels.</value>
+    /// See <see cref="Efl.Input.Pointer.PrecisePosition"/> for floating point precision (subpixel location).</summary>
+    /// <value>The position of the event, in pixels.</value>
     public Eina.Position2D Position {
         get { return GetPosition(); }
         set { SetPosition(value); }
     }
     /// <summary>Position where the event happened, relative to the window.
-/// This position is in floating point values, for more precise coordinates, in subpixels. Note that many input devices are unable to give better precision than a single pixel, so this may be equal to <see cref="Efl.Input.Pointer.Position"/>.
-/// 
-/// See also <see cref="Efl.Input.Pointer.Position"/>.</summary>
-/// <value>The position of the event, in pixels.</value>
+    /// This position is in floating point values, for more precise coordinates, in subpixels. Note that many input devices are unable to give better precision than a single pixel, so this may be equal to <see cref="Efl.Input.Pointer.Position"/>.
+    /// 
+    /// See also <see cref="Efl.Input.Pointer.Position"/>.</summary>
+    /// <value>The position of the event, in pixels.</value>
     public Eina.Vector2 PrecisePosition {
         get { return GetPrecisePosition(); }
         set { SetPrecisePosition(value); }
     }
     /// <summary>Position of the previous event, valid for move events.
-/// Relative to the window. May be equal to <see cref="Efl.Input.Pointer.Position"/> (by default).
-/// 
-/// This position, in integers, is an approximation of <see cref="Efl.Input.Pointer.GetValue"/>(<c>previous_x</c>), <see cref="Efl.Input.Pointer.GetValue"/>(<c>previous_y</c>). Use <see cref="Efl.Input.Pointer.PreviousPosition"/> if you need simple pixel positions, but prefer the generic interface if you need precise coordinates.</summary>
-/// <value>The position of the event, in pixels.</value>
+    /// Relative to the window. May be equal to <see cref="Efl.Input.Pointer.Position"/> (by default).
+    /// 
+    /// This position, in integers, is an approximation of <see cref="Efl.Input.Pointer.GetValue"/>(<c>previous_x</c>), <see cref="Efl.Input.Pointer.GetValue"/>(<c>previous_y</c>). Use <see cref="Efl.Input.Pointer.PreviousPosition"/> if you need simple pixel positions, but prefer the generic interface if you need precise coordinates.</summary>
+    /// <value>The position of the event, in pixels.</value>
     public Eina.Position2D PreviousPosition {
         get { return GetPreviousPosition(); }
         set { SetPreviousPosition(value); }
     }
     /// <summary>ID of the tool (eg. pen) that triggered this event.</summary>
-/// <value>Tool ID</value>
+    /// <value>Tool ID</value>
     public int Tool {
         get { return GetTool(); }
         set { SetTool(value); }
     }
     /// <summary>The object where this event first originated, in case of propagation or repetition of the event.</summary>
-/// <value>Source object: <see cref="Efl.Gfx.IEntity"/></value>
+    /// <value>Source object: <see cref="Efl.Gfx.IEntity"/></value>
     public Efl.Object Source {
         get { return GetSource(); }
         set { SetSource(value); }
     }
     /// <summary>Double or triple click information.</summary>
-/// <value>Button information flags</value>
+    /// <value>Button information flags</value>
     public Efl.Pointer.Flags ButtonFlags {
         get { return GetButtonFlags(); }
         set { SetButtonFlags(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.Pointer.ButtonFlags"/> indicates a double click (2nd press).
-/// This is just a helper function around <see cref="Efl.Input.Pointer.ButtonFlags"/>.</summary>
-/// <value><c>true</c> if the button press was a double click, <c>false</c> otherwise</value>
+    /// This is just a helper function around <see cref="Efl.Input.Pointer.ButtonFlags"/>.</summary>
+    /// <value><c>true</c> if the button press was a double click, <c>false</c> otherwise</value>
     public bool DoubleClick {
         get { return GetDoubleClick(); }
         set { SetDoubleClick(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.Pointer.ButtonFlags"/> indicates a triple click (3rd press).
-/// This is just a helper function around <see cref="Efl.Input.Pointer.ButtonFlags"/>.</summary>
-/// <value><c>true</c> if the button press was a triple click, <c>false</c> otherwise</value>
+    /// This is just a helper function around <see cref="Efl.Input.Pointer.ButtonFlags"/>.</summary>
+    /// <value><c>true</c> if the button press was a triple click, <c>false</c> otherwise</value>
     public bool TripleClick {
         get { return GetTripleClick(); }
         set { SetTripleClick(value); }
     }
     /// <summary>Direction of the wheel, usually vertical.</summary>
-/// <value>If <c>true</c> this was a horizontal wheel.</value>
+    /// <value>If <c>true</c> this was a horizontal wheel.</value>
     public bool WheelHorizontal {
         get { return GetWheelHorizontal(); }
         set { SetWheelHorizontal(value); }
     }
     /// <summary>Delta movement of the wheel in discrete steps.</summary>
-/// <value>Wheel movement delta</value>
+    /// <value>Wheel movement delta</value>
     public int WheelDelta {
         get { return GetWheelDelta(); }
         set { SetWheelDelta(value); }
     }
     /// <summary>The time at which an event was generated.
-/// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
-/// <value>Time in milliseconds when the event happened.</value>
+    /// If the event is generated by a server (eg. X.org or Wayland), then the time may be set by the server. Usually this time will be based on the monotonic clock, if available, but this class can not guarantee it.</summary>
+    /// <value>Time in milliseconds when the event happened.</value>
     public double Timestamp {
         get { return GetTimestamp(); }
         set { SetTimestamp(value); }
     }
     /// <summary>Input device that originated this event.</summary>
-/// <value>Input device origin</value>
+    /// <value>Input device origin</value>
     public Efl.Input.Device Device {
         get { return GetDevice(); }
         set { SetDevice(value); }
     }
     /// <summary>Extra flags for this event, may be changed by the user.</summary>
-/// <value>Input event flags</value>
+    /// <value>Input event flags</value>
     public Efl.Input.Flags EventFlags {
         get { return GetEventFlags(); }
         set { SetEventFlags(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event is on hold.</summary>
-/// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event is on hold, <c>false</c> otherwise</value>
     public bool Processed {
         get { return GetProcessed(); }
         set { SetProcessed(value); }
     }
     /// <summary><c>true</c> if <see cref="Efl.Input.IEvent.EventFlags"/> indicates the event happened while scrolling.</summary>
-/// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event happened while scrolling, <c>false</c> otherwise</value>
     public bool Scrolling {
         get { return GetScrolling(); }
         set { SetScrolling(value); }
     }
     /// <summary><c>true</c> if the event was fake, not triggered by real hardware.</summary>
-/// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the event was not from real hardware, <c>false</c> otherwise</value>
     public bool Fake {
         get { return GetFake(); }
     }
@@ -999,7 +972,7 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
             return Efl.Input.Pointer.efl_input_pointer_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Pointer.Action efl_input_pointer_action_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1012,13 +985,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static Efl.Pointer.Action action_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_action_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Pointer.Action _ret_var = default(Efl.Pointer.Action);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetAction();
+                    _ret_var = ((Pointer)ws.Target).GetAction();
                 }
                 catch (Exception e)
                 {
@@ -1048,13 +1021,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void action_set(System.IntPtr obj, System.IntPtr pd, Efl.Pointer.Action act)
         {
             Eina.Log.Debug("function efl_input_pointer_action_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetAction(act);
+                    ((Pointer)ws.Target).SetAction(act);
                 }
                 catch (Exception e)
                 {
@@ -1083,13 +1056,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool value_has_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Value key)
         {
             Eina.Log.Debug("function efl_input_pointer_value_has_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetValueHas(key);
+                    _ret_var = ((Pointer)ws.Target).GetValueHas(key);
                 }
                 catch (Exception e)
                 {
@@ -1119,13 +1092,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static double value_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Value key)
         {
             Eina.Log.Debug("function efl_input_pointer_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetValue(key);
+                    _ret_var = ((Pointer)ws.Target).GetValue(key);
                 }
                 catch (Exception e)
                 {
@@ -1155,13 +1128,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool value_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Value key, double val)
         {
             Eina.Log.Debug("function efl_input_pointer_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).SetValue(key, val);
+                    _ret_var = ((Pointer)ws.Target).SetValue(key, val);
                 }
                 catch (Exception e)
                 {
@@ -1191,13 +1164,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static int button_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_button_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetButton();
+                    _ret_var = ((Pointer)ws.Target).GetButton();
                 }
                 catch (Exception e)
                 {
@@ -1227,13 +1200,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void button_set(System.IntPtr obj, System.IntPtr pd, int but)
         {
             Eina.Log.Debug("function efl_input_pointer_button_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetButton(but);
+                    ((Pointer)ws.Target).SetButton(but);
                 }
                 catch (Exception e)
                 {
@@ -1262,13 +1235,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool button_pressed_get(System.IntPtr obj, System.IntPtr pd, int button)
         {
             Eina.Log.Debug("function efl_input_pointer_button_pressed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetButtonPressed(button);
+                    _ret_var = ((Pointer)ws.Target).GetButtonPressed(button);
                 }
                 catch (Exception e)
                 {
@@ -1298,13 +1271,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void button_pressed_set(System.IntPtr obj, System.IntPtr pd, int button, bool pressed)
         {
             Eina.Log.Debug("function efl_input_pointer_button_pressed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Pointer)wrapper).SetButtonPressed(button, pressed);
+                    ((Pointer)ws.Target).SetButtonPressed(button, pressed);
                 }
                 catch (Exception e)
                 {
@@ -1333,13 +1306,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static Eina.Position2D.NativeStruct position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetPosition();
+                    _ret_var = ((Pointer)ws.Target).GetPosition();
                 }
                 catch (Exception e)
                 {
@@ -1369,14 +1342,14 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void position_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_input_pointer_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((Pointer)wrapper).SetPosition(_in_pos);
+                    ((Pointer)ws.Target).SetPosition(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -1405,13 +1378,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static Eina.Vector2.NativeStruct precise_position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_precise_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Vector2 _ret_var = default(Eina.Vector2);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetPrecisePosition();
+                    _ret_var = ((Pointer)ws.Target).GetPrecisePosition();
                 }
                 catch (Exception e)
                 {
@@ -1441,14 +1414,14 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void precise_position_set(System.IntPtr obj, System.IntPtr pd, Eina.Vector2.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_input_pointer_precise_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Vector2 _in_pos = pos;
                             
                 try
                 {
-                    ((Pointer)wrapper).SetPrecisePosition(_in_pos);
+                    ((Pointer)ws.Target).SetPrecisePosition(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -1477,13 +1450,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static Eina.Position2D.NativeStruct previous_position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_previous_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetPreviousPosition();
+                    _ret_var = ((Pointer)ws.Target).GetPreviousPosition();
                 }
                 catch (Exception e)
                 {
@@ -1513,14 +1486,14 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void previous_position_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_input_pointer_previous_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((Pointer)wrapper).SetPreviousPosition(_in_pos);
+                    ((Pointer)ws.Target).SetPreviousPosition(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -1549,13 +1522,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static int tool_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_tool_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetTool();
+                    _ret_var = ((Pointer)ws.Target).GetTool();
                 }
                 catch (Exception e)
                 {
@@ -1585,13 +1558,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void tool_set(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_input_pointer_tool_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetTool(id);
+                    ((Pointer)ws.Target).SetTool(id);
                 }
                 catch (Exception e)
                 {
@@ -1620,13 +1593,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static Efl.Object source_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetSource();
+                    _ret_var = ((Pointer)ws.Target).GetSource();
                 }
                 catch (Exception e)
                 {
@@ -1656,13 +1629,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void source_set(System.IntPtr obj, System.IntPtr pd, Efl.Object src)
         {
             Eina.Log.Debug("function efl_input_pointer_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetSource(src);
+                    ((Pointer)ws.Target).SetSource(src);
                 }
                 catch (Exception e)
                 {
@@ -1691,13 +1664,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static Efl.Pointer.Flags button_flags_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_button_flags_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Pointer.Flags _ret_var = default(Efl.Pointer.Flags);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetButtonFlags();
+                    _ret_var = ((Pointer)ws.Target).GetButtonFlags();
                 }
                 catch (Exception e)
                 {
@@ -1727,13 +1700,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void button_flags_set(System.IntPtr obj, System.IntPtr pd, Efl.Pointer.Flags flags)
         {
             Eina.Log.Debug("function efl_input_pointer_button_flags_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetButtonFlags(flags);
+                    ((Pointer)ws.Target).SetButtonFlags(flags);
                 }
                 catch (Exception e)
                 {
@@ -1762,13 +1735,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool double_click_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_double_click_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetDoubleClick();
+                    _ret_var = ((Pointer)ws.Target).GetDoubleClick();
                 }
                 catch (Exception e)
                 {
@@ -1798,13 +1771,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void double_click_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_pointer_double_click_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetDoubleClick(val);
+                    ((Pointer)ws.Target).SetDoubleClick(val);
                 }
                 catch (Exception e)
                 {
@@ -1833,13 +1806,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool triple_click_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_triple_click_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetTripleClick();
+                    _ret_var = ((Pointer)ws.Target).GetTripleClick();
                 }
                 catch (Exception e)
                 {
@@ -1869,13 +1842,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void triple_click_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_pointer_triple_click_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetTripleClick(val);
+                    ((Pointer)ws.Target).SetTripleClick(val);
                 }
                 catch (Exception e)
                 {
@@ -1904,13 +1877,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool wheel_horizontal_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_wheel_horizontal_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetWheelHorizontal();
+                    _ret_var = ((Pointer)ws.Target).GetWheelHorizontal();
                 }
                 catch (Exception e)
                 {
@@ -1940,13 +1913,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void wheel_horizontal_set(System.IntPtr obj, System.IntPtr pd, bool horizontal)
         {
             Eina.Log.Debug("function efl_input_pointer_wheel_horizontal_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetWheelHorizontal(horizontal);
+                    ((Pointer)ws.Target).SetWheelHorizontal(horizontal);
                 }
                 catch (Exception e)
                 {
@@ -1975,13 +1948,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static int wheel_delta_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_pointer_wheel_delta_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetWheelDelta();
+                    _ret_var = ((Pointer)ws.Target).GetWheelDelta();
                 }
                 catch (Exception e)
                 {
@@ -2011,13 +1984,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void wheel_delta_set(System.IntPtr obj, System.IntPtr pd, int dist)
         {
             Eina.Log.Debug("function efl_input_pointer_wheel_delta_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetWheelDelta(dist);
+                    ((Pointer)ws.Target).SetWheelDelta(dist);
                 }
                 catch (Exception e)
                 {
@@ -2046,13 +2019,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static Efl.IDuplicate duplicate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_duplicate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IDuplicate _ret_var = default(Efl.IDuplicate);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).Duplicate();
+                    _ret_var = ((Pointer)ws.Target).Duplicate();
                 }
                 catch (Exception e)
                 {
@@ -2082,13 +2055,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static double timestamp_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_timestamp_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetTimestamp();
+                    _ret_var = ((Pointer)ws.Target).GetTimestamp();
                 }
                 catch (Exception e)
                 {
@@ -2118,13 +2091,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void timestamp_set(System.IntPtr obj, System.IntPtr pd, double ms)
         {
             Eina.Log.Debug("function efl_input_timestamp_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetTimestamp(ms);
+                    ((Pointer)ws.Target).SetTimestamp(ms);
                 }
                 catch (Exception e)
                 {
@@ -2153,13 +2126,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static Efl.Input.Device device_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_device_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetDevice();
+                    _ret_var = ((Pointer)ws.Target).GetDevice();
                 }
                 catch (Exception e)
                 {
@@ -2189,13 +2162,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void device_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device dev)
         {
             Eina.Log.Debug("function efl_input_device_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetDevice(dev);
+                    ((Pointer)ws.Target).SetDevice(dev);
                 }
                 catch (Exception e)
                 {
@@ -2224,13 +2197,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static Efl.Input.Flags event_flags_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_event_flags_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Flags _ret_var = default(Efl.Input.Flags);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetEventFlags();
+                    _ret_var = ((Pointer)ws.Target).GetEventFlags();
                 }
                 catch (Exception e)
                 {
@@ -2260,13 +2233,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void event_flags_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Flags flags)
         {
             Eina.Log.Debug("function efl_input_event_flags_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetEventFlags(flags);
+                    ((Pointer)ws.Target).SetEventFlags(flags);
                 }
                 catch (Exception e)
                 {
@@ -2295,13 +2268,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool processed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_processed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetProcessed();
+                    _ret_var = ((Pointer)ws.Target).GetProcessed();
                 }
                 catch (Exception e)
                 {
@@ -2331,13 +2304,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void processed_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_processed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetProcessed(val);
+                    ((Pointer)ws.Target).SetProcessed(val);
                 }
                 catch (Exception e)
                 {
@@ -2366,13 +2339,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool scrolling_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_scrolling_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetScrolling();
+                    _ret_var = ((Pointer)ws.Target).GetScrolling();
                 }
                 catch (Exception e)
                 {
@@ -2402,13 +2375,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void scrolling_set(System.IntPtr obj, System.IntPtr pd, bool val)
         {
             Eina.Log.Debug("function efl_input_scrolling_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Pointer)wrapper).SetScrolling(val);
+                    ((Pointer)ws.Target).SetScrolling(val);
                 }
                 catch (Exception e)
                 {
@@ -2437,13 +2410,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool fake_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_fake_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetFake();
+                    _ret_var = ((Pointer)ws.Target).GetFake();
                 }
                 catch (Exception e)
                 {
@@ -2473,13 +2446,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static void reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_input_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Pointer)wrapper).Reset();
+                    ((Pointer)ws.Target).Reset();
                 }
                 catch (Exception e)
                 {
@@ -2508,13 +2481,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool modifier_enabled_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Modifier mod, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_input_modifier_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetModifierEnabled(mod, seat);
+                    _ret_var = ((Pointer)ws.Target).GetModifierEnabled(mod, seat);
                 }
                 catch (Exception e)
                 {
@@ -2544,13 +2517,13 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
         private static bool lock_enabled_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Lock kw_lock, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_input_lock_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pointer)wrapper).GetLockEnabled(kw_lock, seat);
+                    _ret_var = ((Pointer)ws.Target).GetLockEnabled(kw_lock, seat);
                 }
                 catch (Exception e)
                 {
@@ -2569,7 +2542,7 @@ public class Pointer : Efl.Object, Efl.Eo.IWrapper,Efl.IDuplicate,Efl.Input.IEve
 
         private static efl_input_lock_enabled_get_delegate efl_input_lock_enabled_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index ecdc418..90230c9 100644 (file)
@@ -30,13 +30,13 @@ bool GetLockEnabled(Efl.Input.Lock kw_lock, Efl.Input.Device seat);
         }
 /// <summary>Efl input state interface.
 /// (Since EFL 1.22)</summary>
-sealed public class IStateConcrete : 
-
-IState
+sealed public class IStateConcrete :
+    Efl.Eo.EoWrapper
+    , IState
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -51,86 +51,12 @@ IState
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
         efl_input_state_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IState"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IStateConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IStateConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IStateConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Indicates whether a key modifier is on, such as Ctrl, Shift, ...
@@ -198,7 +124,7 @@ IState
             return Efl.Input.IStateConcrete.efl_input_state_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_input_modifier_enabled_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Input.Modifier mod, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.Device seat);
@@ -211,13 +137,13 @@ IState
         private static bool modifier_enabled_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Modifier mod, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_input_modifier_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IState)wrapper).GetModifierEnabled(mod, seat);
+                    _ret_var = ((IState)ws.Target).GetModifierEnabled(mod, seat);
                 }
                 catch (Exception e)
                 {
@@ -247,13 +173,13 @@ IState
         private static bool lock_enabled_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Lock kw_lock, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_input_lock_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IState)wrapper).GetLockEnabled(kw_lock, seat);
+                    _ret_var = ((IState)ws.Target).GetLockEnabled(kw_lock, seat);
                 }
                 catch (Exception e)
                 {
@@ -272,7 +198,7 @@ IState
 
         private static efl_input_lock_enabled_get_delegate efl_input_lock_enabled_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index fd23558..6d0b9be 100644 (file)
@@ -18,13 +18,13 @@ public interface IInterpolator :
 double Interpolate(double progress);
     }
 /// <summary>Efl interpolator interface</summary>
-sealed public class IInterpolatorConcrete : 
-
-IInterpolator
+sealed public class IInterpolatorConcrete :
+    Efl.Eo.EoWrapper
+    , IInterpolator
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -39,86 +39,12 @@ IInterpolator
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_interpolator_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IInterpolator"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IInterpolatorConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IInterpolatorConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IInterpolatorConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Interpolate the given value.</summary>
@@ -164,7 +90,7 @@ IInterpolator
             return Efl.IInterpolatorConcrete.efl_interpolator_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_interpolator_interpolate_delegate(System.IntPtr obj, System.IntPtr pd,  double progress);
@@ -177,13 +103,13 @@ IInterpolator
         private static double interpolate(System.IntPtr obj, System.IntPtr pd, double progress)
         {
             Eina.Log.Debug("function efl_interpolator_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IInterpolator)wrapper).Interpolate(progress);
+                    _ret_var = ((IInterpolator)ws.Target).Interpolate(progress);
                 }
                 catch (Exception e)
                 {
@@ -202,7 +128,7 @@ IInterpolator
 
         private static efl_interpolator_interpolate_delegate efl_interpolator_interpolate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 1ee4893..1b63a5a 100644 (file)
@@ -16,7 +16,7 @@ namespace Io {
 /// 
 /// A fixed sized buffer can be implemented by setting <see cref="Efl.Io.Buffer.Limit"/> followed by <see cref="Efl.Io.Buffer.Preallocate"/></summary>
 [Efl.Io.Buffer.NativeMethods]
-public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositioner,Efl.Io.IReader,Efl.Io.ISizer,Efl.Io.IWriter
+public class Buffer : Efl.Object, Efl.Io.ICloser, Efl.Io.IPositioner, Efl.Io.IReader, Efl.Io.ISizer, Efl.Io.IWriter
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -49,7 +49,7 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Buffer(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Buffer"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -60,33 +60,6 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Notifies <see cref="Efl.Io.Buffer.PositionRead"/> changed</summary>
     public event EventHandler PositionReadChangedEvt
     {
@@ -94,10 +67,9 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -147,10 +119,9 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -200,10 +171,9 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -254,10 +224,9 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -307,10 +276,9 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -364,14 +332,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -432,10 +399,9 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -485,10 +451,9 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -542,14 +507,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -868,89 +832,89 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
                                         return _ret_var;
  }
     /// <summary>Limit how big the buffer can grow.
-/// This affects both <see cref="Efl.Io.Buffer.Preallocate"/> and how buffer grows when <see cref="Efl.Io.IWriter.Write"/> is called.
-/// 
-/// If you want a buffer of an exact size always set the limit before any further calls that can expand it.</summary>
-/// <value>Defines a maximum buffer size, or 0 to allow unlimited amount of bytes</value>
+    /// This affects both <see cref="Efl.Io.Buffer.Preallocate"/> and how buffer grows when <see cref="Efl.Io.IWriter.Write"/> is called.
+    /// 
+    /// If you want a buffer of an exact size always set the limit before any further calls that can expand it.</summary>
+    /// <value>Defines a maximum buffer size, or 0 to allow unlimited amount of bytes</value>
     public uint Limit {
         get { return GetLimit(); }
         set { SetLimit(value); }
     }
     /// <summary>The position used by <see cref="Efl.Io.IReader.Read"/>.
-/// Note that <see cref="Efl.Io.IPositioner.Seek"/> or <see cref="Efl.Io.IPositioner.SetPosition"/> will affect this property and <see cref="Efl.Io.Buffer.PositionWrite"/>.
-/// 
-/// <see cref="Efl.Io.IPositioner.GetPosition"/> will return the greatest of <see cref="Efl.Io.Buffer.PositionRead"/> and <see cref="Efl.Io.Buffer.PositionWrite"/>.</summary>
-/// <value>Position in buffer</value>
+    /// Note that <see cref="Efl.Io.IPositioner.Seek"/> or <see cref="Efl.Io.IPositioner.SetPosition"/> will affect this property and <see cref="Efl.Io.Buffer.PositionWrite"/>.
+    /// 
+    /// <see cref="Efl.Io.IPositioner.GetPosition"/> will return the greatest of <see cref="Efl.Io.Buffer.PositionRead"/> and <see cref="Efl.Io.Buffer.PositionWrite"/>.</summary>
+    /// <value>Position in buffer</value>
     public ulong PositionRead {
         get { return GetPositionRead(); }
         set { SetPositionRead(value); }
     }
     /// <summary>The position used by <see cref="Efl.Io.IWriter.Write"/>.
-/// Note that <see cref="Efl.Io.IPositioner.Seek"/> or <see cref="Efl.Io.IPositioner.SetPosition"/> will affect this property and <see cref="Efl.Io.Buffer.PositionRead"/>.
-/// 
-/// <see cref="Efl.Io.IPositioner.GetPosition"/> will return the greatest of <see cref="Efl.Io.Buffer.PositionRead"/> and <see cref="Efl.Io.Buffer.PositionWrite"/>.</summary>
-/// <value>Position in buffer</value>
+    /// Note that <see cref="Efl.Io.IPositioner.Seek"/> or <see cref="Efl.Io.IPositioner.SetPosition"/> will affect this property and <see cref="Efl.Io.Buffer.PositionRead"/>.
+    /// 
+    /// <see cref="Efl.Io.IPositioner.GetPosition"/> will return the greatest of <see cref="Efl.Io.Buffer.PositionRead"/> and <see cref="Efl.Io.Buffer.PositionWrite"/>.</summary>
+    /// <value>Position in buffer</value>
     public ulong PositionWrite {
         get { return GetPositionWrite(); }
         set { SetPositionWrite(value); }
     }
     /// <summary>Get a temporary access to buffer&apos;s internal memory.
-/// The memory pointed by slice may be changed by other methods of this class. The event &quot;reallocated&quot; will be called in those situations.</summary>
-/// <value>Slice of the current buffer, may be invalidated if <see cref="Efl.Io.IWriter.Write"/>, <see cref="Efl.Io.ICloser.Close"/> or <see cref="Efl.Io.ISizer.Resize"/> are called. It is the full slice, not a partial one starting at current position.</value>
+    /// The memory pointed by slice may be changed by other methods of this class. The event &quot;reallocated&quot; will be called in those situations.</summary>
+    /// <value>Slice of the current buffer, may be invalidated if <see cref="Efl.Io.IWriter.Write"/>, <see cref="Efl.Io.ICloser.Close"/> or <see cref="Efl.Io.ISizer.Resize"/> are called. It is the full slice, not a partial one starting at current position.</value>
     public Eina.Slice Slice {
         get { return GetSlice(); }
     }
     /// <summary>If true will notify object was closed.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if closed, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if closed, <c>false</c> otherwise</value>
     public bool Closed {
         get { return GetClosed(); }
     }
     /// <summary>If true will automatically close resources on exec() calls.
-/// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
+    /// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
     public bool CloseOnExec {
         get { return GetCloseOnExec(); }
         set { SetCloseOnExec(value); }
     }
     /// <summary>If true will automatically close() on object invalidate.
-/// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
+    /// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
     public bool CloseOnInvalidate {
         get { return GetCloseOnInvalidate(); }
         set { SetCloseOnInvalidate(value); }
     }
     /// <summary>Position property</summary>
-/// <value>Position in file or buffer</value>
+    /// <value>Position in file or buffer</value>
     public ulong Position {
         get { return GetPosition(); }
         set { SetPosition(value); }
     }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IReader.Read"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
     public bool CanRead {
         get { return GetCanRead(); }
         set { SetCanRead(value); }
     }
     /// <summary>If <c>true</c> will notify end of stream.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
     public bool Eos {
         get { return GetEos(); }
         set { SetEos(value); }
     }
     /// <summary>Size property</summary>
-/// <value>Object size</value>
+    /// <value>Object size</value>
     public ulong Size {
         get { return GetSize(); }
         set { SetSize(value); }
     }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IWriter.Write"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
     public bool CanWrite {
         get { return GetCanWrite(); }
         set { SetCanWrite(value); }
@@ -1291,7 +1255,7 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
             return Efl.Io.Buffer.efl_io_buffer_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate uint efl_io_buffer_limit_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1304,13 +1268,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static uint limit_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_buffer_limit_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetLimit();
+                    _ret_var = ((Buffer)ws.Target).GetLimit();
                 }
                 catch (Exception e)
                 {
@@ -1340,13 +1304,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static void limit_set(System.IntPtr obj, System.IntPtr pd, uint size)
         {
             Eina.Log.Debug("function efl_io_buffer_limit_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Buffer)wrapper).SetLimit(size);
+                    ((Buffer)ws.Target).SetLimit(size);
                 }
                 catch (Exception e)
                 {
@@ -1375,13 +1339,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static ulong position_read_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_buffer_position_read_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             ulong _ret_var = default(ulong);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetPositionRead();
+                    _ret_var = ((Buffer)ws.Target).GetPositionRead();
                 }
                 catch (Exception e)
                 {
@@ -1411,13 +1375,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool position_read_set(System.IntPtr obj, System.IntPtr pd, ulong position)
         {
             Eina.Log.Debug("function efl_io_buffer_position_read_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).SetPositionRead(position);
+                    _ret_var = ((Buffer)ws.Target).SetPositionRead(position);
                 }
                 catch (Exception e)
                 {
@@ -1447,13 +1411,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static ulong position_write_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_buffer_position_write_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             ulong _ret_var = default(ulong);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetPositionWrite();
+                    _ret_var = ((Buffer)ws.Target).GetPositionWrite();
                 }
                 catch (Exception e)
                 {
@@ -1483,13 +1447,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool position_write_set(System.IntPtr obj, System.IntPtr pd, ulong position)
         {
             Eina.Log.Debug("function efl_io_buffer_position_write_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).SetPositionWrite(position);
+                    _ret_var = ((Buffer)ws.Target).SetPositionWrite(position);
                 }
                 catch (Exception e)
                 {
@@ -1519,13 +1483,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static Eina.Slice slice_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_buffer_slice_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Slice _ret_var = default(Eina.Slice);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetSlice();
+                    _ret_var = ((Buffer)ws.Target).GetSlice();
                 }
                 catch (Exception e)
                 {
@@ -1555,13 +1519,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static void preallocate(System.IntPtr obj, System.IntPtr pd, uint size)
         {
             Eina.Log.Debug("function efl_io_buffer_preallocate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Buffer)wrapper).Preallocate(size);
+                    ((Buffer)ws.Target).Preallocate(size);
                 }
                 catch (Exception e)
                 {
@@ -1590,13 +1554,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static void adopt_readonly(System.IntPtr obj, System.IntPtr pd, Eina.Slice slice)
         {
             Eina.Log.Debug("function efl_io_buffer_adopt_readonly was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Buffer)wrapper).AdoptReadonly(slice);
+                    ((Buffer)ws.Target).AdoptReadonly(slice);
                 }
                 catch (Exception e)
                 {
@@ -1625,13 +1589,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static void adopt_readwrite(System.IntPtr obj, System.IntPtr pd, Eina.RwSlice slice)
         {
             Eina.Log.Debug("function efl_io_buffer_adopt_readwrite was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Buffer)wrapper).AdoptReadwrite(slice);
+                    ((Buffer)ws.Target).AdoptReadwrite(slice);
                 }
                 catch (Exception e)
                 {
@@ -1660,13 +1624,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static System.IntPtr binbuf_steal(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_buffer_binbuf_steal was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Binbuf _ret_var = default(Eina.Binbuf);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).BinbufSteal();
+                    _ret_var = ((Buffer)ws.Target).BinbufSteal();
                 }
                 catch (Exception e)
                 {
@@ -1696,13 +1660,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool closed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_closed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetClosed();
+                    _ret_var = ((Buffer)ws.Target).GetClosed();
                 }
                 catch (Exception e)
                 {
@@ -1732,13 +1696,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool close_on_exec_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetCloseOnExec();
+                    _ret_var = ((Buffer)ws.Target).GetCloseOnExec();
                 }
                 catch (Exception e)
                 {
@@ -1768,13 +1732,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool close_on_exec_set(System.IntPtr obj, System.IntPtr pd, bool close_on_exec)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).SetCloseOnExec(close_on_exec);
+                    _ret_var = ((Buffer)ws.Target).SetCloseOnExec(close_on_exec);
                 }
                 catch (Exception e)
                 {
@@ -1804,13 +1768,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool close_on_invalidate_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetCloseOnInvalidate();
+                    _ret_var = ((Buffer)ws.Target).GetCloseOnInvalidate();
                 }
                 catch (Exception e)
                 {
@@ -1840,13 +1804,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static void close_on_invalidate_set(System.IntPtr obj, System.IntPtr pd, bool close_on_invalidate)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Buffer)wrapper).SetCloseOnInvalidate(close_on_invalidate);
+                    ((Buffer)ws.Target).SetCloseOnInvalidate(close_on_invalidate);
                 }
                 catch (Exception e)
                 {
@@ -1875,13 +1839,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static Eina.Error close(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).Close();
+                    _ret_var = ((Buffer)ws.Target).Close();
                 }
                 catch (Exception e)
                 {
@@ -1911,13 +1875,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static ulong position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_positioner_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             ulong _ret_var = default(ulong);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetPosition();
+                    _ret_var = ((Buffer)ws.Target).GetPosition();
                 }
                 catch (Exception e)
                 {
@@ -1947,13 +1911,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool position_set(System.IntPtr obj, System.IntPtr pd, ulong position)
         {
             Eina.Log.Debug("function efl_io_positioner_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).SetPosition(position);
+                    _ret_var = ((Buffer)ws.Target).SetPosition(position);
                 }
                 catch (Exception e)
                 {
@@ -1983,13 +1947,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static Eina.Error seek(System.IntPtr obj, System.IntPtr pd, long offset, Efl.Io.PositionerWhence whence)
         {
             Eina.Log.Debug("function efl_io_positioner_seek was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).Seek(offset, whence);
+                    _ret_var = ((Buffer)ws.Target).Seek(offset, whence);
                 }
                 catch (Exception e)
                 {
@@ -2019,13 +1983,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool can_read_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetCanRead();
+                    _ret_var = ((Buffer)ws.Target).GetCanRead();
                 }
                 catch (Exception e)
                 {
@@ -2055,13 +2019,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static void can_read_set(System.IntPtr obj, System.IntPtr pd, bool can_read)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Buffer)wrapper).SetCanRead(can_read);
+                    ((Buffer)ws.Target).SetCanRead(can_read);
                 }
                 catch (Exception e)
                 {
@@ -2090,13 +2054,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool eos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_eos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetEos();
+                    _ret_var = ((Buffer)ws.Target).GetEos();
                 }
                 catch (Exception e)
                 {
@@ -2126,13 +2090,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static void eos_set(System.IntPtr obj, System.IntPtr pd, bool is_eos)
         {
             Eina.Log.Debug("function efl_io_reader_eos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Buffer)wrapper).SetEos(is_eos);
+                    ((Buffer)ws.Target).SetEos(is_eos);
                 }
                 catch (Exception e)
                 {
@@ -2161,13 +2125,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static Eina.Error read(System.IntPtr obj, System.IntPtr pd, ref Eina.RwSlice rw_slice)
         {
             Eina.Log.Debug("function efl_io_reader_read was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).Read(ref rw_slice);
+                    _ret_var = ((Buffer)ws.Target).Read(ref rw_slice);
                 }
                 catch (Exception e)
                 {
@@ -2197,13 +2161,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static ulong size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_sizer_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             ulong _ret_var = default(ulong);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetSize();
+                    _ret_var = ((Buffer)ws.Target).GetSize();
                 }
                 catch (Exception e)
                 {
@@ -2233,13 +2197,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool size_set(System.IntPtr obj, System.IntPtr pd, ulong size)
         {
             Eina.Log.Debug("function efl_io_sizer_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).SetSize(size);
+                    _ret_var = ((Buffer)ws.Target).SetSize(size);
                 }
                 catch (Exception e)
                 {
@@ -2269,13 +2233,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static Eina.Error resize(System.IntPtr obj, System.IntPtr pd, ulong size)
         {
             Eina.Log.Debug("function efl_io_sizer_resize was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).Resize(size);
+                    _ret_var = ((Buffer)ws.Target).Resize(size);
                 }
                 catch (Exception e)
                 {
@@ -2305,13 +2269,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static bool can_write_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).GetCanWrite();
+                    _ret_var = ((Buffer)ws.Target).GetCanWrite();
                 }
                 catch (Exception e)
                 {
@@ -2341,13 +2305,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static void can_write_set(System.IntPtr obj, System.IntPtr pd, bool can_write)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Buffer)wrapper).SetCanWrite(can_write);
+                    ((Buffer)ws.Target).SetCanWrite(can_write);
                 }
                 catch (Exception e)
                 {
@@ -2376,13 +2340,13 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
         private static Eina.Error write(System.IntPtr obj, System.IntPtr pd, ref Eina.Slice slice, ref Eina.Slice remaining)
         {
             Eina.Log.Debug("function efl_io_writer_write was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 remaining = default(Eina.Slice);                            Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Buffer)wrapper).Write(ref slice, ref remaining);
+                    _ret_var = ((Buffer)ws.Target).Write(ref slice, ref remaining);
                 }
                 catch (Exception e)
                 {
@@ -2401,7 +2365,7 @@ public class Buffer : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IPositio
 
         private static efl_io_writer_write_delegate efl_io_writer_write_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index f9d0d36..e7d12b9 100644 (file)
@@ -53,23 +53,23 @@ Eina.Error Close();
     /// (Since EFL 1.22)</summary>
     event EventHandler ClosedEvt;
     /// <summary>If true will notify object was closed.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if closed, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if closed, <c>false</c> otherwise</value>
     bool Closed {
         get ;
     }
     /// <summary>If true will automatically close resources on exec() calls.
-/// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
+    /// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
     bool CloseOnExec {
         get ;
         set ;
     }
     /// <summary>If true will automatically close() on object invalidate.
-/// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
+    /// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
     bool CloseOnInvalidate {
         get ;
         set ;
@@ -80,13 +80,13 @@ Eina.Error Close();
 /// 
 /// Calls to <see cref="Efl.Io.ICloser.Close"/> may or may not block, that&apos;s not up to this interface to specify.
 /// (Since EFL 1.22)</summary>
-sealed public class ICloserConcrete : 
-
-ICloser
+sealed public class ICloserConcrete :
+    Efl.Eo.EoWrapper
+    , ICloser
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -101,155 +101,12 @@ ICloser
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_io_closer_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ICloser"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ICloserConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ICloserConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private ICloserConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Notifies closed, when property is marked as true
@@ -260,10 +117,9 @@ ICloser
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -361,23 +217,23 @@ ICloser
         return _ret_var;
  }
     /// <summary>If true will notify object was closed.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if closed, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if closed, <c>false</c> otherwise</value>
     public bool Closed {
         get { return GetClosed(); }
     }
     /// <summary>If true will automatically close resources on exec() calls.
-/// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
+    /// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
     public bool CloseOnExec {
         get { return GetCloseOnExec(); }
         set { SetCloseOnExec(value); }
     }
     /// <summary>If true will automatically close() on object invalidate.
-/// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
+    /// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
     public bool CloseOnInvalidate {
         get { return GetCloseOnInvalidate(); }
         set { SetCloseOnInvalidate(value); }
@@ -467,7 +323,7 @@ ICloser
             return Efl.Io.ICloserConcrete.efl_io_closer_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_io_closer_closed_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -480,13 +336,13 @@ ICloser
         private static bool closed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_closed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ICloser)wrapper).GetClosed();
+                    _ret_var = ((ICloser)ws.Target).GetClosed();
                 }
                 catch (Exception e)
                 {
@@ -516,13 +372,13 @@ ICloser
         private static bool close_on_exec_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ICloser)wrapper).GetCloseOnExec();
+                    _ret_var = ((ICloser)ws.Target).GetCloseOnExec();
                 }
                 catch (Exception e)
                 {
@@ -552,13 +408,13 @@ ICloser
         private static bool close_on_exec_set(System.IntPtr obj, System.IntPtr pd, bool close_on_exec)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ICloser)wrapper).SetCloseOnExec(close_on_exec);
+                    _ret_var = ((ICloser)ws.Target).SetCloseOnExec(close_on_exec);
                 }
                 catch (Exception e)
                 {
@@ -588,13 +444,13 @@ ICloser
         private static bool close_on_invalidate_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ICloser)wrapper).GetCloseOnInvalidate();
+                    _ret_var = ((ICloser)ws.Target).GetCloseOnInvalidate();
                 }
                 catch (Exception e)
                 {
@@ -624,13 +480,13 @@ ICloser
         private static void close_on_invalidate_set(System.IntPtr obj, System.IntPtr pd, bool close_on_invalidate)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ICloser)wrapper).SetCloseOnInvalidate(close_on_invalidate);
+                    ((ICloser)ws.Target).SetCloseOnInvalidate(close_on_invalidate);
                 }
                 catch (Exception e)
                 {
@@ -659,13 +515,13 @@ ICloser
         private static Eina.Error close(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((ICloser)wrapper).Close();
+                    _ret_var = ((ICloser)ws.Target).Close();
                 }
                 catch (Exception e)
                 {
@@ -684,7 +540,7 @@ ICloser
 
         private static efl_io_closer_close_delegate efl_io_closer_close_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e99eafb..a59725f 100644 (file)
@@ -29,20 +29,20 @@ Eina.Error Seek(long offset, Efl.Io.PositionerWhence whence);
                 /// <summary>Notifies position changed</summary>
     event EventHandler PositionChangedEvt;
     /// <summary>Position property</summary>
-/// <value>Position in file or buffer</value>
+    /// <value>Position in file or buffer</value>
     ulong Position {
         get ;
         set ;
     }
 }
 /// <summary>Generic interface for objects that can change or report position.</summary>
-sealed public class IPositionerConcrete : 
-
-IPositioner
+sealed public class IPositionerConcrete :
+    Efl.Eo.EoWrapper
+    , IPositioner
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -57,155 +57,12 @@ IPositioner
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_io_positioner_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IPositioner"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPositionerConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPositionerConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IPositionerConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Notifies position changed</summary>
@@ -215,10 +72,9 @@ IPositioner
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -286,7 +142,7 @@ IPositioner
                                         return _ret_var;
  }
     /// <summary>Position property</summary>
-/// <value>Position in file or buffer</value>
+    /// <value>Position in file or buffer</value>
     public ulong Position {
         get { return GetPosition(); }
         set { SetPosition(value); }
@@ -346,7 +202,7 @@ IPositioner
             return Efl.Io.IPositionerConcrete.efl_io_positioner_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate ulong efl_io_positioner_position_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -359,13 +215,13 @@ IPositioner
         private static ulong position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_positioner_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             ulong _ret_var = default(ulong);
                 try
                 {
-                    _ret_var = ((IPositionerConcrete)wrapper).GetPosition();
+                    _ret_var = ((IPositionerConcrete)ws.Target).GetPosition();
                 }
                 catch (Exception e)
                 {
@@ -395,13 +251,13 @@ IPositioner
         private static bool position_set(System.IntPtr obj, System.IntPtr pd, ulong position)
         {
             Eina.Log.Debug("function efl_io_positioner_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPositionerConcrete)wrapper).SetPosition(position);
+                    _ret_var = ((IPositionerConcrete)ws.Target).SetPosition(position);
                 }
                 catch (Exception e)
                 {
@@ -431,13 +287,13 @@ IPositioner
         private static Eina.Error seek(System.IntPtr obj, System.IntPtr pd, long offset, Efl.Io.PositionerWhence whence)
         {
             Eina.Log.Debug("function efl_io_positioner_seek was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((IPositionerConcrete)wrapper).Seek(offset, whence);
+                    _ret_var = ((IPositionerConcrete)ws.Target).Seek(offset, whence);
                 }
                 catch (Exception e)
                 {
@@ -456,7 +312,7 @@ IPositioner
 
         private static efl_io_positioner_seek_delegate efl_io_positioner_seek_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index cc5d709..dddc1d8 100644 (file)
@@ -14,7 +14,7 @@ namespace Io {
 /// 
 /// A fixed sized queue can be implemented by setting <see cref="Efl.Io.Queue.Limit"/> followed by <see cref="Efl.Io.Queue.Preallocate"/></summary>
 [Efl.Io.Queue.NativeMethods]
-public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,Efl.Io.IWriter
+public class Queue : Efl.Object, Efl.Io.ICloser, Efl.Io.IReader, Efl.Io.IWriter
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -47,7 +47,7 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Queue(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Queue"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -58,33 +58,6 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The read-slice returned by <see cref="Efl.Io.Queue.GetSlice"/> may have changed.</summary>
     public event EventHandler SliceChangedEvt
     {
@@ -92,10 +65,9 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -146,10 +118,9 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -203,14 +174,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -271,10 +241,9 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -328,14 +297,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -570,64 +538,64 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
                                         return _ret_var;
  }
     /// <summary>Limit how big the buffer can grow.
-/// This affects both <see cref="Efl.Io.Queue.Preallocate"/> and how buffer grows when <see cref="Efl.Io.IWriter.Write"/> is called.
-/// 
-/// If you want a buffer of an exact size, always set the limit before any further calls that can expand it.</summary>
-/// <value>Defines a maximum buffer size, or 0 to allow unlimited amount of bytes</value>
+    /// This affects both <see cref="Efl.Io.Queue.Preallocate"/> and how buffer grows when <see cref="Efl.Io.IWriter.Write"/> is called.
+    /// 
+    /// If you want a buffer of an exact size, always set the limit before any further calls that can expand it.</summary>
+    /// <value>Defines a maximum buffer size, or 0 to allow unlimited amount of bytes</value>
     public uint Limit {
         get { return GetLimit(); }
         set { SetLimit(value); }
     }
     /// <summary>How many bytes are available for read</summary>
-/// <value>Bytes available to read</value>
+    /// <value>Bytes available to read</value>
     public uint Usage {
         get { return GetUsage(); }
     }
     /// <summary>Gain temporary access to queue&apos;s internal read memory.
-/// The memory pointed to by slice may be changed by other methods of this class. The event &quot;slice,changed&quot; will be called in those situations.</summary>
-/// <value>Slice of the current buffer, may be invalidated if <see cref="Efl.Io.IWriter.Write"/>, <see cref="Efl.Io.ICloser.Close"/> or <see cref="Efl.Io.IReader.Read"/> are called. It is the full slice available for reading.</value>
+    /// The memory pointed to by slice may be changed by other methods of this class. The event &quot;slice,changed&quot; will be called in those situations.</summary>
+    /// <value>Slice of the current buffer, may be invalidated if <see cref="Efl.Io.IWriter.Write"/>, <see cref="Efl.Io.ICloser.Close"/> or <see cref="Efl.Io.IReader.Read"/> are called. It is the full slice available for reading.</value>
     public Eina.Slice Slice {
         get { return GetSlice(); }
     }
     /// <summary>If true will notify object was closed.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if closed, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if closed, <c>false</c> otherwise</value>
     public bool Closed {
         get { return GetClosed(); }
     }
     /// <summary>If true will automatically close resources on exec() calls.
-/// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
+    /// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
     public bool CloseOnExec {
         get { return GetCloseOnExec(); }
         set { SetCloseOnExec(value); }
     }
     /// <summary>If true will automatically close() on object invalidate.
-/// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
+    /// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
     public bool CloseOnInvalidate {
         get { return GetCloseOnInvalidate(); }
         set { SetCloseOnInvalidate(value); }
     }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IReader.Read"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
     public bool CanRead {
         get { return GetCanRead(); }
         set { SetCanRead(value); }
     }
     /// <summary>If <c>true</c> will notify end of stream.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
     public bool Eos {
         get { return GetEos(); }
         set { SetEos(value); }
     }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IWriter.Write"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
     public bool CanWrite {
         get { return GetCanWrite(); }
         set { SetCanWrite(value); }
@@ -878,7 +846,7 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
             return Efl.Io.Queue.efl_io_queue_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate uint efl_io_queue_limit_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -891,13 +859,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static uint limit_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_queue_limit_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).GetLimit();
+                    _ret_var = ((Queue)ws.Target).GetLimit();
                 }
                 catch (Exception e)
                 {
@@ -927,13 +895,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static void limit_set(System.IntPtr obj, System.IntPtr pd, uint size)
         {
             Eina.Log.Debug("function efl_io_queue_limit_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Queue)wrapper).SetLimit(size);
+                    ((Queue)ws.Target).SetLimit(size);
                 }
                 catch (Exception e)
                 {
@@ -962,13 +930,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static uint usage_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_queue_usage_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).GetUsage();
+                    _ret_var = ((Queue)ws.Target).GetUsage();
                 }
                 catch (Exception e)
                 {
@@ -998,13 +966,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static Eina.Slice slice_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_queue_slice_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Slice _ret_var = default(Eina.Slice);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).GetSlice();
+                    _ret_var = ((Queue)ws.Target).GetSlice();
                 }
                 catch (Exception e)
                 {
@@ -1034,13 +1002,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static void preallocate(System.IntPtr obj, System.IntPtr pd, uint size)
         {
             Eina.Log.Debug("function efl_io_queue_preallocate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Queue)wrapper).Preallocate(size);
+                    ((Queue)ws.Target).Preallocate(size);
                 }
                 catch (Exception e)
                 {
@@ -1069,13 +1037,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static void discard(System.IntPtr obj, System.IntPtr pd, uint amount)
         {
             Eina.Log.Debug("function efl_io_queue_discard was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Queue)wrapper).Discard(amount);
+                    ((Queue)ws.Target).Discard(amount);
                 }
                 catch (Exception e)
                 {
@@ -1104,13 +1072,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static void clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_queue_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Queue)wrapper).Clear();
+                    ((Queue)ws.Target).Clear();
                 }
                 catch (Exception e)
                 {
@@ -1139,13 +1107,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static void eos_mark(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_queue_eos_mark was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Queue)wrapper).EosMark();
+                    ((Queue)ws.Target).EosMark();
                 }
                 catch (Exception e)
                 {
@@ -1174,13 +1142,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static bool closed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_closed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).GetClosed();
+                    _ret_var = ((Queue)ws.Target).GetClosed();
                 }
                 catch (Exception e)
                 {
@@ -1210,13 +1178,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static bool close_on_exec_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).GetCloseOnExec();
+                    _ret_var = ((Queue)ws.Target).GetCloseOnExec();
                 }
                 catch (Exception e)
                 {
@@ -1246,13 +1214,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static bool close_on_exec_set(System.IntPtr obj, System.IntPtr pd, bool close_on_exec)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).SetCloseOnExec(close_on_exec);
+                    _ret_var = ((Queue)ws.Target).SetCloseOnExec(close_on_exec);
                 }
                 catch (Exception e)
                 {
@@ -1282,13 +1250,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static bool close_on_invalidate_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).GetCloseOnInvalidate();
+                    _ret_var = ((Queue)ws.Target).GetCloseOnInvalidate();
                 }
                 catch (Exception e)
                 {
@@ -1318,13 +1286,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static void close_on_invalidate_set(System.IntPtr obj, System.IntPtr pd, bool close_on_invalidate)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Queue)wrapper).SetCloseOnInvalidate(close_on_invalidate);
+                    ((Queue)ws.Target).SetCloseOnInvalidate(close_on_invalidate);
                 }
                 catch (Exception e)
                 {
@@ -1353,13 +1321,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static Eina.Error close(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).Close();
+                    _ret_var = ((Queue)ws.Target).Close();
                 }
                 catch (Exception e)
                 {
@@ -1389,13 +1357,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static bool can_read_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).GetCanRead();
+                    _ret_var = ((Queue)ws.Target).GetCanRead();
                 }
                 catch (Exception e)
                 {
@@ -1425,13 +1393,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static void can_read_set(System.IntPtr obj, System.IntPtr pd, bool can_read)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Queue)wrapper).SetCanRead(can_read);
+                    ((Queue)ws.Target).SetCanRead(can_read);
                 }
                 catch (Exception e)
                 {
@@ -1460,13 +1428,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static bool eos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_eos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).GetEos();
+                    _ret_var = ((Queue)ws.Target).GetEos();
                 }
                 catch (Exception e)
                 {
@@ -1496,13 +1464,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static void eos_set(System.IntPtr obj, System.IntPtr pd, bool is_eos)
         {
             Eina.Log.Debug("function efl_io_reader_eos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Queue)wrapper).SetEos(is_eos);
+                    ((Queue)ws.Target).SetEos(is_eos);
                 }
                 catch (Exception e)
                 {
@@ -1531,13 +1499,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static Eina.Error read(System.IntPtr obj, System.IntPtr pd, ref Eina.RwSlice rw_slice)
         {
             Eina.Log.Debug("function efl_io_reader_read was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).Read(ref rw_slice);
+                    _ret_var = ((Queue)ws.Target).Read(ref rw_slice);
                 }
                 catch (Exception e)
                 {
@@ -1567,13 +1535,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static bool can_write_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).GetCanWrite();
+                    _ret_var = ((Queue)ws.Target).GetCanWrite();
                 }
                 catch (Exception e)
                 {
@@ -1603,13 +1571,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static void can_write_set(System.IntPtr obj, System.IntPtr pd, bool can_write)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Queue)wrapper).SetCanWrite(can_write);
+                    ((Queue)ws.Target).SetCanWrite(can_write);
                 }
                 catch (Exception e)
                 {
@@ -1638,13 +1606,13 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
         private static Eina.Error write(System.IntPtr obj, System.IntPtr pd, ref Eina.Slice slice, ref Eina.Slice remaining)
         {
             Eina.Log.Debug("function efl_io_writer_write was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 remaining = default(Eina.Slice);                            Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Queue)wrapper).Write(ref slice, ref remaining);
+                    _ret_var = ((Queue)ws.Target).Write(ref slice, ref remaining);
                 }
                 catch (Exception e)
                 {
@@ -1663,7 +1631,7 @@ public class Queue : Efl.Object, Efl.Eo.IWrapper,Efl.Io.ICloser,Efl.Io.IReader,E
 
         private static efl_io_writer_write_delegate efl_io_writer_write_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index fdacc10..cf97dc1 100644 (file)
@@ -57,15 +57,15 @@ Eina.Error Read(ref Eina.RwSlice rw_slice);
     /// (Since EFL 1.22)</summary>
     event EventHandler EosEvt;
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IReader.Read"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
     bool CanRead {
         get ;
         set ;
     }
     /// <summary>If <c>true</c> will notify end of stream.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
     bool Eos {
         get ;
         set ;
@@ -81,13 +81,13 @@ public class IReaderCanReadChangedEvt_Args : EventArgs {
 /// 
 /// Calls to <see cref="Efl.Io.IReader.Read"/> may or may not block, that&apos;s not up to this interface to specify. The user can check based on <see cref="Efl.Io.IReader.Eos"/> property and signal if the stream reached an end, with event &quot;can_read,changed&quot; or property <see cref="Efl.Io.IReader.CanRead"/> to known whenever a read would have data to return.
 /// (Since EFL 1.22)</summary>
-sealed public class IReaderConcrete : 
-
-IReader
+sealed public class IReaderConcrete :
+    Efl.Eo.EoWrapper
+    , IReader
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -102,155 +102,12 @@ IReader
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_io_reader_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IReader"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IReaderConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IReaderConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
+    private IReaderConcrete(System.IntPtr raw) : base(raw)
     {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Notifies can_read property changed.
@@ -264,14 +121,13 @@ IReader
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -332,10 +188,9 @@ IReader
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -421,15 +276,15 @@ IReader
                         return _ret_var;
  }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IReader.Read"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
     public bool CanRead {
         get { return GetCanRead(); }
         set { SetCanRead(value); }
     }
     /// <summary>If <c>true</c> will notify end of stream.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
     public bool Eos {
         get { return GetEos(); }
         set { SetEos(value); }
@@ -509,7 +364,7 @@ IReader
             return Efl.Io.IReaderConcrete.efl_io_reader_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_io_reader_can_read_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -522,13 +377,13 @@ IReader
         private static bool can_read_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IReader)wrapper).GetCanRead();
+                    _ret_var = ((IReader)ws.Target).GetCanRead();
                 }
                 catch (Exception e)
                 {
@@ -558,13 +413,13 @@ IReader
         private static void can_read_set(System.IntPtr obj, System.IntPtr pd, bool can_read)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IReader)wrapper).SetCanRead(can_read);
+                    ((IReader)ws.Target).SetCanRead(can_read);
                 }
                 catch (Exception e)
                 {
@@ -593,13 +448,13 @@ IReader
         private static bool eos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_eos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IReader)wrapper).GetEos();
+                    _ret_var = ((IReader)ws.Target).GetEos();
                 }
                 catch (Exception e)
                 {
@@ -629,13 +484,13 @@ IReader
         private static void eos_set(System.IntPtr obj, System.IntPtr pd, bool is_eos)
         {
             Eina.Log.Debug("function efl_io_reader_eos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IReader)wrapper).SetEos(is_eos);
+                    ((IReader)ws.Target).SetEos(is_eos);
                 }
                 catch (Exception e)
                 {
@@ -664,13 +519,13 @@ IReader
         private static Eina.Error read(System.IntPtr obj, System.IntPtr pd, ref Eina.RwSlice rw_slice)
         {
             Eina.Log.Debug("function efl_io_reader_read was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((IReader)wrapper).Read(ref rw_slice);
+                    _ret_var = ((IReader)ws.Target).Read(ref rw_slice);
                 }
                 catch (Exception e)
                 {
@@ -689,7 +544,7 @@ IReader
 
         private static efl_io_reader_read_delegate efl_io_reader_read_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index f3a3570..c63b2bb 100644 (file)
@@ -29,7 +29,7 @@ Eina.Error Resize(ulong size);
                 /// <summary>Notifies size changed</summary>
     event EventHandler SizeChangedEvt;
     /// <summary>Size property</summary>
-/// <value>Object size</value>
+    /// <value>Object size</value>
     ulong Size {
         get ;
         set ;
@@ -37,13 +37,13 @@ Eina.Error Resize(ulong size);
 }
 /// <summary>Generic interface for objects that can resize or report size of themselves.
 /// This interface allows external objects to transparently resize or report its size.</summary>
-sealed public class ISizerConcrete : 
-
-ISizer
+sealed public class ISizerConcrete :
+    Efl.Eo.EoWrapper
+    , ISizer
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -58,155 +58,12 @@ ISizer
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_io_sizer_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="ISizer"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ISizerConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ISizerConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private ISizerConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Notifies size changed</summary>
@@ -216,10 +73,9 @@ ISizer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -286,7 +142,7 @@ ISizer
                         return _ret_var;
  }
     /// <summary>Size property</summary>
-/// <value>Object size</value>
+    /// <value>Object size</value>
     public ulong Size {
         get { return GetSize(); }
         set { SetSize(value); }
@@ -346,7 +202,7 @@ ISizer
             return Efl.Io.ISizerConcrete.efl_io_sizer_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate ulong efl_io_sizer_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -359,13 +215,13 @@ ISizer
         private static ulong size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_sizer_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             ulong _ret_var = default(ulong);
                 try
                 {
-                    _ret_var = ((ISizerConcrete)wrapper).GetSize();
+                    _ret_var = ((ISizerConcrete)ws.Target).GetSize();
                 }
                 catch (Exception e)
                 {
@@ -395,13 +251,13 @@ ISizer
         private static bool size_set(System.IntPtr obj, System.IntPtr pd, ulong size)
         {
             Eina.Log.Debug("function efl_io_sizer_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISizerConcrete)wrapper).SetSize(size);
+                    _ret_var = ((ISizerConcrete)ws.Target).SetSize(size);
                 }
                 catch (Exception e)
                 {
@@ -431,13 +287,13 @@ ISizer
         private static Eina.Error resize(System.IntPtr obj, System.IntPtr pd, ulong size)
         {
             Eina.Log.Debug("function efl_io_sizer_resize was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((ISizerConcrete)wrapper).Resize(size);
+                    _ret_var = ((ISizerConcrete)ws.Target).Resize(size);
                 }
                 catch (Exception e)
                 {
@@ -456,7 +312,7 @@ ISizer
 
         private static efl_io_sizer_resize_delegate efl_io_sizer_resize_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index cf7c57e..4c3a3b8 100644 (file)
@@ -42,8 +42,8 @@ Eina.Error Write(ref Eina.Slice slice, ref Eina.Slice remaining);
     /// (Since EFL 1.22)</summary>
     event EventHandler<Efl.Io.IWriterCanWriteChangedEvt_Args> CanWriteChangedEvt;
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IWriter.Write"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
     bool CanWrite {
         get ;
         set ;
@@ -59,13 +59,13 @@ public class IWriterCanWriteChangedEvt_Args : EventArgs {
 /// 
 /// Calls to <see cref="Efl.Io.IWriter.Write"/> may or may not block: that&apos;s not up to this interface to specify. The user can check with event &quot;can_write,changed&quot; or property <see cref="Efl.Io.IWriter.CanWrite"/> to known whenever a write could push more data.
 /// (Since EFL 1.22)</summary>
-sealed public class IWriterConcrete : 
-
-IWriter
+sealed public class IWriterConcrete :
+    Efl.Eo.EoWrapper
+    , IWriter
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -80,155 +80,12 @@ IWriter
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_io_writer_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IWriter"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IWriterConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IWriterConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IWriterConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Notifies can_write property changed.
@@ -242,14 +99,13 @@ IWriter
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -326,8 +182,8 @@ IWriter
                                         return _ret_var;
  }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IWriter.Write"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
     public bool CanWrite {
         get { return GetCanWrite(); }
         set { SetCanWrite(value); }
@@ -387,7 +243,7 @@ IWriter
             return Efl.Io.IWriterConcrete.efl_io_writer_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_io_writer_can_write_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -400,13 +256,13 @@ IWriter
         private static bool can_write_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IWriter)wrapper).GetCanWrite();
+                    _ret_var = ((IWriter)ws.Target).GetCanWrite();
                 }
                 catch (Exception e)
                 {
@@ -436,13 +292,13 @@ IWriter
         private static void can_write_set(System.IntPtr obj, System.IntPtr pd, bool can_write)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IWriter)wrapper).SetCanWrite(can_write);
+                    ((IWriter)ws.Target).SetCanWrite(can_write);
                 }
                 catch (Exception e)
                 {
@@ -471,13 +327,13 @@ IWriter
         private static Eina.Error write(System.IntPtr obj, System.IntPtr pd, ref Eina.Slice slice, ref Eina.Slice remaining)
         {
             Eina.Log.Debug("function efl_io_writer_write was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 remaining = default(Eina.Slice);                            Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((IWriter)wrapper).Write(ref slice, ref remaining);
+                    _ret_var = ((IWriter)ws.Target).Write(ref slice, ref remaining);
                 }
                 catch (Exception e)
                 {
@@ -496,7 +352,7 @@ IWriter
 
         private static efl_io_writer_write_delegate efl_io_writer_write_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index a4ba37f..c9eb681 100644 (file)
@@ -70,11 +70,11 @@ void CalcForce();
     /// (Since EFL 1.22)</summary>
     event EventHandler<Efl.Layout.ICalcCircularDependencyEvt_Args> CircularDependencyEvt;
     /// <summary>Whether this object updates its size hints automatically.
-/// By default edje doesn&apos;t set size hints on itself. If this property is set to <c>true</c>, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.
-/// 
-/// A layout recalculation can be triggered by <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcPartsExtends"/> or even any other internal event.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether or not update the size hints.</value>
+    /// By default edje doesn&apos;t set size hints on itself. If this property is set to <c>true</c>, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.
+    /// 
+    /// A layout recalculation can be triggered by <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcPartsExtends"/> or even any other internal event.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether or not update the size hints.</value>
     bool CalcAutoUpdateHints {
         get ;
         set ;
@@ -88,13 +88,13 @@ public class ICalcCircularDependencyEvt_Args : EventArgs {
 /// <summary>This interface defines a common set of APIs used to trigger calculations with layout objects.
 /// This defines all the APIs supported by legacy &quot;Edje&quot; object, known in EO API as Efl.Canvas.Layout.
 /// (Since EFL 1.22)</summary>
-sealed public class ICalcConcrete : 
-
-ICalc
+sealed public class ICalcConcrete :
+    Efl.Eo.EoWrapper
+    , ICalc
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -109,155 +109,12 @@ ICalc
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Edje)] internal static extern System.IntPtr
         efl_layout_calc_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ICalc"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ICalcConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ICalcConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
+    private ICalcConcrete(System.IntPtr raw) : base(raw)
     {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>The layout was recalculated.
@@ -268,10 +125,9 @@ ICalc
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -322,13 +178,12 @@ ICalc
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Layout.ICalcCircularDependencyEvt_Args args = new Efl.Layout.ICalcCircularDependencyEvt_Args();
+                        Efl.Layout.ICalcCircularDependencyEvt_Args args = new Efl.Layout.ICalcCircularDependencyEvt_Args();
                         args.arg = new Eina.Array<System.String>(evt.Info, false, false);
                         try
                         {
@@ -445,11 +300,11 @@ ICalc
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Whether this object updates its size hints automatically.
-/// By default edje doesn&apos;t set size hints on itself. If this property is set to <c>true</c>, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.
-/// 
-/// A layout recalculation can be triggered by <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcPartsExtends"/> or even any other internal event.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether or not update the size hints.</value>
+    /// By default edje doesn&apos;t set size hints on itself. If this property is set to <c>true</c>, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.
+    /// 
+    /// A layout recalculation can be triggered by <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcPartsExtends"/> or even any other internal event.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether or not update the size hints.</value>
     public bool CalcAutoUpdateHints {
         get { return GetCalcAutoUpdateHints(); }
         set { SetCalcAutoUpdateHints(value); }
@@ -549,7 +404,7 @@ ICalc
             return Efl.Layout.ICalcConcrete.efl_layout_calc_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_layout_calc_auto_update_hints_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -562,13 +417,13 @@ ICalc
         private static bool calc_auto_update_hints_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_auto_update_hints_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ICalc)wrapper).GetCalcAutoUpdateHints();
+                    _ret_var = ((ICalc)ws.Target).GetCalcAutoUpdateHints();
                 }
                 catch (Exception e)
                 {
@@ -598,13 +453,13 @@ ICalc
         private static void calc_auto_update_hints_set(System.IntPtr obj, System.IntPtr pd, bool update)
         {
             Eina.Log.Debug("function efl_layout_calc_auto_update_hints_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ICalc)wrapper).SetCalcAutoUpdateHints(update);
+                    ((ICalc)ws.Target).SetCalcAutoUpdateHints(update);
                 }
                 catch (Exception e)
                 {
@@ -633,14 +488,14 @@ ICalc
         private static Eina.Size2D.NativeStruct calc_size_min(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct restricted)
         {
             Eina.Log.Debug("function efl_layout_calc_size_min was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_restricted = restricted;
                             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((ICalc)wrapper).CalcSizeMin(_in_restricted);
+                    _ret_var = ((ICalc)ws.Target).CalcSizeMin(_in_restricted);
                 }
                 catch (Exception e)
                 {
@@ -670,13 +525,13 @@ ICalc
         private static Eina.Rect.NativeStruct calc_parts_extends(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_parts_extends was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((ICalc)wrapper).CalcPartsExtends();
+                    _ret_var = ((ICalc)ws.Target).CalcPartsExtends();
                 }
                 catch (Exception e)
                 {
@@ -706,13 +561,13 @@ ICalc
         private static int calc_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ICalc)wrapper).FreezeCalc();
+                    _ret_var = ((ICalc)ws.Target).FreezeCalc();
                 }
                 catch (Exception e)
                 {
@@ -742,13 +597,13 @@ ICalc
         private static int calc_thaw(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_thaw was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ICalc)wrapper).ThawCalc();
+                    _ret_var = ((ICalc)ws.Target).ThawCalc();
                 }
                 catch (Exception e)
                 {
@@ -778,13 +633,13 @@ ICalc
         private static void calc_force(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_force was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ICalc)wrapper).CalcForce();
+                    ((ICalc)ws.Target).CalcForce();
                 }
                 catch (Exception e)
                 {
@@ -802,7 +657,7 @@ ICalc
 
         private static efl_layout_calc_force_delegate efl_layout_calc_force_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3e02b33..43b6800 100644 (file)
@@ -55,41 +55,41 @@ System.String GetGroupData(System.String key);
 /// <returns><c>true</c> if the part exists, <c>false</c> otherwise.</returns>
 bool GetPartExist(System.String part);
                     /// <summary>Gets the minimum size specified -- as an EDC property -- for a given Edje object
-/// This function retrieves the obj object&apos;s minimum size values, as declared in its EDC group definition. For instance, for an Edje object of minimum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; min: 100 100; } }
-/// 
-/// Note: If the <c>min</c> EDC property was not declared for this object, this call will return 0x0.
-/// 
-/// Note: On failure, this function also return 0x0.
-/// 
-/// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMax"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The minimum size as set in EDC.</value>
+    /// This function retrieves the obj object&apos;s minimum size values, as declared in its EDC group definition. For instance, for an Edje object of minimum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; min: 100 100; } }
+    /// 
+    /// Note: If the <c>min</c> EDC property was not declared for this object, this call will return 0x0.
+    /// 
+    /// Note: On failure, this function also return 0x0.
+    /// 
+    /// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMax"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The minimum size as set in EDC.</value>
     Eina.Size2D GroupSizeMin {
         get ;
     }
     /// <summary>Gets the maximum size specified -- as an EDC property -- for a given Edje object
-/// This function retrieves the object&apos;s maximum size values, as declared in its EDC group definition. For instance, for an Edje object of maximum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; max: 100 100; } }
-/// 
-/// Note: If the <c>max</c> EDC property was not declared for the object, this call will return the maximum size a given Edje object may have, for each axis.
-/// 
-/// Note: On failure, this function will return 0x0.
-/// 
-/// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMin"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The maximum size as set in EDC.</value>
+    /// This function retrieves the object&apos;s maximum size values, as declared in its EDC group definition. For instance, for an Edje object of maximum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; max: 100 100; } }
+    /// 
+    /// Note: If the <c>max</c> EDC property was not declared for the object, this call will return the maximum size a given Edje object may have, for each axis.
+    /// 
+    /// Note: On failure, this function will return 0x0.
+    /// 
+    /// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMin"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The maximum size as set in EDC.</value>
     Eina.Size2D GroupSizeMax {
         get ;
     }
 }
 /// <summary>APIs representing static data from a group in an edje file.
 /// (Since EFL 1.22)</summary>
-sealed public class IGroupConcrete : 
-
-IGroup
+sealed public class IGroupConcrete :
+    Efl.Eo.EoWrapper
+    , IGroup
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -104,86 +104,12 @@ IGroup
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Edje)] internal static extern System.IntPtr
         efl_layout_group_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IGroup"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IGroupConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IGroupConcrete()
+    private IGroupConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Gets the minimum size specified -- as an EDC property -- for a given Edje object
@@ -242,28 +168,28 @@ IGroup
                         return _ret_var;
  }
     /// <summary>Gets the minimum size specified -- as an EDC property -- for a given Edje object
-/// This function retrieves the obj object&apos;s minimum size values, as declared in its EDC group definition. For instance, for an Edje object of minimum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; min: 100 100; } }
-/// 
-/// Note: If the <c>min</c> EDC property was not declared for this object, this call will return 0x0.
-/// 
-/// Note: On failure, this function also return 0x0.
-/// 
-/// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMax"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The minimum size as set in EDC.</value>
+    /// This function retrieves the obj object&apos;s minimum size values, as declared in its EDC group definition. For instance, for an Edje object of minimum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; min: 100 100; } }
+    /// 
+    /// Note: If the <c>min</c> EDC property was not declared for this object, this call will return 0x0.
+    /// 
+    /// Note: On failure, this function also return 0x0.
+    /// 
+    /// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMax"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The minimum size as set in EDC.</value>
     public Eina.Size2D GroupSizeMin {
         get { return GetGroupSizeMin(); }
     }
     /// <summary>Gets the maximum size specified -- as an EDC property -- for a given Edje object
-/// This function retrieves the object&apos;s maximum size values, as declared in its EDC group definition. For instance, for an Edje object of maximum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; max: 100 100; } }
-/// 
-/// Note: If the <c>max</c> EDC property was not declared for the object, this call will return the maximum size a given Edje object may have, for each axis.
-/// 
-/// Note: On failure, this function will return 0x0.
-/// 
-/// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMin"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The maximum size as set in EDC.</value>
+    /// This function retrieves the object&apos;s maximum size values, as declared in its EDC group definition. For instance, for an Edje object of maximum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; max: 100 100; } }
+    /// 
+    /// Note: If the <c>max</c> EDC property was not declared for the object, this call will return the maximum size a given Edje object may have, for each axis.
+    /// 
+    /// Note: On failure, this function will return 0x0.
+    /// 
+    /// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMin"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The maximum size as set in EDC.</value>
     public Eina.Size2D GroupSizeMax {
         get { return GetGroupSizeMax(); }
     }
@@ -332,7 +258,7 @@ IGroup
             return Efl.Layout.IGroupConcrete.efl_layout_group_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Size2D.NativeStruct efl_layout_group_size_min_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -345,13 +271,13 @@ IGroup
         private static Eina.Size2D.NativeStruct group_size_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_group_size_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IGroup)wrapper).GetGroupSizeMin();
+                    _ret_var = ((IGroup)ws.Target).GetGroupSizeMin();
                 }
                 catch (Exception e)
                 {
@@ -381,13 +307,13 @@ IGroup
         private static Eina.Size2D.NativeStruct group_size_max_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_group_size_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IGroup)wrapper).GetGroupSizeMax();
+                    _ret_var = ((IGroup)ws.Target).GetGroupSizeMax();
                 }
                 catch (Exception e)
                 {
@@ -417,13 +343,13 @@ IGroup
         private static System.String group_data_get(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_layout_group_data_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IGroup)wrapper).GetGroupData(key);
+                    _ret_var = ((IGroup)ws.Target).GetGroupData(key);
                 }
                 catch (Exception e)
                 {
@@ -453,13 +379,13 @@ IGroup
         private static bool part_exist_get(System.IntPtr obj, System.IntPtr pd, System.String part)
         {
             Eina.Log.Debug("function efl_layout_group_part_exist_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IGroup)wrapper).GetPartExist(part);
+                    _ret_var = ((IGroup)ws.Target).GetPartExist(part);
                 }
                 catch (Exception e)
                 {
@@ -478,7 +404,7 @@ IGroup
 
         private static efl_layout_group_part_exist_get_delegate efl_layout_group_part_exist_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 61e770c..2bebd26 100644 (file)
@@ -146,13 +146,13 @@ void SignalProcess(bool recurse);
                     }
 /// <summary>Layouts asynchronous messaging and signaling interface.
 /// (Since EFL 1.22)</summary>
-sealed public class ISignalConcrete : 
-
-ISignal
+sealed public class ISignalConcrete :
+    Efl.Eo.EoWrapper
+    , ISignal
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -167,86 +167,12 @@ ISignal
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Edje)] internal static extern System.IntPtr
         efl_layout_signal_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ISignal"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ISignalConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ISignalConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ISignalConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Sends an (Edje) message to a given Edje object
@@ -402,7 +328,7 @@ ISignal
             return Efl.Layout.ISignalConcrete.efl_layout_signal_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_layout_signal_message_send_delegate(System.IntPtr obj, System.IntPtr pd,  int id,  Eina.ValueNative msg);
@@ -415,13 +341,13 @@ ISignal
         private static void message_send(System.IntPtr obj, System.IntPtr pd, int id, Eina.ValueNative msg)
         {
             Eina.Log.Debug("function efl_layout_signal_message_send was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ISignal)wrapper).MessageSend(id, msg);
+                    ((ISignal)ws.Target).MessageSend(id, msg);
                 }
                 catch (Exception e)
                 {
@@ -450,14 +376,14 @@ ISignal
         private static bool signal_callback_add(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_layout_signal_callback_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                             EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb);
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISignal)wrapper).AddSignalCallback(emission, source, func_wrapper.ManagedCb);
+                    _ret_var = ((ISignal)ws.Target).AddSignalCallback(emission, source, func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -487,14 +413,14 @@ ISignal
         private static bool signal_callback_del(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_layout_signal_callback_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                             EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb);
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISignal)wrapper).DelSignalCallback(emission, source, func_wrapper.ManagedCb);
+                    _ret_var = ((ISignal)ws.Target).DelSignalCallback(emission, source, func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -524,13 +450,13 @@ ISignal
         private static void signal_emit(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source)
         {
             Eina.Log.Debug("function efl_layout_signal_emit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ISignal)wrapper).EmitSignal(emission, source);
+                    ((ISignal)ws.Target).EmitSignal(emission, source);
                 }
                 catch (Exception e)
                 {
@@ -559,13 +485,13 @@ ISignal
         private static void signal_process(System.IntPtr obj, System.IntPtr pd, bool recurse)
         {
             Eina.Log.Debug("function efl_layout_signal_process was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ISignal)wrapper).SignalProcess(recurse);
+                    ((ISignal)ws.Target).SignalProcess(recurse);
                 }
                 catch (Exception e)
                 {
@@ -583,7 +509,7 @@ ISignal
 
         private static efl_layout_signal_process_delegate efl_layout_signal_process_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 0cde7e0..2b3ee44 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>Efl linear interpolator class</summary>
 [Efl.LinearInterpolator.NativeMethods]
-public class LinearInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
+public class LinearInterpolator : Efl.Object, Efl.IInterpolator
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class LinearInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LinearInterpolator(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LinearInterpolator"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class LinearInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Interpolate the given value.</summary>
     /// <param name="progress">Input value mapped from 0.0 to 1.0.</param>
     /// <returns>Output value calculated by interpolating the input value.</returns>
@@ -124,7 +97,7 @@ public class LinearInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
             return Efl.LinearInterpolator.efl_linear_interpolator_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_interpolator_interpolate_delegate(System.IntPtr obj, System.IntPtr pd,  double progress);
@@ -137,13 +110,13 @@ public class LinearInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
         private static double interpolate(System.IntPtr obj, System.IntPtr pd, double progress)
         {
             Eina.Log.Debug("function efl_interpolator_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((LinearInterpolator)wrapper).Interpolate(progress);
+                    _ret_var = ((LinearInterpolator)ws.Target).Interpolate(progress);
                 }
                 catch (Exception e)
                 {
@@ -162,7 +135,7 @@ public class LinearInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
 
         private static efl_interpolator_interpolate_delegate efl_interpolator_interpolate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index c1cd505..5830a0f 100644 (file)
@@ -16,7 +16,7 @@ public class LoopArgumentsEvt_Args : EventArgs {
 /// The Efl main loop provides a clean and tiny event loop library with many modules to do lots of convenient things for a programmer, saving time and effort. It&apos;s lean and designed to work on anything from embedded systems all the way up to large and powerful multi-cpu workstations. The main loop has a number of primitives you can use. It serializes these and allows for greater responsiveness without the need for threads (or any other concurrency). However you can provide these if you need to.
 /// (Since EFL 1.22)</summary>
 [Efl.Loop.NativeMethods]
-public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
+public abstract class Loop : Efl.Task
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -49,7 +49,7 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Loop(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class LoopRealized : Loop
@@ -67,33 +67,6 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Event occurs once the main loop enters the idle state.
     /// (Since EFL 1.22)</summary>
     public event EventHandler IdleEnterEvt
@@ -102,10 +75,9 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -156,10 +128,9 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -210,10 +181,9 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -264,13 +234,12 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.LoopArgumentsEvt_Args args = new Efl.LoopArgumentsEvt_Args();
+                        Efl.LoopArgumentsEvt_Args args = new Efl.LoopArgumentsEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -328,10 +297,9 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -382,10 +350,9 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -436,10 +403,9 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -490,10 +456,9 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -645,31 +610,44 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
+    /// <summary>Async wrapper for <see cref="Job" />.</summary>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> JobAsync( System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = Job();
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
+    /// <summary>Async wrapper for <see cref="Idle" />.</summary>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> IdleAsync( System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = Idle();
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
+    /// <summary>Async wrapper for <see cref="Timeout" />.</summary>
+    /// <param name="time">The time from now in second that the main loop will wait before triggering it.</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> TimeoutAsync(double time, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = Timeout( time);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
     /// <summary>Slow down the loop execution by forcing sleep for a small period of time every time the loop iterates/loops.
-/// (Since EFL 1.22)</summary>
-/// <value>Time to sleep for each &quot;loop iteration&quot;</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>Time to sleep for each &quot;loop iteration&quot;</value>
     public double Throttle {
         get { return GetThrottle(); }
         set { SetThrottle(value); }
     }
     /// <summary>Retrieves the time at which the last loop stopped waiting for timeouts or events.
-/// (Since EFL 1.22)</summary>
-/// <value>Time in seconds</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>Time in seconds</value>
     public double Time {
         get { return GetTime(); }
         set { SetTime(value); }
@@ -830,7 +808,7 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
             return Efl.Loop.efl_loop_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_loop_throttle_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -843,13 +821,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static double throttle_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_throttle_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Loop)wrapper).GetThrottle();
+                    _ret_var = ((Loop)ws.Target).GetThrottle();
                 }
                 catch (Exception e)
                 {
@@ -879,13 +857,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static void throttle_set(System.IntPtr obj, System.IntPtr pd, double amount)
         {
             Eina.Log.Debug("function efl_loop_throttle_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Loop)wrapper).SetThrottle(amount);
+                    ((Loop)ws.Target).SetThrottle(amount);
                 }
                 catch (Exception e)
                 {
@@ -914,13 +892,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static double time_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_time_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Loop)wrapper).GetTime();
+                    _ret_var = ((Loop)ws.Target).GetTime();
                 }
                 catch (Exception e)
                 {
@@ -950,13 +928,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static void time_set(System.IntPtr obj, System.IntPtr pd, double timepoint)
         {
             Eina.Log.Debug("function efl_loop_time_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Loop)wrapper).SetTime(timepoint);
+                    ((Loop)ws.Target).SetTime(timepoint);
                 }
                 catch (Exception e)
                 {
@@ -985,13 +963,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static void iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Loop)wrapper).Iterate();
+                    ((Loop)ws.Target).Iterate();
                 }
                 catch (Exception e)
                 {
@@ -1020,13 +998,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static int iterate_may_block(System.IntPtr obj, System.IntPtr pd, int may_block)
         {
             Eina.Log.Debug("function efl_loop_iterate_may_block was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Loop)wrapper).IterateMayBlock(may_block);
+                    _ret_var = ((Loop)ws.Target).IterateMayBlock(may_block);
                 }
                 catch (Exception e)
                 {
@@ -1056,13 +1034,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static Eina.Value begin(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_begin was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Value _ret_var = default(Eina.Value);
                 try
                 {
-                    _ret_var = ((Loop)wrapper).Begin();
+                    _ret_var = ((Loop)ws.Target).Begin();
                 }
                 catch (Exception e)
                 {
@@ -1092,14 +1070,14 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static void quit(System.IntPtr obj, System.IntPtr pd, Eina.ValueNative exit_code)
         {
             Eina.Log.Debug("function efl_loop_quit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_exit_code = new Eina.Value(exit_code);
                             
                 try
                 {
-                    ((Loop)wrapper).Quit(_in_exit_code);
+                    ((Loop)ws.Target).Quit(_in_exit_code);
                 }
                 catch (Exception e)
                 {
@@ -1128,13 +1106,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static  Eina.Future job(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_job was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((Loop)wrapper).Job();
+                    _ret_var = ((Loop)ws.Target).Job();
                 }
                 catch (Exception e)
                 {
@@ -1164,13 +1142,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static  Eina.Future idle(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_idle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((Loop)wrapper).Idle();
+                    _ret_var = ((Loop)ws.Target).Idle();
                 }
                 catch (Exception e)
                 {
@@ -1200,13 +1178,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static  Eina.Future timeout(System.IntPtr obj, System.IntPtr pd, double time)
         {
             Eina.Log.Debug("function efl_loop_timeout was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                      Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((Loop)wrapper).Timeout(time);
+                    _ret_var = ((Loop)ws.Target).Timeout(time);
                 }
                 catch (Exception e)
                 {
@@ -1236,13 +1214,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static bool register(System.IntPtr obj, System.IntPtr pd, Type klass, Efl.Object provider)
         {
             Eina.Log.Debug("function efl_loop_register was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Loop)wrapper).Register(klass, provider);
+                    _ret_var = ((Loop)ws.Target).Register(klass, provider);
                 }
                 catch (Exception e)
                 {
@@ -1272,13 +1250,13 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
         private static bool unregister(System.IntPtr obj, System.IntPtr pd, Type klass, Efl.Object provider)
         {
             Eina.Log.Debug("function efl_loop_unregister was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Loop)wrapper).Unregister(klass, provider);
+                    _ret_var = ((Loop)ws.Target).Unregister(klass, provider);
                 }
                 catch (Exception e)
                 {
@@ -1297,7 +1275,7 @@ public abstract class Loop : Efl.Task, Efl.Eo.IWrapper
 
         private static efl_loop_unregister_delegate efl_loop_unregister_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -1323,12 +1301,16 @@ public struct LoopArguments
         this.Initialization = Initialization;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator LoopArguments(IntPtr ptr)
     {
         var tmp = (LoopArguments.NativeStruct)Marshal.PtrToStructure(ptr, typeof(LoopArguments.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct LoopArguments.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1357,6 +1339,8 @@ public struct LoopArguments
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index dd2fc85..f68ad19 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 /// <summary>An <see cref="Efl.LoopConsumer"/> is a class which requires one of the parents to provide an <see cref="Efl.Loop"/> interface when performing <see cref="Efl.Object.FindProvider"/>. It will enforce this by only allowing parents which provide such an interface or <c>NULL</c>.
 /// (Since EFL 1.22)</summary>
 [Efl.LoopConsumer.NativeMethods]
-public abstract class LoopConsumer : Efl.Object, Efl.Eo.IWrapper
+public abstract class LoopConsumer : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -43,7 +43,7 @@ public abstract class LoopConsumer : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LoopConsumer(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class LoopConsumerRealized : LoopConsumer
@@ -61,33 +61,6 @@ public abstract class LoopConsumer : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Gets a handle to the loop.
     /// (Since EFL 1.22)</summary>
     /// <returns>Efl loop</returns>
@@ -131,19 +104,30 @@ public abstract class LoopConsumer : Efl.Object, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
+    /// <summary>Async wrapper for <see cref="FutureResolved" />.</summary>
+    /// <param name="result">The value to be delivered.
+    /// Note that the value contents must survive this function scope, that is, do not use stack allocated blobs, arrays, structures or types that keep references to memory you give. Values will be automatically cleaned up using @ref eina_value_flush() once they are unused (no more future or futures returned a new value)</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> FutureResolvedAsync(Eina.Value result, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = FutureResolved( result);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
+    /// <summary>Async wrapper for <see cref="FutureRejected" />.</summary>
+    /// <param name="error">An Eina_Error value</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> FutureRejectedAsync(Eina.Error error, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = FutureRejected( error);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
     /// <summary>The loop to which this object belongs to.
-/// (Since EFL 1.22)</summary>
-/// <value>Efl loop</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>Efl loop</value>
     public Efl.Loop Loop {
         get { return GetLoop(); }
     }
@@ -213,7 +197,7 @@ public abstract class LoopConsumer : Efl.Object, Efl.Eo.IWrapper
             return Efl.LoopConsumer.efl_loop_consumer_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Loop efl_loop_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -226,13 +210,13 @@ public abstract class LoopConsumer : Efl.Object, Efl.Eo.IWrapper
         private static Efl.Loop loop_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Loop _ret_var = default(Efl.Loop);
                 try
                 {
-                    _ret_var = ((LoopConsumer)wrapper).GetLoop();
+                    _ret_var = ((LoopConsumer)ws.Target).GetLoop();
                 }
                 catch (Exception e)
                 {
@@ -262,14 +246,14 @@ public abstract class LoopConsumer : Efl.Object, Efl.Eo.IWrapper
         private static  Eina.Future future_resolved(System.IntPtr obj, System.IntPtr pd, Eina.ValueNative result)
         {
             Eina.Log.Debug("function efl_loop_future_resolved was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_result = new Eina.Value(result);
                              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((LoopConsumer)wrapper).FutureResolved(_in_result);
+                    _ret_var = ((LoopConsumer)ws.Target).FutureResolved(_in_result);
                 }
                 catch (Exception e)
                 {
@@ -299,13 +283,13 @@ public abstract class LoopConsumer : Efl.Object, Efl.Eo.IWrapper
         private static  Eina.Future future_rejected(System.IntPtr obj, System.IntPtr pd, Eina.Error error)
         {
             Eina.Log.Debug("function efl_loop_future_rejected was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                      Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((LoopConsumer)wrapper).FutureRejected(error);
+                    _ret_var = ((LoopConsumer)ws.Target).FutureRejected(error);
                 }
                 catch (Exception e)
                 {
@@ -335,13 +319,13 @@ public abstract class LoopConsumer : Efl.Object, Efl.Eo.IWrapper
         private static Eina.Promise promise_new(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_promise_new was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Promise _ret_var = default(Eina.Promise);
                 try
                 {
-                    _ret_var = ((LoopConsumer)wrapper).NewPromise();
+                    _ret_var = ((LoopConsumer)ws.Target).NewPromise();
                 }
                 catch (Exception e)
                 {
@@ -360,7 +344,7 @@ public abstract class LoopConsumer : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_loop_promise_new_delegate efl_loop_promise_new_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 103f819..7be12f2 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 /// <summary>Fds are objects that watch the activity on a given file descriptor. This file descriptor can be a network, a file, provided by a library.
 /// The object will trigger relevant events depending on what&apos;s happening.</summary>
 [Efl.LoopFd.NativeMethods]
-public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
+public class LoopFd : Efl.LoopConsumer
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -43,7 +43,7 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LoopFd(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LoopFd"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -54,33 +54,6 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when a read happened on the file descriptor</summary>
     public event EventHandler ReadEvt
     {
@@ -88,10 +61,9 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -141,10 +113,9 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -194,10 +165,9 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -267,13 +237,13 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Defines which file descriptor to watch. If it is a file, use file_fd variant.</summary>
-/// <value>The file descriptor.</value>
+    /// <value>The file descriptor.</value>
     public int Fd {
         get { return GetFd(); }
         set { SetFd(value); }
     }
     /// <summary>Defines which file descriptor to watch when watching a file.</summary>
-/// <value>The file descriptor.</value>
+    /// <value>The file descriptor.</value>
     public int FdFile {
         get { return GetFdFile(); }
         set { SetFdFile(value); }
@@ -344,7 +314,7 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
             return Efl.LoopFd.efl_loop_fd_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_loop_fd_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -357,13 +327,13 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static int fd_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_fd_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LoopFd)wrapper).GetFd();
+                    _ret_var = ((LoopFd)ws.Target).GetFd();
                 }
                 catch (Exception e)
                 {
@@ -393,13 +363,13 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static void fd_set(System.IntPtr obj, System.IntPtr pd, int fd)
         {
             Eina.Log.Debug("function efl_loop_fd_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopFd)wrapper).SetFd(fd);
+                    ((LoopFd)ws.Target).SetFd(fd);
                 }
                 catch (Exception e)
                 {
@@ -428,13 +398,13 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static int fd_file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_fd_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LoopFd)wrapper).GetFdFile();
+                    _ret_var = ((LoopFd)ws.Target).GetFdFile();
                 }
                 catch (Exception e)
                 {
@@ -464,13 +434,13 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static void fd_file_set(System.IntPtr obj, System.IntPtr pd, int fd)
         {
             Eina.Log.Debug("function efl_loop_fd_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopFd)wrapper).SetFdFile(fd);
+                    ((LoopFd)ws.Target).SetFdFile(fd);
                 }
                 catch (Exception e)
                 {
@@ -488,7 +458,7 @@ public class LoopFd : Efl.LoopConsumer, Efl.Eo.IWrapper
 
         private static efl_loop_fd_file_set_delegate efl_loop_fd_file_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 76e8e96..ece571a 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>An object that describes an low-level source of I/O to listen to for available data to be read or written, depending on the OS and data source type. When I/O becomes available various events are produced and the callbacks attached to them will be called.</summary>
 [Efl.LoopHandler.NativeMethods]
-public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
+public class LoopHandler : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LoopHandler(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LoopHandler"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when a read occurs on the descriptor.</summary>
     public event EventHandler ReadEvt
     {
@@ -87,10 +60,9 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -140,10 +112,9 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -193,10 +164,9 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -246,10 +216,9 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -299,10 +268,9 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -398,25 +366,25 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>This sets what kind of I/O should be listened to only when using a fd or fd_file for the handler</summary>
-/// <value>The flags that indicate what kind of I/O should be listened for like read, write or error channels.</value>
+    /// <value>The flags that indicate what kind of I/O should be listened for like read, write or error channels.</value>
     public Efl.LoopHandlerFlags Active {
         get { return GetActive(); }
         set { SetActive(value); }
     }
     /// <summary>Controls a file descriptor to listen to for I/O, which points to a data pipe such as a device, socket or pipe etc.</summary>
-/// <value>The file descriptor</value>
+    /// <value>The file descriptor</value>
     public int Fd {
         get { return GetFd(); }
         set { SetFd(value); }
     }
     /// <summary>Controls a file descriptor to listen to for I/O that specifically points to a file in storage and not a device, socket or pipe etc.</summary>
-/// <value>The file descriptor</value>
+    /// <value>The file descriptor</value>
     public int FdFile {
         get { return GetFdFile(); }
         set { SetFdFile(value); }
     }
     /// <summary>Controls a windows win32 object handle to listen to for I/O. When it becomes available for any data the read event will be produced.</summary>
-/// <value>A win32 object handle</value>
+    /// <value>A win32 object handle</value>
     public System.IntPtr Win32 {
         get { return GetWin32(); }
         set { SetWin32(value); }
@@ -527,7 +495,7 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
             return Efl.LoopHandler.efl_loop_handler_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.LoopHandlerFlags efl_loop_handler_active_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -540,13 +508,13 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         private static Efl.LoopHandlerFlags active_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_handler_active_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.LoopHandlerFlags _ret_var = default(Efl.LoopHandlerFlags);
                 try
                 {
-                    _ret_var = ((LoopHandler)wrapper).GetActive();
+                    _ret_var = ((LoopHandler)ws.Target).GetActive();
                 }
                 catch (Exception e)
                 {
@@ -576,13 +544,13 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         private static void active_set(System.IntPtr obj, System.IntPtr pd, Efl.LoopHandlerFlags flags)
         {
             Eina.Log.Debug("function efl_loop_handler_active_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopHandler)wrapper).SetActive(flags);
+                    ((LoopHandler)ws.Target).SetActive(flags);
                 }
                 catch (Exception e)
                 {
@@ -611,13 +579,13 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         private static int fd_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_handler_fd_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LoopHandler)wrapper).GetFd();
+                    _ret_var = ((LoopHandler)ws.Target).GetFd();
                 }
                 catch (Exception e)
                 {
@@ -647,13 +615,13 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         private static void fd_set(System.IntPtr obj, System.IntPtr pd, int fd)
         {
             Eina.Log.Debug("function efl_loop_handler_fd_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopHandler)wrapper).SetFd(fd);
+                    ((LoopHandler)ws.Target).SetFd(fd);
                 }
                 catch (Exception e)
                 {
@@ -682,13 +650,13 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         private static int fd_file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_handler_fd_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LoopHandler)wrapper).GetFdFile();
+                    _ret_var = ((LoopHandler)ws.Target).GetFdFile();
                 }
                 catch (Exception e)
                 {
@@ -718,13 +686,13 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         private static void fd_file_set(System.IntPtr obj, System.IntPtr pd, int fd)
         {
             Eina.Log.Debug("function efl_loop_handler_fd_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopHandler)wrapper).SetFdFile(fd);
+                    ((LoopHandler)ws.Target).SetFdFile(fd);
                 }
                 catch (Exception e)
                 {
@@ -753,13 +721,13 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         private static System.IntPtr win32_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_handler_win32_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((LoopHandler)wrapper).GetWin32();
+                    _ret_var = ((LoopHandler)ws.Target).GetWin32();
                 }
                 catch (Exception e)
                 {
@@ -789,13 +757,13 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
         private static void win32_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr handle)
         {
             Eina.Log.Debug("function efl_loop_handler_win32_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopHandler)wrapper).SetWin32(handle);
+                    ((LoopHandler)ws.Target).SetWin32(handle);
                 }
                 catch (Exception e)
                 {
@@ -813,7 +781,7 @@ public class LoopHandler : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_loop_handler_win32_set_delegate efl_loop_handler_win32_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index dc474e2..a2dcfd2 100644 (file)
@@ -14,7 +14,7 @@ public class LoopMessageMessageEvt_Args : EventArgs {
 }
 /// <summary>Base message payload object class. Inherit this and extend for specific message types.</summary>
 [Efl.LoopMessage.NativeMethods]
-public class LoopMessage : Efl.Object, Efl.Eo.IWrapper
+public class LoopMessage : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -47,7 +47,7 @@ public class LoopMessage : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LoopMessage(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LoopMessage"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -58,33 +58,6 @@ public class LoopMessage : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The message payload data</summary>
     public event EventHandler<Efl.LoopMessageMessageEvt_Args> MessageEvt
     {
@@ -92,13 +65,12 @@ public class LoopMessage : Efl.Object, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.LoopMessageMessageEvt_Args args = new Efl.LoopMessageMessageEvt_Args();
+                        Efl.LoopMessageMessageEvt_Args args = new Efl.LoopMessageMessageEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.LoopMessage);
                         try
                         {
@@ -163,9 +135,9 @@ public class LoopMessage : Efl.Object, Efl.Eo.IWrapper
             return Efl.LoopMessage.efl_loop_message_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index fa0c167..c7896a4 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>Used internally for futures on the loop</summary>
 [Efl.LoopMessageFuture.NativeMethods]
-public class LoopMessageFuture : Efl.LoopMessage, Efl.Eo.IWrapper
+public class LoopMessageFuture : Efl.LoopMessage
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class LoopMessageFuture : Efl.LoopMessage, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LoopMessageFuture(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LoopMessageFuture"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class LoopMessageFuture : Efl.LoopMessage, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>No description supplied.</summary>
     /// <returns>No description supplied.</returns>
     virtual public System.IntPtr GetData() {
@@ -94,7 +67,7 @@ public class LoopMessageFuture : Efl.LoopMessage, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>No description supplied.</summary>
-/// <value>No description supplied.</value>
+    /// <value>No description supplied.</value>
     public System.IntPtr Data {
         get { return GetData(); }
         set { SetData(value); }
@@ -145,7 +118,7 @@ public class LoopMessageFuture : Efl.LoopMessage, Efl.Eo.IWrapper
             return Efl.LoopMessageFuture.efl_loop_message_future_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_loop_message_future_data_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -158,13 +131,13 @@ public class LoopMessageFuture : Efl.LoopMessage, Efl.Eo.IWrapper
         private static System.IntPtr data_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_message_future_data_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((LoopMessageFuture)wrapper).GetData();
+                    _ret_var = ((LoopMessageFuture)ws.Target).GetData();
                 }
                 catch (Exception e)
                 {
@@ -194,13 +167,13 @@ public class LoopMessageFuture : Efl.LoopMessage, Efl.Eo.IWrapper
         private static void data_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_loop_message_future_data_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopMessageFuture)wrapper).SetData(data);
+                    ((LoopMessageFuture)ws.Target).SetData(data);
                 }
                 catch (Exception e)
                 {
@@ -218,7 +191,7 @@ public class LoopMessageFuture : Efl.LoopMessage, Efl.Eo.IWrapper
 
         private static efl_loop_message_future_data_set_delegate efl_loop_message_future_data_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 76c5db7..4a9293d 100644 (file)
@@ -14,7 +14,7 @@ public class LoopMessageFutureHandlerMessageFutureEvt_Args : EventArgs {
 }
 /// <summary>Internal use for future on an efl loop - replacing legacy ecore events</summary>
 [Efl.LoopMessageFutureHandler.NativeMethods]
-public class LoopMessageFutureHandler : Efl.LoopMessageHandler, Efl.Eo.IWrapper
+public class LoopMessageFutureHandler : Efl.LoopMessageHandler
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -47,7 +47,7 @@ public class LoopMessageFutureHandler : Efl.LoopMessageHandler, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LoopMessageFutureHandler(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LoopMessageFutureHandler"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -58,33 +58,6 @@ public class LoopMessageFutureHandler : Efl.LoopMessageHandler, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>No description supplied.</summary>
     public event EventHandler<Efl.LoopMessageFutureHandlerMessageFutureEvt_Args> MessageFutureEvt
     {
@@ -92,13 +65,12 @@ public class LoopMessageFutureHandler : Efl.LoopMessageHandler, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.LoopMessageFutureHandlerMessageFutureEvt_Args args = new Efl.LoopMessageFutureHandlerMessageFutureEvt_Args();
+                        Efl.LoopMessageFutureHandlerMessageFutureEvt_Args args = new Efl.LoopMessageFutureHandlerMessageFutureEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.LoopMessageFuture);
                         try
                         {
@@ -183,7 +155,7 @@ public class LoopMessageFutureHandler : Efl.LoopMessageHandler, Efl.Eo.IWrapper
             return Efl.LoopMessageFutureHandler.efl_loop_message_future_handler_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.LoopMessageFuture efl_loop_message_future_handler_message_type_add_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -196,13 +168,13 @@ public class LoopMessageFutureHandler : Efl.LoopMessageHandler, Efl.Eo.IWrapper
         private static Efl.LoopMessageFuture message_type_add(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_message_future_handler_message_type_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.LoopMessageFuture _ret_var = default(Efl.LoopMessageFuture);
                 try
                 {
-                    _ret_var = ((LoopMessageFutureHandler)wrapper).AddMessageType();
+                    _ret_var = ((LoopMessageFutureHandler)ws.Target).AddMessageType();
                 }
                 catch (Exception e)
                 {
@@ -221,7 +193,7 @@ public class LoopMessageFutureHandler : Efl.LoopMessageHandler, Efl.Eo.IWrapper
 
         private static efl_loop_message_future_handler_message_type_add_delegate efl_loop_message_future_handler_message_type_add_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index d35edae..458f153 100644 (file)
@@ -14,7 +14,7 @@ public class LoopMessageHandlerMessageEvt_Args : EventArgs {
 }
 /// <summary>Message handlers represent a single message type on the Efl.Loop parent object. These message handlers can be used to listen for that message type by listening to the message event for the generic case or a class specific event type to get specific message object typing correct.</summary>
 [Efl.LoopMessageHandler.NativeMethods]
-public class LoopMessageHandler : Efl.Object, Efl.Eo.IWrapper
+public class LoopMessageHandler : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -47,7 +47,7 @@ public class LoopMessageHandler : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LoopMessageHandler(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LoopMessageHandler"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -58,33 +58,6 @@ public class LoopMessageHandler : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The message payload data</summary>
     public event EventHandler<Efl.LoopMessageHandlerMessageEvt_Args> MessageEvt
     {
@@ -92,13 +65,12 @@ public class LoopMessageHandler : Efl.Object, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.LoopMessageHandlerMessageEvt_Args args = new Efl.LoopMessageHandlerMessageEvt_Args();
+                        Efl.LoopMessageHandlerMessageEvt_Args args = new Efl.LoopMessageHandlerMessageEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.LoopMessage);
                         try
                         {
@@ -232,7 +204,7 @@ public class LoopMessageHandler : Efl.Object, Efl.Eo.IWrapper
             return Efl.LoopMessageHandler.efl_loop_message_handler_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.LoopMessage efl_loop_message_handler_message_add_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -245,13 +217,13 @@ public class LoopMessageHandler : Efl.Object, Efl.Eo.IWrapper
         private static Efl.LoopMessage message_add(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_message_handler_message_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.LoopMessage _ret_var = default(Efl.LoopMessage);
                 try
                 {
-                    _ret_var = ((LoopMessageHandler)wrapper).AddMessage();
+                    _ret_var = ((LoopMessageHandler)ws.Target).AddMessage();
                 }
                 catch (Exception e)
                 {
@@ -281,13 +253,13 @@ public class LoopMessageHandler : Efl.Object, Efl.Eo.IWrapper
         private static void message_send(System.IntPtr obj, System.IntPtr pd, Efl.LoopMessage message)
         {
             Eina.Log.Debug("function efl_loop_message_handler_message_send was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopMessageHandler)wrapper).MessageSend(message);
+                    ((LoopMessageHandler)ws.Target).MessageSend(message);
                 }
                 catch (Exception e)
                 {
@@ -316,13 +288,13 @@ public class LoopMessageHandler : Efl.Object, Efl.Eo.IWrapper
         private static void message_call(System.IntPtr obj, System.IntPtr pd, Efl.LoopMessage message)
         {
             Eina.Log.Debug("function efl_loop_message_handler_message_call was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopMessageHandler)wrapper).CallMessage(message);
+                    ((LoopMessageHandler)ws.Target).CallMessage(message);
                 }
                 catch (Exception e)
                 {
@@ -351,13 +323,13 @@ public class LoopMessageHandler : Efl.Object, Efl.Eo.IWrapper
         private static bool message_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_message_handler_message_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LoopMessageHandler)wrapper).ClearMessage();
+                    _ret_var = ((LoopMessageHandler)ws.Target).ClearMessage();
                 }
                 catch (Exception e)
                 {
@@ -376,7 +348,7 @@ public class LoopMessageHandler : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_loop_message_handler_message_clear_delegate efl_loop_message_handler_message_clear_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e22020f..ec8f762 100644 (file)
@@ -8,7 +8,7 @@ using System.ComponentModel;
 namespace Efl {
 
 [Efl.LoopModel.NativeMethods]
-public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
+public abstract class LoopModel : Efl.LoopConsumer, Efl.IModel
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -41,7 +41,7 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LoopModel(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class LoopModelRealized : LoopModel
@@ -59,33 +59,6 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Event dispatched when properties list is available.</summary>
     public event EventHandler<Efl.IModelPropertiesChangedEvt_Args> PropertiesChangedEvt
     {
@@ -93,13 +66,12 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IModelPropertiesChangedEvt_Args args = new Efl.IModelPropertiesChangedEvt_Args();
+                        Efl.IModelPropertiesChangedEvt_Args args = new Efl.IModelPropertiesChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -156,13 +128,12 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IModelChildAddedEvt_Args args = new Efl.IModelChildAddedEvt_Args();
+                        Efl.IModelChildAddedEvt_Args args = new Efl.IModelChildAddedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -219,13 +190,12 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IModelChildRemovedEvt_Args args = new Efl.IModelChildRemovedEvt_Args();
+                        Efl.IModelChildRemovedEvt_Args args = new Efl.IModelChildRemovedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -282,10 +252,9 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -383,6 +352,8 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
     /// <see cref="Efl.IModel.GetProperty"/> can return an error with code EAGAIN when it doesn&apos;t have any meaningful value. To make life easier, this future will resolve when the error:EAGAIN disapears. Either into a failed future in case the error code changed to something else or a success with the value of the property whenever the property finally changes.
     /// 
     /// The future can also be canceled if the model itself gets destroyed.</summary>
+    /// <param name="property">Property name.</param>
+    /// <returns>Future to be resolved when the property changes to anything other than error:EAGAIN</returns>
     virtual public  Eina.Future GetPropertyReady(System.String property) {
                                  var _ret_var = Efl.IModelConcrete.NativeMethods.efl_model_property_ready_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),property);
         Eina.Error.RaiseIfUnhandledException();
@@ -423,34 +394,51 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
                                  Efl.IModelConcrete.NativeMethods.efl_model_child_del_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),child);
         Eina.Error.RaiseIfUnhandledException();
                          }
+    /// <summary>Async wrapper for <see cref="SetProperty" />.</summary>
+    /// <param name="property">Property name</param>
+    /// <param name="value">Property value</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> SetPropertyAsync(System.String property,Eina.Value value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = SetProperty( property, value);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
+    /// <summary>Async wrapper for <see cref="GetPropertyReady" />.</summary>
+    /// <param name="property">Property name.</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> GetPropertyReadyAsync(System.String property, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = GetPropertyReady( property);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
+    /// <summary>Async wrapper for <see cref="GetChildrenSlice" />.</summary>
+    /// <param name="start">Range begin - start from here.</param>
+    /// <param name="count">Range size. If count is 0, start is ignored.</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> GetChildrenSliceAsync(uint start,uint count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = GetChildrenSlice( start, count);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
     /// <summary>Get properties from model.
-/// properties_get is due to provide callers a way the fetch the current properties implemented/used by the model. The event <see cref="Efl.IModel.PropertiesChangedEvt"/> will be raised to notify listeners of any modifications in the properties.
-/// 
-/// See also <see cref="Efl.IModel.PropertiesChangedEvt"/>.</summary>
-/// <value>Array of current properties</value>
+    /// properties_get is due to provide callers a way the fetch the current properties implemented/used by the model. The event <see cref="Efl.IModel.PropertiesChangedEvt"/> will be raised to notify listeners of any modifications in the properties.
+    /// 
+    /// See also <see cref="Efl.IModel.PropertiesChangedEvt"/>.</summary>
+    /// <value>Array of current properties</value>
     public Eina.Iterator<System.String> Properties {
         get { return GetProperties(); }
     }
     /// <summary>Get children count.
-/// When efl_model_load is completed <see cref="Efl.IModel.GetChildrenCount"/> can be used to get the number of children. <see cref="Efl.IModel.GetChildrenCount"/> can also be used before calling <see cref="Efl.IModel.GetChildrenSlice"/> so a valid range is known. Event <see cref="Efl.IModel.ChildrenCountChangedEvt"/> is emitted when count is finished.
-/// 
-/// See also <see cref="Efl.IModel.GetChildrenSlice"/>.</summary>
-/// <value>Current known children count</value>
+    /// When efl_model_load is completed <see cref="Efl.IModel.GetChildrenCount"/> can be used to get the number of children. <see cref="Efl.IModel.GetChildrenCount"/> can also be used before calling <see cref="Efl.IModel.GetChildrenSlice"/> so a valid range is known. Event <see cref="Efl.IModel.ChildrenCountChangedEvt"/> is emitted when count is finished.
+    /// 
+    /// See also <see cref="Efl.IModel.GetChildrenSlice"/>.</summary>
+    /// <value>Current known children count</value>
     public uint ChildrenCount {
         get { return GetChildrenCount(); }
     }
@@ -570,7 +558,7 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
             return Efl.LoopModel.efl_loop_model_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_loop_model_volatile_make_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -583,13 +571,13 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         private static void volatile_make(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_model_volatile_make was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((LoopModel)wrapper).VolatileMake();
+                    ((LoopModel)ws.Target).VolatileMake();
                 }
                 catch (Exception e)
                 {
@@ -618,13 +606,13 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         private static System.IntPtr properties_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_model_properties_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<System.String> _ret_var = default(Eina.Iterator<System.String>);
                 try
                 {
-                    _ret_var = ((LoopModel)wrapper).GetProperties();
+                    _ret_var = ((LoopModel)ws.Target).GetProperties();
                 }
                 catch (Exception e)
                 {
@@ -654,13 +642,13 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         private static Eina.Value property_get(System.IntPtr obj, System.IntPtr pd, System.String property)
         {
             Eina.Log.Debug("function efl_model_property_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Value _ret_var = default(Eina.Value);
                 try
                 {
-                    _ret_var = ((LoopModel)wrapper).GetProperty(property);
+                    _ret_var = ((LoopModel)ws.Target).GetProperty(property);
                 }
                 catch (Exception e)
                 {
@@ -690,13 +678,13 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         private static  Eina.Future property_set(System.IntPtr obj, System.IntPtr pd, System.String property, Eina.Value value)
         {
             Eina.Log.Debug("function efl_model_property_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((LoopModel)wrapper).SetProperty(property, value);
+                    _ret_var = ((LoopModel)ws.Target).SetProperty(property, value);
                 }
                 catch (Exception e)
                 {
@@ -726,13 +714,13 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         private static uint children_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_model_children_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((LoopModel)wrapper).GetChildrenCount();
+                    _ret_var = ((LoopModel)ws.Target).GetChildrenCount();
                 }
                 catch (Exception e)
                 {
@@ -762,13 +750,13 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         private static  Eina.Future property_ready_get(System.IntPtr obj, System.IntPtr pd, System.String property)
         {
             Eina.Log.Debug("function efl_model_property_ready_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                      Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((LoopModel)wrapper).GetPropertyReady(property);
+                    _ret_var = ((LoopModel)ws.Target).GetPropertyReady(property);
                 }
                 catch (Exception e)
                 {
@@ -798,13 +786,13 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         private static  Eina.Future children_slice_get(System.IntPtr obj, System.IntPtr pd, uint start, uint count)
         {
             Eina.Log.Debug("function efl_model_children_slice_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((LoopModel)wrapper).GetChildrenSlice(start, count);
+                    _ret_var = ((LoopModel)ws.Target).GetChildrenSlice(start, count);
                 }
                 catch (Exception e)
                 {
@@ -834,13 +822,13 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         private static Efl.Object child_add(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_model_child_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((LoopModel)wrapper).AddChild();
+                    _ret_var = ((LoopModel)ws.Target).AddChild();
                 }
                 catch (Exception e)
                 {
@@ -870,13 +858,13 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
         private static void child_del(System.IntPtr obj, System.IntPtr pd, Efl.Object child)
         {
             Eina.Log.Debug("function efl_model_child_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopModel)wrapper).DelChild(child);
+                    ((LoopModel)ws.Target).DelChild(child);
                 }
                 catch (Exception e)
                 {
@@ -894,7 +882,7 @@ public abstract class LoopModel : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.IModel
 
         private static efl_model_child_del_delegate efl_model_child_del_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index deed173..4b12737 100644 (file)
@@ -13,7 +13,7 @@ namespace Efl {
 /// The <see cref="Efl.Object.FreezeEvent"/> and <see cref="Efl.Object.ThawEvent"/> calls are used to pause and unpause the timer.
 /// (Since EFL 1.22)</summary>
 [Efl.LoopTimer.NativeMethods]
-public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
+public class LoopTimer : Efl.LoopConsumer
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -52,7 +52,7 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LoopTimer(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LoopTimer"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -63,33 +63,6 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Event triggered when the specified time as passed.
     /// (Since EFL 1.22)</summary>
     public event EventHandler TimerTickEvt
@@ -98,10 +71,9 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -188,15 +160,15 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Interval the timer ticks on.
-/// (Since EFL 1.22)</summary>
-/// <value>The new interval in seconds</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The new interval in seconds</value>
     public double TimerInterval {
         get { return GetTimerInterval(); }
         set { SetTimerInterval(value); }
     }
     /// <summary>Pending time regarding a timer.
-/// (Since EFL 1.22)</summary>
-/// <value>Pending time</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>Pending time</value>
     public double TimePending {
         get { return GetTimePending(); }
     }
@@ -286,7 +258,7 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
             return Efl.LoopTimer.efl_loop_timer_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_loop_timer_interval_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -299,13 +271,13 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static double timer_interval_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_timer_interval_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((LoopTimer)wrapper).GetTimerInterval();
+                    _ret_var = ((LoopTimer)ws.Target).GetTimerInterval();
                 }
                 catch (Exception e)
                 {
@@ -335,13 +307,13 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static void timer_interval_set(System.IntPtr obj, System.IntPtr pd, double kw_in)
         {
             Eina.Log.Debug("function efl_loop_timer_interval_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopTimer)wrapper).SetTimerInterval(kw_in);
+                    ((LoopTimer)ws.Target).SetTimerInterval(kw_in);
                 }
                 catch (Exception e)
                 {
@@ -370,13 +342,13 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static double time_pending_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_timer_time_pending_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((LoopTimer)wrapper).GetTimePending();
+                    _ret_var = ((LoopTimer)ws.Target).GetTimePending();
                 }
                 catch (Exception e)
                 {
@@ -406,13 +378,13 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static void timer_reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_timer_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((LoopTimer)wrapper).ResetTimer();
+                    ((LoopTimer)ws.Target).ResetTimer();
                 }
                 catch (Exception e)
                 {
@@ -441,13 +413,13 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static void timer_loop_reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_loop_timer_loop_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((LoopTimer)wrapper).ResetTimerLoop();
+                    ((LoopTimer)ws.Target).ResetTimerLoop();
                 }
                 catch (Exception e)
                 {
@@ -476,13 +448,13 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static void timer_delay(System.IntPtr obj, System.IntPtr pd, double add)
         {
             Eina.Log.Debug("function efl_loop_timer_delay was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LoopTimer)wrapper).TimerDelay(add);
+                    ((LoopTimer)ws.Target).TimerDelay(add);
                 }
                 catch (Exception e)
                 {
@@ -500,7 +472,7 @@ public class LoopTimer : Efl.LoopConsumer, Efl.Eo.IWrapper
 
         private static efl_loop_timer_delay_delegate efl_loop_timer_delay_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 9d493d2..016598b 100644 (file)
@@ -45,6 +45,8 @@ uint GetChildrenCount();
 /// <see cref="Efl.IModel.GetProperty"/> can return an error with code EAGAIN when it doesn&apos;t have any meaningful value. To make life easier, this future will resolve when the error:EAGAIN disapears. Either into a failed future in case the error code changed to something else or a success with the value of the property whenever the property finally changes.
 /// 
 /// The future can also be canceled if the model itself gets destroyed.</summary>
+/// <param name="property">Property name.</param>
+/// <returns>Future to be resolved when the property changes to anything other than error:EAGAIN</returns>
  Eina.Future GetPropertyReady(System.String property);
     /// <summary>Get children slice OR full range.
 /// <see cref="Efl.IModel.GetChildrenSlice"/> behaves in two different ways, it may provide the slice if <c>count</c> is non-zero OR full range otherwise.
@@ -70,9 +72,26 @@ Efl.Object AddChild();
 /// Remove a child of a internal keeping. When the child is effectively removed the event <see cref="Efl.IModel.ChildRemovedEvt"/> is then raised to give a chance for listeners to perform any cleanup and/or update references.</summary>
 /// <param name="child">Child to be removed</param>
 void DelChild(Efl.Object child);
-                System.Threading.Tasks.Task<Eina.Value> SetPropertyAsync(System.String property,Eina.Value value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken));
-            System.Threading.Tasks.Task<Eina.Value> GetPropertyReadyAsync(System.String property, System.Threading.CancellationToken token = default(System.Threading.CancellationToken));
-        System.Threading.Tasks.Task<Eina.Value> GetChildrenSliceAsync(uint start,uint count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken));
+                /// <summary>Async wrapper for <see cref="SetProperty" />.</summary>
+    /// <param name="property">Property name</param>
+    /// <param name="value">Property value</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
+    System.Threading.Tasks.Task<Eina.Value> SetPropertyAsync(System.String property,Eina.Value value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken));
+
+            /// <summary>Async wrapper for <see cref="GetPropertyReady" />.</summary>
+    /// <param name="property">Property name.</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
+    System.Threading.Tasks.Task<Eina.Value> GetPropertyReadyAsync(System.String property, System.Threading.CancellationToken token = default(System.Threading.CancellationToken));
+
+        /// <summary>Async wrapper for <see cref="GetChildrenSlice" />.</summary>
+    /// <param name="start">Range begin - start from here.</param>
+    /// <param name="count">Range size. If count is 0, start is ignored.</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
+    System.Threading.Tasks.Task<Eina.Value> GetChildrenSliceAsync(uint start,uint count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken));
+
             /// <summary>Event dispatched when properties list is available.</summary>
     event EventHandler<Efl.IModelPropertiesChangedEvt_Args> PropertiesChangedEvt;
     /// <summary>Event dispatched when new child is added.</summary>
@@ -82,18 +101,18 @@ void DelChild(Efl.Object child);
     /// <summary>Event dispatched when children count is finished.</summary>
     event EventHandler ChildrenCountChangedEvt;
     /// <summary>Get properties from model.
-/// properties_get is due to provide callers a way the fetch the current properties implemented/used by the model. The event <see cref="Efl.IModel.PropertiesChangedEvt"/> will be raised to notify listeners of any modifications in the properties.
-/// 
-/// See also <see cref="Efl.IModel.PropertiesChangedEvt"/>.</summary>
-/// <value>Array of current properties</value>
+    /// properties_get is due to provide callers a way the fetch the current properties implemented/used by the model. The event <see cref="Efl.IModel.PropertiesChangedEvt"/> will be raised to notify listeners of any modifications in the properties.
+    /// 
+    /// See also <see cref="Efl.IModel.PropertiesChangedEvt"/>.</summary>
+    /// <value>Array of current properties</value>
     Eina.Iterator<System.String> Properties {
         get ;
     }
     /// <summary>Get children count.
-/// When efl_model_load is completed <see cref="Efl.IModel.GetChildrenCount"/> can be used to get the number of children. <see cref="Efl.IModel.GetChildrenCount"/> can also be used before calling <see cref="Efl.IModel.GetChildrenSlice"/> so a valid range is known. Event <see cref="Efl.IModel.ChildrenCountChangedEvt"/> is emitted when count is finished.
-/// 
-/// See also <see cref="Efl.IModel.GetChildrenSlice"/>.</summary>
-/// <value>Current known children count</value>
+    /// When efl_model_load is completed <see cref="Efl.IModel.GetChildrenCount"/> can be used to get the number of children. <see cref="Efl.IModel.GetChildrenCount"/> can also be used before calling <see cref="Efl.IModel.GetChildrenSlice"/> so a valid range is known. Event <see cref="Efl.IModel.ChildrenCountChangedEvt"/> is emitted when count is finished.
+    /// 
+    /// See also <see cref="Efl.IModel.GetChildrenSlice"/>.</summary>
+    /// <value>Current known children count</value>
     uint ChildrenCount {
         get ;
     }
@@ -114,13 +133,13 @@ public class IModelChildRemovedEvt_Args : EventArgs {
     public Efl.ModelChildrenEvent arg { get; set; }
 }
 /// <summary>Efl model interface</summary>
-sealed public class IModelConcrete : 
-
-IModel
+sealed public class IModelConcrete :
+    Efl.Eo.EoWrapper
+    , IModel
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -135,155 +154,12 @@ IModel
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_model_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IModel"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IModelConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IModelConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IModelConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Event dispatched when properties list is available.</summary>
@@ -293,13 +169,12 @@ IModel
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IModelPropertiesChangedEvt_Args args = new Efl.IModelPropertiesChangedEvt_Args();
+                        Efl.IModelPropertiesChangedEvt_Args args = new Efl.IModelPropertiesChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -356,13 +231,12 @@ IModel
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IModelChildAddedEvt_Args args = new Efl.IModelChildAddedEvt_Args();
+                        Efl.IModelChildAddedEvt_Args args = new Efl.IModelChildAddedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -419,13 +293,12 @@ IModel
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IModelChildRemovedEvt_Args args = new Efl.IModelChildRemovedEvt_Args();
+                        Efl.IModelChildRemovedEvt_Args args = new Efl.IModelChildRemovedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -482,10 +355,9 @@ IModel
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -577,6 +449,8 @@ IModel
     /// <see cref="Efl.IModel.GetProperty"/> can return an error with code EAGAIN when it doesn&apos;t have any meaningful value. To make life easier, this future will resolve when the error:EAGAIN disapears. Either into a failed future in case the error code changed to something else or a success with the value of the property whenever the property finally changes.
     /// 
     /// The future can also be canceled if the model itself gets destroyed.</summary>
+    /// <param name="property">Property name.</param>
+    /// <returns>Future to be resolved when the property changes to anything other than error:EAGAIN</returns>
     public  Eina.Future GetPropertyReady(System.String property) {
                                  var _ret_var = Efl.IModelConcrete.NativeMethods.efl_model_property_ready_get_ptr.Value.Delegate(this.NativeHandle,property);
         Eina.Error.RaiseIfUnhandledException();
@@ -617,34 +491,51 @@ IModel
                                  Efl.IModelConcrete.NativeMethods.efl_model_child_del_ptr.Value.Delegate(this.NativeHandle,child);
         Eina.Error.RaiseIfUnhandledException();
                          }
+    /// <summary>Async wrapper for <see cref="SetProperty" />.</summary>
+    /// <param name="property">Property name</param>
+    /// <param name="value">Property value</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> SetPropertyAsync(System.String property,Eina.Value value, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = SetProperty( property, value);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
+    /// <summary>Async wrapper for <see cref="GetPropertyReady" />.</summary>
+    /// <param name="property">Property name.</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> GetPropertyReadyAsync(System.String property, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = GetPropertyReady( property);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
+    /// <summary>Async wrapper for <see cref="GetChildrenSlice" />.</summary>
+    /// <param name="start">Range begin - start from here.</param>
+    /// <param name="count">Range size. If count is 0, start is ignored.</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> GetChildrenSliceAsync(uint start,uint count, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = GetChildrenSlice( start, count);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
     /// <summary>Get properties from model.
-/// properties_get is due to provide callers a way the fetch the current properties implemented/used by the model. The event <see cref="Efl.IModel.PropertiesChangedEvt"/> will be raised to notify listeners of any modifications in the properties.
-/// 
-/// See also <see cref="Efl.IModel.PropertiesChangedEvt"/>.</summary>
-/// <value>Array of current properties</value>
+    /// properties_get is due to provide callers a way the fetch the current properties implemented/used by the model. The event <see cref="Efl.IModel.PropertiesChangedEvt"/> will be raised to notify listeners of any modifications in the properties.
+    /// 
+    /// See also <see cref="Efl.IModel.PropertiesChangedEvt"/>.</summary>
+    /// <value>Array of current properties</value>
     public Eina.Iterator<System.String> Properties {
         get { return GetProperties(); }
     }
     /// <summary>Get children count.
-/// When efl_model_load is completed <see cref="Efl.IModel.GetChildrenCount"/> can be used to get the number of children. <see cref="Efl.IModel.GetChildrenCount"/> can also be used before calling <see cref="Efl.IModel.GetChildrenSlice"/> so a valid range is known. Event <see cref="Efl.IModel.ChildrenCountChangedEvt"/> is emitted when count is finished.
-/// 
-/// See also <see cref="Efl.IModel.GetChildrenSlice"/>.</summary>
-/// <value>Current known children count</value>
+    /// When efl_model_load is completed <see cref="Efl.IModel.GetChildrenCount"/> can be used to get the number of children. <see cref="Efl.IModel.GetChildrenCount"/> can also be used before calling <see cref="Efl.IModel.GetChildrenSlice"/> so a valid range is known. Event <see cref="Efl.IModel.ChildrenCountChangedEvt"/> is emitted when count is finished.
+    /// 
+    /// See also <see cref="Efl.IModel.GetChildrenSlice"/>.</summary>
+    /// <value>Current known children count</value>
     public uint ChildrenCount {
         get { return GetChildrenCount(); }
     }
@@ -753,7 +644,7 @@ IModel
             return Efl.IModelConcrete.efl_model_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_model_properties_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -766,13 +657,13 @@ IModel
         private static System.IntPtr properties_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_model_properties_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<System.String> _ret_var = default(Eina.Iterator<System.String>);
                 try
                 {
-                    _ret_var = ((IModel)wrapper).GetProperties();
+                    _ret_var = ((IModel)ws.Target).GetProperties();
                 }
                 catch (Exception e)
                 {
@@ -802,13 +693,13 @@ IModel
         private static Eina.Value property_get(System.IntPtr obj, System.IntPtr pd, System.String property)
         {
             Eina.Log.Debug("function efl_model_property_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Value _ret_var = default(Eina.Value);
                 try
                 {
-                    _ret_var = ((IModel)wrapper).GetProperty(property);
+                    _ret_var = ((IModel)ws.Target).GetProperty(property);
                 }
                 catch (Exception e)
                 {
@@ -838,13 +729,13 @@ IModel
         private static  Eina.Future property_set(System.IntPtr obj, System.IntPtr pd, System.String property, Eina.Value value)
         {
             Eina.Log.Debug("function efl_model_property_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((IModel)wrapper).SetProperty(property, value);
+                    _ret_var = ((IModel)ws.Target).SetProperty(property, value);
                 }
                 catch (Exception e)
                 {
@@ -874,13 +765,13 @@ IModel
         private static uint children_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_model_children_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((IModel)wrapper).GetChildrenCount();
+                    _ret_var = ((IModel)ws.Target).GetChildrenCount();
                 }
                 catch (Exception e)
                 {
@@ -910,13 +801,13 @@ IModel
         private static  Eina.Future property_ready_get(System.IntPtr obj, System.IntPtr pd, System.String property)
         {
             Eina.Log.Debug("function efl_model_property_ready_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                      Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((IModel)wrapper).GetPropertyReady(property);
+                    _ret_var = ((IModel)ws.Target).GetPropertyReady(property);
                 }
                 catch (Exception e)
                 {
@@ -946,13 +837,13 @@ IModel
         private static  Eina.Future children_slice_get(System.IntPtr obj, System.IntPtr pd, uint start, uint count)
         {
             Eina.Log.Debug("function efl_model_children_slice_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((IModel)wrapper).GetChildrenSlice(start, count);
+                    _ret_var = ((IModel)ws.Target).GetChildrenSlice(start, count);
                 }
                 catch (Exception e)
                 {
@@ -982,13 +873,13 @@ IModel
         private static Efl.Object child_add(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_model_child_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((IModel)wrapper).AddChild();
+                    _ret_var = ((IModel)ws.Target).AddChild();
                 }
                 catch (Exception e)
                 {
@@ -1018,13 +909,13 @@ IModel
         private static void child_del(System.IntPtr obj, System.IntPtr pd, Efl.Object child)
         {
             Eina.Log.Debug("function efl_model_child_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IModel)wrapper).DelChild(child);
+                    ((IModel)ws.Target).DelChild(child);
                 }
                 catch (Exception e)
                 {
@@ -1042,7 +933,7 @@ IModel
 
         private static efl_model_child_del_delegate efl_model_child_del_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -1067,12 +958,16 @@ public struct ModelPropertyEvent
         this.Invalidated_properties = Invalidated_properties;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ModelPropertyEvent(IntPtr ptr)
     {
         var tmp = (ModelPropertyEvent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ModelPropertyEvent.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ModelPropertyEvent.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1101,6 +996,8 @@ public struct ModelPropertyEvent
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -1124,12 +1021,16 @@ public struct ModelChildrenEvent
         this.Child = Child;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ModelChildrenEvent(IntPtr ptr)
     {
         var tmp = (ModelChildrenEvent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ModelChildrenEvent.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ModelChildrenEvent.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1159,6 +1060,8 @@ public struct ModelChildrenEvent
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 19844b9..504a54b 100644 (file)
@@ -7,17 +7,29 @@ using System.Threading;
 using System.ComponentModel;
 namespace Efl {
 
+/// <summary>Callback priority. Range is -32k - 32k. The lower the number, the higher the priority.
+/// This is used to insert an event handler relative to the existing stack of sorted event handlers according to that priority. All event handlers always have a priority. If not specified <see cref="Efl.Constants.CallbackPriorityDefault"/> is to be assumed.
+/// 
+/// See <see cref="Efl.Constants.CallbackPriorityBefore"/> <see cref="Efl.Constants.CallbackPriorityDefault"/>  <see cref="Efl.Constants.CallbackPriorityAfter"/>
+/// (Since EFL 1.22)</summary>
 public struct CallbackPriority
 {
     private short payload;
-    public static implicit operator CallbackPriority(short x)
+
+    /// <summary>Converts an instance of short to this struct.</summary>
+    /// <param name="value">The value to be converted.</param>
+    /// <returns>A struct with the given value.</returns>
+    public static implicit operator CallbackPriority(short value)
     {
-        return new CallbackPriority{payload=x};
+        return new CallbackPriority{payload=value};
     }
 
-    public static implicit operator short(CallbackPriority x)
+    /// <summary>Converts an instance of this struct to short.</summary>
+    /// <param name="value">The value to be converted packed in this struct.</param>
+    /// <returns>The actual value the alias is wrapping.</returns>
+    public static implicit operator short(CallbackPriority value)
     {
-        return x.payload;
+        return value.payload;
     }
 
 }
@@ -28,6 +40,7 @@ namespace Efl {
 
 public partial class Constants
 {
+    /// <summary>Slightly more prioritized than default.</summary>
     public static readonly Efl.CallbackPriority CallbackPriorityBefore = -100;
 }
 }
@@ -36,6 +49,7 @@ namespace Efl {
 
 public partial class Constants
 {
+    /// <summary>Default priority.</summary>
     public static readonly Efl.CallbackPriority CallbackPriorityDefault = 0;
 }
 }
@@ -44,6 +58,7 @@ namespace Efl {
 
 public partial class Constants
 {
+    /// <summary>Slightly less prioritized than default.</summary>
     public static readonly Efl.CallbackPriority CallbackPriorityAfter = 100;
 }
 }
@@ -56,10 +71,10 @@ namespace Efl {
 /// Life Cycle Objects are created with efl_add() and mostly disposed of with efl_del(). As an optimization, efl_add() accepts a list of initialization functions which the programmer can use to further customize the object before it is fully constructed. Also, objects can have a parent which will keep them alive as long as the parent is alive, so the programmer does not need to keep track of references. (See the <see cref="Efl.Object.Parent"/> property for details). Due to the above characteristics, EFL objects undergo the following phases during their Life Cycle: - Construction: The Efl.Object.constructor method is called. Afterwards, any user-supplied initialization methods are called. - Finalization: The <see cref="Efl.Object.FinalizeAdd"/> method is called and <see cref="Efl.Object.GetFinalized"/> is set to <c>true</c> when it returns. Object is usable at this point. - Invalidation: The object has lost its parent. The <see cref="Efl.Object.Invalidate"/> method is called so all the object&apos;s relationships can be terminated. <see cref="Efl.Object.GetInvalidated"/> is set to <c>true</c>. - Destruction: The object has no parent and it can be destroyed. The <see cref="Efl.Object.Destructor"/> method is called, use it to return any resources the object might have gathered during its life.
 /// (Since EFL 1.22)</summary>
 [Efl.Object.NativeMethods]
-public abstract class Object :  Efl.Eo.IWrapper, IDisposable
+public abstract class Object : Efl.Eo.EoWrapper
 {
     ///<summary>Pointer to the native class description.</summary>
-    public virtual System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -74,22 +89,12 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         }
     }
 
-    protected Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    protected readonly object eventLock = new object();
-    protected bool inherited;
-    protected  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Eo)] internal static extern System.IntPtr
         efl_object_class_get();
     /// <summary>Initializes a new instance of the <see cref="Object"/> class.</summary>
     /// <param name="parent">Parent instance.</param>
     public Object(Efl.Object parent= null
-            ) : this(efl_object_class_get(), typeof(Object), parent)
+            ) : base(efl_object_class_get(), typeof(Object), parent)
     {
         FinishInstantiation();
     }
@@ -97,9 +102,8 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
     /// <summary>Initializes a new instance of the <see cref="Object"/> class.
     /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
     /// <param name="raw">The native pointer to be wrapped.</param>
-    protected Object(System.IntPtr raw)
+    protected Object(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
     }
 
     [Efl.Eo.PrivateNativeClass]
@@ -110,181 +114,131 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         }
     }
     /// <summary>Initializes a new instance of the <see cref="Object"/> class.
-    /// Internal usage: Constructor to actually call the native library constructors. C# subclasses
-    /// must use the public constructor only.</summary>
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
     /// <param name="baseKlass">The pointer to the base native Eo class.</param>
     /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
     /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected Object(IntPtr baseKlass, System.Type managedType, Efl.Object parent)
+    protected Object(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
     {
-        inherited = ((object)this).GetType() != managedType;
-        IntPtr actual_klass = baseKlass;
-        if (inherited)
-        {
-            actual_klass = Efl.Eo.ClassRegister.GetInheritKlassOrRegister(baseKlass, ((object)this).GetType());
-        }
-
-        handle = Efl.Eo.Globals.instantiate_start(actual_klass, parent);
-        if (inherited)
-        {
-            Efl.Eo.Globals.PrivateDataSet(this);
-        }
     }
 
-    /// <summary>Finishes instantiating this object.
-    /// Internal usage by generated code.</summary>
-    protected void FinishInstantiation()
-    {
-        handle = Efl.Eo.Globals.instantiate_end(handle);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Destructor.</summary>
-    ~Object()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    protected virtual void Dispose(bool disposing)
+    /// <summary>Object is being deleted. See <see cref="Efl.Object.Destructor"/>.
+    /// (Since EFL 1.22)</summary>
+    public event EventHandler DelEvt
     {
-        if (handle != System.IntPtr.Zero)
+        add
         {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
+            lock (eventLock)
             {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        EventArgs args = EventArgs.Empty;
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
 
-                Monitor.Exit(Efl.All.InitLock);
+                string key = "_EFL_EVENT_DEL";
+                AddNativeEventHandler(efl.Libs.Eo, key, callerCb, value);
             }
         }
 
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
+        remove
         {
-            return false;
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_DEL";
+                RemoveNativeEventHandler(efl.Libs.Eo, key, value);
+            }
         }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
     }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    protected void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
+    ///<summary>Method to raise event DelEvt.</summary>
+    public void OnDelEvt(EventArgs e)
     {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
+        var key = "_EFL_EVENT_DEL";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Eo, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
+            return;
         }
 
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
+    }
+    /// <summary>Object is being invalidated and losing its parent. See <see cref="Efl.Object.Invalidate"/>.
+    /// (Since EFL 1.22)</summary>
+    public event EventHandler InvalidateEvt
+    {
+        add
         {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        EventArgs args = EventArgs.Empty;
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_EVENT_INVALIDATE";
+                AddNativeEventHandler(efl.Libs.Eo, key, callerCb, value);
+            }
         }
 
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
+        remove
         {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
+            lock (eventLock)
+            {
+                string key = "_EFL_EVENT_INVALIDATE";
+                RemoveNativeEventHandler(efl.Libs.Eo, key, value);
+            }
         }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
     }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    protected void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
+    ///<summary>Method to raise event InvalidateEvt.</summary>
+    public void OnInvalidateEvt(EventArgs e)
     {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
+        var key = "_EFL_EVENT_INVALIDATE";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Eo, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-
-    /// <summary>Object is being deleted. See <see cref="Efl.Object.Destructor"/>.
+    /// <summary>Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.
     /// (Since EFL 1.22)</summary>
-    public event EventHandler DelEvt
+    public event EventHandler NorefEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -300,7 +254,7 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
                     }
                 };
 
-                string key = "_EFL_EVENT_DEL";
+                string key = "_EFL_EVENT_NOREF";
                 AddNativeEventHandler(efl.Libs.Eo, key, callerCb, value);
             }
         }
@@ -309,15 +263,15 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         {
             lock (eventLock)
             {
-                string key = "_EFL_EVENT_DEL";
+                string key = "_EFL_EVENT_NOREF";
                 RemoveNativeEventHandler(efl.Libs.Eo, key, value);
             }
         }
     }
-    ///<summary>Method to raise event DelEvt.</summary>
-    public void OnDelEvt(EventArgs e)
+    ///<summary>Method to raise event NorefEvt.</summary>
+    public void OnNorefEvt(EventArgs e)
     {
-        var key = "_EFL_EVENT_DEL";
+        var key = "_EFL_EVENT_NOREF";
         IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Eo, key);
         if (desc == IntPtr.Zero)
         {
@@ -327,18 +281,17 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Object is being invalidated and losing its parent. See <see cref="Efl.Object.Invalidate"/>.
+    /// <summary>Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.
     /// (Since EFL 1.22)</summary>
-    public event EventHandler InvalidateEvt
+    public event EventHandler OwnershipUniqueEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -354,7 +307,7 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
                     }
                 };
 
-                string key = "_EFL_EVENT_INVALIDATE";
+                string key = "_EFL_EVENT_OWNERSHIP_UNIQUE";
                 AddNativeEventHandler(efl.Libs.Eo, key, callerCb, value);
             }
         }
@@ -363,15 +316,15 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         {
             lock (eventLock)
             {
-                string key = "_EFL_EVENT_INVALIDATE";
+                string key = "_EFL_EVENT_OWNERSHIP_UNIQUE";
                 RemoveNativeEventHandler(efl.Libs.Eo, key, value);
             }
         }
     }
-    ///<summary>Method to raise event InvalidateEvt.</summary>
-    public void OnInvalidateEvt(EventArgs e)
+    ///<summary>Method to raise event OwnershipUniqueEvt.</summary>
+    public void OnOwnershipUniqueEvt(EventArgs e)
     {
-        var key = "_EFL_EVENT_INVALIDATE";
+        var key = "_EFL_EVENT_OWNERSHIP_UNIQUE";
         IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Eo, key);
         if (desc == IntPtr.Zero)
         {
@@ -381,18 +334,17 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.
+    /// <summary>Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.
     /// (Since EFL 1.22)</summary>
-    public event EventHandler NorefEvt
+    public event EventHandler OwnershipSharedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -408,7 +360,7 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
                     }
                 };
 
-                string key = "_EFL_EVENT_NOREF";
+                string key = "_EFL_EVENT_OWNERSHIP_SHARED";
                 AddNativeEventHandler(efl.Libs.Eo, key, callerCb, value);
             }
         }
@@ -417,15 +369,15 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         {
             lock (eventLock)
             {
-                string key = "_EFL_EVENT_NOREF";
+                string key = "_EFL_EVENT_OWNERSHIP_SHARED";
                 RemoveNativeEventHandler(efl.Libs.Eo, key, value);
             }
         }
     }
-    ///<summary>Method to raise event NorefEvt.</summary>
-    public void OnNorefEvt(EventArgs e)
+    ///<summary>Method to raise event OwnershipSharedEvt.</summary>
+    public void OnOwnershipSharedEvt(EventArgs e)
     {
-        var key = "_EFL_EVENT_NOREF";
+        var key = "_EFL_EVENT_OWNERSHIP_SHARED";
         IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Eo, key);
         if (desc == IntPtr.Zero)
         {
@@ -443,10 +395,9 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -758,73 +709,73 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         return _ret_var;
  }
     /// <summary>The parent of an object.
-/// Parents keep references to their children and will release these references when destroyed. In this way, objects can be assigned to a parent upon creation, tying their life cycle so the programmer does not need to worry about destroying the child object. In order to destroy an object before its parent, set the parent to <c>NULL</c> and use efl_unref(), or use efl_del() directly.
-/// 
-/// The Eo parent is conceptually user set. That means that a parent should not be changed behind the scenes in an unexpected way.
-/// 
-/// For example: If you have a widget which can swallow objects into an internal box, the parent of the swallowed objects should be the widget, not the internal box. The user is not even aware of the existence of the internal box.
-/// (Since EFL 1.22)</summary>
-/// <value>The new parent.</value>
+    /// Parents keep references to their children and will release these references when destroyed. In this way, objects can be assigned to a parent upon creation, tying their life cycle so the programmer does not need to worry about destroying the child object. In order to destroy an object before its parent, set the parent to <c>NULL</c> and use efl_unref(), or use efl_del() directly.
+    /// 
+    /// The Eo parent is conceptually user set. That means that a parent should not be changed behind the scenes in an unexpected way.
+    /// 
+    /// For example: If you have a widget which can swallow objects into an internal box, the parent of the swallowed objects should be the widget, not the internal box. The user is not even aware of the existence of the internal box.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The new parent.</value>
     public Efl.Object Parent {
         get { return GetParent(); }
         set { SetParent(value); }
     }
     /// <summary>The name of the object.
-/// Every EFL object can have a name. Names may not contain the following characters: / ? * [ ] !  : Using any of these in a name will result in undefined behavior later on. An empty string is considered the same as a <c>NULL</c> string or no string for the name.
-/// (Since EFL 1.22)</summary>
-/// <value>The name.</value>
+    /// Every EFL object can have a name. Names may not contain the following characters: / ? * [ ] !  : Using any of these in a name will result in undefined behavior later on. An empty string is considered the same as a <c>NULL</c> string or no string for the name.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The name.</value>
     public System.String Name {
         get { return GetName(); }
         set { SetName(value); }
     }
     /// <summary>A human readable comment for the object.
-/// Every EFL object can have a comment. This is intended for developers and debugging. An empty string is considered the same as a <c>NULL</c> string or no string for the comment.
-/// (Since EFL 1.22)</summary>
-/// <value>The comment.</value>
+    /// Every EFL object can have a comment. This is intended for developers and debugging. An empty string is considered the same as a <c>NULL</c> string or no string for the comment.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The comment.</value>
     public System.String Comment {
         get { return GetComment(); }
         set { SetComment(value); }
     }
     /// <summary>Return the global count of freeze events.
-/// This is the amount of calls to <see cref="Efl.Object.FreezeEventGlobal"/> minus the amount of calls to <see cref="Efl.Object.ThawEventGlobal"/>. EFL will not emit any event while this count is &gt; 0 (Except events marked <c>hot</c>).
-/// (Since EFL 1.22)</summary>
-/// <value>The global event freeze count.</value>
+    /// This is the amount of calls to <see cref="Efl.Object.FreezeEventGlobal"/> minus the amount of calls to <see cref="Efl.Object.ThawEventGlobal"/>. EFL will not emit any event while this count is &gt; 0 (Except events marked <c>hot</c>).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The global event freeze count.</value>
     public static int EventGlobalFreezeCount {
         get { return GetEventGlobalFreezeCount(); }
     }
     /// <summary>Return the count of freeze events for this object.
-/// This is the amount of calls to <see cref="Efl.Object.FreezeEvent"/> minus the amount of calls to <see cref="Efl.Object.ThawEvent"/>. This object will not emit any event while this count is &gt; 0 (Except events marked <c>hot</c>).
-/// (Since EFL 1.22)</summary>
-/// <value>The event freeze count of this object.</value>
+    /// This is the amount of calls to <see cref="Efl.Object.FreezeEvent"/> minus the amount of calls to <see cref="Efl.Object.ThawEvent"/>. This object will not emit any event while this count is &gt; 0 (Except events marked <c>hot</c>).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The event freeze count of this object.</value>
     public int EventFreezeCount {
         get { return GetEventFreezeCount(); }
     }
     /// <summary><c>true</c> if the object has been finalized, i.e. construction has finished. See the Life Cycle section in this class&apos; description.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is finalized, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is finalized, <c>false</c> otherwise.</value>
     public bool Finalized {
         get { return GetFinalized(); }
     }
     /// <summary><c>true</c> if the object has been invalidated, i.e. it has no parent. See the Life Cycle section in this class&apos; description.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is invalidated, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is invalidated, <c>false</c> otherwise.</value>
     public bool Invalidated {
         get { return GetInvalidated(); }
     }
     /// <summary><c>true</c> if the object has started the invalidation phase, but has not finished it yet. Note: This might become <c>true</c> before <see cref="Efl.Object.Invalidate"/> is called. See the Life Cycle section in this class&apos; description.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is invalidating, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is invalidating, <c>false</c> otherwise.</value>
     public bool Invalidating {
         get { return GetInvalidating(); }
     }
     /// <summary>Allow an object to be deleted by unref even if it has a parent.
-/// This simply hides the error message warning that an object being destroyed still has a parent. This property is false by default.
-/// 
-/// In a normal object use case, when ownership of an object is given to a caller, said ownership should be released with efl_unref(). If the object has a parent, this will print error messages, as efl_unref() is stealing the ref from the parent.
-/// 
-/// Warning: Use this function very carefully, unless you&apos;re absolutely sure of what you are doing.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether to allow efl_unref() to zero even if <see cref="Efl.Object.Parent"/> is not <c>null</c>.</value>
+    /// This simply hides the error message warning that an object being destroyed still has a parent. This property is false by default.
+    /// 
+    /// In a normal object use case, when ownership of an object is given to a caller, said ownership should be released with efl_unref(). If the object has a parent, this will print error messages, as efl_unref() is stealing the ref from the parent.
+    /// 
+    /// Warning: Use this function very carefully, unless you&apos;re absolutely sure of what you are doing.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether to allow efl_unref() to zero even if <see cref="Efl.Object.Parent"/> is not <c>null</c>.</value>
     public bool AllowParentUnref {
         get { return GetAllowParentUnref(); }
         set { SetAllowParentUnref(value); }
@@ -1114,7 +1065,7 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
             return Efl.Object.efl_object_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Object efl_parent_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1127,13 +1078,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static Efl.Object parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetParent();
+                    _ret_var = ((Object)ws.Target).GetParent();
                 }
                 catch (Exception e)
                 {
@@ -1163,13 +1114,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void parent_set(System.IntPtr obj, System.IntPtr pd, Efl.Object parent)
         {
             Eina.Log.Debug("function efl_parent_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetParent(parent);
+                    ((Object)ws.Target).SetParent(parent);
                 }
                 catch (Exception e)
                 {
@@ -1198,13 +1149,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static System.String name_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetName();
+                    _ret_var = ((Object)ws.Target).GetName();
                 }
                 catch (Exception e)
                 {
@@ -1234,13 +1185,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void name_set(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_name_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetName(name);
+                    ((Object)ws.Target).SetName(name);
                 }
                 catch (Exception e)
                 {
@@ -1269,13 +1220,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static System.String comment_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_comment_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetComment();
+                    _ret_var = ((Object)ws.Target).GetComment();
                 }
                 catch (Exception e)
                 {
@@ -1305,13 +1256,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void comment_set(System.IntPtr obj, System.IntPtr pd, System.String comment)
         {
             Eina.Log.Debug("function efl_comment_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetComment(comment);
+                    ((Object)ws.Target).SetComment(comment);
                 }
                 catch (Exception e)
                 {
@@ -1340,8 +1291,8 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static int event_global_freeze_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_event_global_freeze_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
@@ -1374,13 +1325,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static int event_freeze_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_event_freeze_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetEventFreezeCount();
+                    _ret_var = ((Object)ws.Target).GetEventFreezeCount();
                 }
                 catch (Exception e)
                 {
@@ -1410,13 +1361,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static bool finalized_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_finalized_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetFinalized();
+                    _ret_var = ((Object)ws.Target).GetFinalized();
                 }
                 catch (Exception e)
                 {
@@ -1446,13 +1397,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static bool invalidated_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_invalidated_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetInvalidated();
+                    _ret_var = ((Object)ws.Target).GetInvalidated();
                 }
                 catch (Exception e)
                 {
@@ -1482,13 +1433,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static bool invalidating_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_invalidating_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetInvalidating();
+                    _ret_var = ((Object)ws.Target).GetInvalidating();
                 }
                 catch (Exception e)
                 {
@@ -1518,13 +1469,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static bool allow_parent_unref_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_allow_parent_unref_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).GetAllowParentUnref();
+                    _ret_var = ((Object)ws.Target).GetAllowParentUnref();
                 }
                 catch (Exception e)
                 {
@@ -1554,13 +1505,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void allow_parent_unref_set(System.IntPtr obj, System.IntPtr pd, bool allow)
         {
             Eina.Log.Debug("function efl_allow_parent_unref_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).SetAllowParentUnref(allow);
+                    ((Object)ws.Target).SetAllowParentUnref(allow);
                 }
                 catch (Exception e)
                 {
@@ -1589,13 +1540,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void debug_name_override(System.IntPtr obj, System.IntPtr pd, Eina.Strbuf sb)
         {
             Eina.Log.Debug("function efl_debug_name_override was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Object)wrapper).DebugNameOverride(sb);
+                    ((Object)ws.Target).DebugNameOverride(sb);
                 }
                 catch (Exception e)
                 {
@@ -1624,13 +1575,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static Efl.Object provider_find(System.IntPtr obj, System.IntPtr pd, Type klass)
         {
             Eina.Log.Debug("function efl_provider_find was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((Object)wrapper).FindProvider(klass);
+                    _ret_var = ((Object)ws.Target).FindProvider(klass);
                 }
                 catch (Exception e)
                 {
@@ -1660,13 +1611,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void destructor(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_destructor was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Object)wrapper).Destructor();
+                    ((Object)ws.Target).Destructor();
                 }
                 catch (Exception e)
                 {
@@ -1695,13 +1646,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static Efl.Object finalize(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_finalize was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((Object)wrapper).FinalizeAdd();
+                    _ret_var = ((Object)ws.Target).FinalizeAdd();
                 }
                 catch (Exception e)
                 {
@@ -1731,13 +1682,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void invalidate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_invalidate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Object)wrapper).Invalidate();
+                    ((Object)ws.Target).Invalidate();
                 }
                 catch (Exception e)
                 {
@@ -1766,13 +1717,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static Efl.Object name_find(System.IntPtr obj, System.IntPtr pd, System.String search)
         {
             Eina.Log.Debug("function efl_name_find was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((Object)wrapper).FindName(search);
+                    _ret_var = ((Object)ws.Target).FindName(search);
                 }
                 catch (Exception e)
                 {
@@ -1802,13 +1753,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void event_thaw(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_event_thaw was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Object)wrapper).ThawEvent();
+                    ((Object)ws.Target).ThawEvent();
                 }
                 catch (Exception e)
                 {
@@ -1837,13 +1788,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void event_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_event_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Object)wrapper).FreezeEvent();
+                    ((Object)ws.Target).FreezeEvent();
                 }
                 catch (Exception e)
                 {
@@ -1872,8 +1823,8 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void event_global_thaw(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_event_global_thaw was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
@@ -1905,8 +1856,8 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void event_global_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_event_global_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
@@ -1938,13 +1889,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void event_callback_stop(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_event_callback_stop was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Object)wrapper).EventCallbackStop();
+                    ((Object)ws.Target).EventCallbackStop();
                 }
                 catch (Exception e)
                 {
@@ -1973,14 +1924,14 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static void event_callback_forwarder_del(System.IntPtr obj, System.IntPtr pd, System.IntPtr desc, Efl.Object new_obj)
         {
             Eina.Log.Debug("function efl_event_callback_forwarder_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_desc = Eina.PrimitiveConversion.PointerToManaged<Efl.EventDescription>(desc);
                                                     
                 try
                 {
-                    ((Object)wrapper).DelEventCallbackForwarder(_in_desc, new_obj);
+                    ((Object)ws.Target).DelEventCallbackForwarder(_in_desc, new_obj);
                 }
                 catch (Exception e)
                 {
@@ -2009,13 +1960,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static System.IntPtr children_iterator_new(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_children_iterator_new was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Object> _ret_var = default(Eina.Iterator<Efl.Object>);
                 try
                 {
-                    _ret_var = ((Object)wrapper).NewChildrenIterator();
+                    _ret_var = ((Object)ws.Target).NewChildrenIterator();
                 }
                 catch (Exception e)
                 {
@@ -2045,13 +1996,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static bool composite_attach(System.IntPtr obj, System.IntPtr pd, Efl.Object comp_obj)
         {
             Eina.Log.Debug("function efl_composite_attach was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).AttachComposite(comp_obj);
+                    _ret_var = ((Object)ws.Target).AttachComposite(comp_obj);
                 }
                 catch (Exception e)
                 {
@@ -2081,13 +2032,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static bool composite_detach(System.IntPtr obj, System.IntPtr pd, Efl.Object comp_obj)
         {
             Eina.Log.Debug("function efl_composite_detach was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).CompositeDetach(comp_obj);
+                    _ret_var = ((Object)ws.Target).CompositeDetach(comp_obj);
                 }
                 catch (Exception e)
                 {
@@ -2117,13 +2068,13 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
         private static bool composite_part_is(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_composite_part_is was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Object)wrapper).IsCompositePart();
+                    _ret_var = ((Object)ws.Target).IsCompositePart();
                 }
                 catch (Exception e)
                 {
@@ -2142,7 +2093,7 @@ public abstract class Object :  Efl.Eo.IWrapper, IDisposable
 
         private static efl_composite_part_is_delegate efl_composite_part_is_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -2157,13 +2108,13 @@ namespace Efl {
 public struct Event
 {
     /// <summary>The object the callback was called on.
-/// (Since EFL 1.22)</summary>
+    /// (Since EFL 1.22)</summary>
     public Efl.Object Object;
     /// <summary>The event description.
-/// (Since EFL 1.22)</summary>
+    /// (Since EFL 1.22)</summary>
     public Efl.EventDescription Desc;
     /// <summary>Extra event information passed by the event caller. Must be cast to the event type declared in the EO file. Keep in mind that: 1) Objects are passed as a normal Eo*. Event subscribers can call functions on these objects. 2) Structs, built-in types and containers are passed as const pointers, with one level of indirection.
-/// (Since EFL 1.22)</summary>
+    /// (Since EFL 1.22)</summary>
     public System.IntPtr Info;
     ///<summary>Constructor for Event.</summary>
     public Event(
@@ -2176,12 +2127,16 @@ public struct Event
         this.Info = Info;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Event(IntPtr ptr)
     {
         var tmp = (Event.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Event.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Event.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -2215,6 +2170,8 @@ public struct Event
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 6872f76..c1fc719 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>Efl observable class</summary>
 [Efl.Observable.NativeMethods]
-public class Observable : Efl.Object, Efl.Eo.IWrapper
+public class Observable : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class Observable : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Observable(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Observable"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class Observable : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Add an observer to a group of observers.
     /// Note: Observers that observe this observable are grouped by the <c>key</c> and an observer can belong to multiple groups at the same time.</summary>
     /// <param name="key">A key to classify observer groups</param>
@@ -210,7 +183,7 @@ public class Observable : Efl.Object, Efl.Eo.IWrapper
             return Efl.Observable.efl_observable_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_observable_observer_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.IObserver obs);
@@ -223,13 +196,13 @@ public class Observable : Efl.Object, Efl.Eo.IWrapper
         private static void observer_add(System.IntPtr obj, System.IntPtr pd, System.String key, Efl.IObserver obs)
         {
             Eina.Log.Debug("function efl_observable_observer_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Observable)wrapper).AddObserver(key, obs);
+                    ((Observable)ws.Target).AddObserver(key, obs);
                 }
                 catch (Exception e)
                 {
@@ -258,13 +231,13 @@ public class Observable : Efl.Object, Efl.Eo.IWrapper
         private static void observer_del(System.IntPtr obj, System.IntPtr pd, System.String key, Efl.IObserver obs)
         {
             Eina.Log.Debug("function efl_observable_observer_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Observable)wrapper).DelObserver(key, obs);
+                    ((Observable)ws.Target).DelObserver(key, obs);
                 }
                 catch (Exception e)
                 {
@@ -293,13 +266,13 @@ public class Observable : Efl.Object, Efl.Eo.IWrapper
         private static void observer_clean(System.IntPtr obj, System.IntPtr pd, Efl.IObserver obs)
         {
             Eina.Log.Debug("function efl_observable_observer_clean was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Observable)wrapper).ObserverClean(obs);
+                    ((Observable)ws.Target).ObserverClean(obs);
                 }
                 catch (Exception e)
                 {
@@ -328,13 +301,13 @@ public class Observable : Efl.Object, Efl.Eo.IWrapper
         private static System.IntPtr observers_iterator_new(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_observable_observers_iterator_new was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Iterator<Efl.IObserver> _ret_var = default(Eina.Iterator<Efl.IObserver>);
                 try
                 {
-                    _ret_var = ((Observable)wrapper).NewObserversIterator(key);
+                    _ret_var = ((Observable)ws.Target).NewObserversIterator(key);
                 }
                 catch (Exception e)
                 {
@@ -364,13 +337,13 @@ public class Observable : Efl.Object, Efl.Eo.IWrapper
         private static void observers_update(System.IntPtr obj, System.IntPtr pd, System.String key, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_observable_observers_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Observable)wrapper).UpdateObservers(key, data);
+                    ((Observable)ws.Target).UpdateObservers(key, data);
                 }
                 catch (Exception e)
                 {
@@ -399,13 +372,13 @@ public class Observable : Efl.Object, Efl.Eo.IWrapper
         private static System.IntPtr iterator_tuple_new(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_observable_iterator_tuple_new was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.ObservableTuple> _ret_var = default(Eina.Iterator<Efl.ObservableTuple>);
                 try
                 {
-                    _ret_var = ((Observable)wrapper).NewIteratorTuple();
+                    _ret_var = ((Observable)ws.Target).NewIteratorTuple();
                 }
                 catch (Exception e)
                 {
@@ -424,7 +397,7 @@ public class Observable : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_observable_iterator_tuple_new_delegate efl_observable_iterator_tuple_new_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -449,12 +422,16 @@ public struct ObservableTuple
         this.Data = Data;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ObservableTuple(IntPtr ptr)
     {
         var tmp = (ObservableTuple.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ObservableTuple.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ObservableTuple.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -483,6 +460,8 @@ public struct ObservableTuple
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 6d41796..452ab7c 100644 (file)
@@ -19,13 +19,13 @@ public interface IObserver :
 void Update(Efl.Object obs, System.String key, System.IntPtr data);
     }
 /// <summary>Efl observer interface</summary>
-sealed public class IObserverConcrete : 
-
-IObserver
+sealed public class IObserverConcrete :
+    Efl.Eo.EoWrapper
+    , IObserver
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -40,86 +40,12 @@ IObserver
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_observer_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IObserver"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IObserverConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IObserverConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IObserverConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Update observer according to the changes of observable object.</summary>
@@ -165,7 +91,7 @@ IObserver
             return Efl.IObserverConcrete.efl_observer_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_observer_update_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object obs, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key,  System.IntPtr data);
@@ -178,13 +104,13 @@ IObserver
         private static void update(System.IntPtr obj, System.IntPtr pd, Efl.Object obs, System.String key, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_observer_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((IObserver)wrapper).Update(obs, key, data);
+                    ((IObserver)ws.Target).Update(obs, key, data);
                 }
                 catch (Exception e)
                 {
@@ -202,7 +128,7 @@ IObserver
 
         private static efl_observer_update_delegate efl_observer_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_orientation.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_orientation.eo.cs
deleted file mode 100644 (file)
index b61d4c5..0000000
+++ /dev/null
@@ -1,446 +0,0 @@
-#pragma warning disable CS1591
-using System;
-using System.Runtime.InteropServices;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.ComponentModel;
-namespace Efl {
-
-/// <summary>Efl orientation interface</summary>
-[Efl.IOrientationConcrete.NativeMethods]
-public interface IOrientation : 
-    Efl.Eo.IWrapper, IDisposable
-{
-    /// <summary>Control the orientation of a given object.
-/// This can be used to set the rotation on an image or a window, for instance.</summary>
-/// <returns>The rotation angle (CCW), see <see cref="Efl.Orient"/>.</returns>
-Efl.Orient GetOrientation();
-    /// <summary>Control the orientation of a given object.
-/// This can be used to set the rotation on an image or a window, for instance.</summary>
-/// <param name="dir">The rotation angle (CCW), see <see cref="Efl.Orient"/>.</param>
-void SetOrientation(Efl.Orient dir);
-    /// <summary>Control the flip of the given image
-/// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-/// <returns>Flip method</returns>
-Efl.Flip GetFlip();
-    /// <summary>Control the flip of the given image
-/// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-/// <param name="flip">Flip method</param>
-void SetFlip(Efl.Flip flip);
-                    /// <summary>Control the orientation of a given object.
-/// This can be used to set the rotation on an image or a window, for instance.</summary>
-/// <value>The rotation angle (CCW), see <see cref="Efl.Orient"/>.</value>
-    Efl.Orient Orientation {
-        get ;
-        set ;
-    }
-    /// <summary>Control the flip of the given image
-/// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-/// <value>Flip method</value>
-    Efl.Flip Flip {
-        get ;
-        set ;
-    }
-}
-/// <summary>Efl orientation interface</summary>
-sealed public class IOrientationConcrete : 
-
-IOrientation
-    
-{
-    ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
-    {
-        get
-        {
-            if (((object)this).GetType() == typeof(IOrientationConcrete))
-            {
-                return GetEflClassStatic();
-            }
-            else
-            {
-                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
-            }
-        }
-    }
-
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
-    [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
-        efl_orientation_interface_get();
-    /// <summary>Initializes a new instance of the <see cref="IOrientation"/> class.
-    /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IOrientationConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IOrientationConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Control the orientation of a given object.
-    /// This can be used to set the rotation on an image or a window, for instance.</summary>
-    /// <returns>The rotation angle (CCW), see <see cref="Efl.Orient"/>.</returns>
-    public Efl.Orient GetOrientation() {
-         var _ret_var = Efl.IOrientationConcrete.NativeMethods.efl_orientation_get_ptr.Value.Delegate(this.NativeHandle);
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Control the orientation of a given object.
-    /// This can be used to set the rotation on an image or a window, for instance.</summary>
-    /// <param name="dir">The rotation angle (CCW), see <see cref="Efl.Orient"/>.</param>
-    public void SetOrientation(Efl.Orient dir) {
-                                 Efl.IOrientationConcrete.NativeMethods.efl_orientation_set_ptr.Value.Delegate(this.NativeHandle,dir);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Control the flip of the given image
-    /// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-    /// <returns>Flip method</returns>
-    public Efl.Flip GetFlip() {
-         var _ret_var = Efl.IOrientationConcrete.NativeMethods.efl_orientation_flip_get_ptr.Value.Delegate(this.NativeHandle);
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Control the flip of the given image
-    /// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-    /// <param name="flip">Flip method</param>
-    public void SetFlip(Efl.Flip flip) {
-                                 Efl.IOrientationConcrete.NativeMethods.efl_orientation_flip_set_ptr.Value.Delegate(this.NativeHandle,flip);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Control the orientation of a given object.
-/// This can be used to set the rotation on an image or a window, for instance.</summary>
-/// <value>The rotation angle (CCW), see <see cref="Efl.Orient"/>.</value>
-    public Efl.Orient Orientation {
-        get { return GetOrientation(); }
-        set { SetOrientation(value); }
-    }
-    /// <summary>Control the flip of the given image
-/// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-/// <value>Flip method</value>
-    public Efl.Flip Flip {
-        get { return GetFlip(); }
-        set { SetFlip(value); }
-    }
-    private static IntPtr GetEflClassStatic()
-    {
-        return Efl.IOrientationConcrete.efl_orientation_interface_get();
-    }
-    /// <summary>Wrapper for native methods and virtual method delegates.
-    /// For internal use by generated code only.</summary>
-    public class NativeMethods  : Efl.Eo.NativeClass
-    {
-        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Efl);
-        /// <summary>Gets the list of Eo operations to override.</summary>
-        /// <returns>The list of Eo operations to be overload.</returns>
-        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
-        {
-            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
-            var methods = Efl.Eo.Globals.GetUserMethods(type);
-
-            if (efl_orientation_get_static_delegate == null)
-            {
-                efl_orientation_get_static_delegate = new efl_orientation_get_delegate(orientation_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_get_static_delegate) });
-            }
-
-            if (efl_orientation_set_static_delegate == null)
-            {
-                efl_orientation_set_static_delegate = new efl_orientation_set_delegate(orientation_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_set_static_delegate) });
-            }
-
-            if (efl_orientation_flip_get_static_delegate == null)
-            {
-                efl_orientation_flip_get_static_delegate = new efl_orientation_flip_get_delegate(flip_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetFlip") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_flip_get"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_flip_get_static_delegate) });
-            }
-
-            if (efl_orientation_flip_set_static_delegate == null)
-            {
-                efl_orientation_flip_set_static_delegate = new efl_orientation_flip_set_delegate(flip_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetFlip") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_flip_set"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_flip_set_static_delegate) });
-            }
-
-            return descs;
-        }
-        /// <summary>Returns the Eo class for the native methods of this class.</summary>
-        /// <returns>The native class pointer.</returns>
-        public override IntPtr GetEflClass()
-        {
-            return Efl.IOrientationConcrete.efl_orientation_interface_get();
-        }
-
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        
-        private delegate Efl.Orient efl_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate Efl.Orient efl_orientation_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_get_api_delegate> efl_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_get_api_delegate>(Module, "efl_orientation_get");
-
-        private static Efl.Orient orientation_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_orientation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Orient _ret_var = default(Efl.Orient);
-                try
-                {
-                    _ret_var = ((IOrientation)wrapper).GetOrientation();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_orientation_get_delegate efl_orientation_get_static_delegate;
-
-        
-        private delegate void efl_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Orient dir);
-
-        
-        public delegate void efl_orientation_set_api_delegate(System.IntPtr obj,  Efl.Orient dir);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_set_api_delegate> efl_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_set_api_delegate>(Module, "efl_orientation_set");
-
-        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Orient dir)
-        {
-            Eina.Log.Debug("function efl_orientation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((IOrientation)wrapper).SetOrientation(dir);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
-            }
-        }
-
-        private static efl_orientation_set_delegate efl_orientation_set_static_delegate;
-
-        
-        private delegate Efl.Flip efl_orientation_flip_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate Efl.Flip efl_orientation_flip_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_flip_get_api_delegate> efl_orientation_flip_get_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_flip_get_api_delegate>(Module, "efl_orientation_flip_get");
-
-        private static Efl.Flip flip_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_orientation_flip_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Flip _ret_var = default(Efl.Flip);
-                try
-                {
-                    _ret_var = ((IOrientation)wrapper).GetFlip();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_orientation_flip_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_orientation_flip_get_delegate efl_orientation_flip_get_static_delegate;
-
-        
-        private delegate void efl_orientation_flip_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Flip flip);
-
-        
-        public delegate void efl_orientation_flip_set_api_delegate(System.IntPtr obj,  Efl.Flip flip);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_flip_set_api_delegate> efl_orientation_flip_set_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_flip_set_api_delegate>(Module, "efl_orientation_flip_set");
-
-        private static void flip_set(System.IntPtr obj, System.IntPtr pd, Efl.Flip flip)
-        {
-            Eina.Log.Debug("function efl_orientation_flip_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((IOrientation)wrapper).SetFlip(flip);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_orientation_flip_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), flip);
-            }
-        }
-
-        private static efl_orientation_flip_set_delegate efl_orientation_flip_set_static_delegate;
-
-        #pragma warning restore CA1707, SA1300, SA1600
-
-}
-}
-}
-
-namespace Efl {
-
-/// <summary>An orientation type, to rotate visual objects.
-/// Not to be confused with <see cref="Efl.Ui.Dir"/> which is meant for widgets, rather than images and canvases. This enum is used to rotate images, videos and the like.
-/// 
-/// See also <see cref="Efl.IOrientation"/>.</summary>
-public enum Orient
-{
-/// <summary>Default, same as up</summary>
-None = 0,
-/// <summary>Orient up, do not rotate.</summary>
-Up = 0,
-/// <summary>Orient right, rotate 90 degrees counter clock-wise.</summary>
-Right = 90,
-/// <summary>Orient down, rotate 180 degrees.</summary>
-Down = 180,
-/// <summary>Orient left, rotate 90 degrees clock-wise.</summary>
-Left = 270,
-}
-
-}
-
-namespace Efl {
-
-/// <summary>A flip type, to flip visual objects.
-/// See also <see cref="Efl.IOrientation"/>.</summary>
-public enum Flip
-{
-/// <summary>No flip</summary>
-None = 0,
-/// <summary>Flip image horizontally</summary>
-Horizontal = 1,
-/// <summary>Flip image vertically</summary>
-Vertical = 2,
-}
-
-}
-
index d0e0131..67b1ded 100644 (file)
@@ -7,57 +7,39 @@ using System.Threading;
 using System.ComponentModel;
 namespace Efl {
 
-/// <summary>API common to all UI container objects.</summary>
+/// <summary>Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime.</summary>
 [Efl.IPackConcrete.NativeMethods]
 public interface IPack : 
     Efl.IContainer ,
     Efl.Eo.IWrapper, IDisposable
 {
-    /// <summary>Alignment of the container within its bounds</summary>
-/// <param name="align_horiz">Horizontal alignment</param>
-/// <param name="align_vert">Vertical alignment</param>
-void GetPackAlign(out double align_horiz, out double align_vert);
-    /// <summary>Alignment of the container within its bounds</summary>
-/// <param name="align_horiz">Horizontal alignment</param>
-/// <param name="align_vert">Vertical alignment</param>
-void SetPackAlign(double align_horiz, double align_vert);
-    /// <summary>Padding between items contained in this object.</summary>
-/// <param name="pad_horiz">Horizontal padding</param>
-/// <param name="pad_vert">Vertical padding</param>
-/// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable);
-    /// <summary>Padding between items contained in this object.</summary>
-/// <param name="pad_horiz">Horizontal padding</param>
-/// <param name="pad_vert">Vertical padding</param>
-/// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-void SetPackPadding(double pad_horiz, double pad_vert, bool scalable);
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-/// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+/// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
 bool ClearPack();
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
 /// Use with caution.</summary>
-/// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+/// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
 bool UnpackAll();
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-/// <param name="subobj">The unpacked object.</param>
-/// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+/// <param name="subobj">The sub-object to unpack.</param>
+/// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
 bool Unpack(Efl.Gfx.IEntity subobj);
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
 /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
 /// 
 /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-/// <param name="subobj">An object to pack.</param>
+/// <param name="subobj">The object to pack.</param>
 /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
 bool Pack(Efl.Gfx.IEntity subobj);
-                                }
-/// <summary>API common to all UI container objects.</summary>
-sealed public class IPackConcrete : 
-
-IPack
+                }
+/// <summary>Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime.</summary>
+sealed public class IPackConcrete :
+    Efl.Eo.EoWrapper
+    , IPack
     , Efl.IContainer
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -72,158 +54,15 @@ IPack
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_pack_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IPack"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPackConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPackConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
+    private IPackConcrete(System.IntPtr raw) : base(raw)
     {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -231,13 +70,12 @@ IPack
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -279,7 +117,7 @@ IPack
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -287,13 +125,12 @@ IPack
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -335,64 +172,34 @@ IPack
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate(this.NativeHandle,out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate(this.NativeHandle,align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate(this.NativeHandle,out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate(this.NativeHandle,pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate(this.NativeHandle,subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate(this.NativeHandle,subobj);
@@ -401,15 +208,15 @@ IPack
  }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
@@ -431,46 +238,6 @@ IPack
             var descs = new System.Collections.Generic.List<Efl_Op_Description>();
             var methods = Efl.Eo.Globals.GetUserMethods(type);
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -540,147 +307,7 @@ IPack
             return Efl.IPackConcrete.efl_pack_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((IPack)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((IPack)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((IPack)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((IPack)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -693,13 +320,13 @@ IPack
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPack)wrapper).ClearPack();
+                    _ret_var = ((IPack)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -729,13 +356,13 @@ IPack
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPack)wrapper).UnpackAll();
+                    _ret_var = ((IPack)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -765,13 +392,13 @@ IPack
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPack)wrapper).Unpack(subobj);
+                    _ret_var = ((IPack)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -801,13 +428,13 @@ IPack
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPack)wrapper).Pack(subobj);
+                    _ret_var = ((IPack)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -837,13 +464,13 @@ IPack
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((IPack)wrapper).ContentIterate();
+                    _ret_var = ((IPack)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -873,13 +500,13 @@ IPack
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IPack)wrapper).ContentCount();
+                    _ret_var = ((IPack)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -898,7 +525,7 @@ IPack
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 98cb51e..d188516 100644 (file)
@@ -26,13 +26,13 @@ void UpdateLayout();
 }
 /// <summary>Low-level APIs for object that can lay their children out.
 /// Used for containers (box, grid).</summary>
-sealed public class IPackLayoutConcrete : 
-
-IPackLayout
+sealed public class IPackLayoutConcrete :
+    Efl.Eo.EoWrapper
+    , IPackLayout
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -47,155 +47,12 @@ IPackLayout
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_pack_layout_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IPackLayout"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPackLayoutConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPackLayoutConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IPackLayoutConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Sent after the layout was updated.</summary>
@@ -205,10 +62,9 @@ IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -310,7 +166,7 @@ IPackLayout
             return Efl.IPackLayoutConcrete.efl_pack_layout_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_pack_layout_request_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -323,13 +179,13 @@ IPackLayout
         private static void layout_request(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_request was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IPackLayout)wrapper).LayoutRequest();
+                    ((IPackLayout)ws.Target).LayoutRequest();
                 }
                 catch (Exception e)
                 {
@@ -358,13 +214,13 @@ IPackLayout
         private static void layout_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IPackLayout)wrapper).UpdateLayout();
+                    ((IPackLayout)ws.Target).UpdateLayout();
                 }
                 catch (Exception e)
                 {
@@ -382,7 +238,7 @@ IPackLayout
 
         private static efl_pack_layout_update_delegate efl_pack_layout_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 10161b3..f8fbc95 100644 (file)
@@ -7,7 +7,8 @@ using System.Threading;
 using System.ComponentModel;
 namespace Efl {
 
-/// <summary>API for containers</summary>
+/// <summary>Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime in a linear fashion.
+/// This means the sub-objects are internally organized in an ordered list.</summary>
 [Efl.IPackLinearConcrete.NativeMethods]
 public interface IPackLinear : 
     Efl.IPack ,
@@ -17,67 +18,66 @@ public interface IPackLinear :
 /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, 0).
 /// 
 /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-/// <param name="subobj">Item to pack at the beginning.</param>
+/// <param name="subobj">Object to pack at the beginning.</param>
 /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
 bool PackBegin(Efl.Gfx.IEntity subobj);
-    /// <summary>Append item at the end of this container.
+    /// <summary>Append object at the end of this container.
 /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, -1).
 /// 
 /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-/// <param name="subobj">Item to pack at the end.</param>
+/// <param name="subobj">Object to pack at the end.</param>
 /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
 bool PackEnd(Efl.Gfx.IEntity subobj);
-    /// <summary>Prepend item before other sub object.
+    /// <summary>Prepend an object before an existing sub-object.
 /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-/// <param name="subobj">Item to pack before <c>existing</c>.</param>
-/// <param name="existing">Item to refer to.</param>
+/// <param name="subobj">Object to pack before <c>existing</c>.</param>
+/// <param name="existing">Existing reference sub-object.</param>
 /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
 bool PackBefore(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing);
-    /// <summary>Append item after other sub object.
+    /// <summary>Append an object after an existing sub-object.
 /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-/// <param name="subobj">Item to pack after <c>existing</c>.</param>
-/// <param name="existing">Item to refer to.</param>
+/// <param name="subobj">Object to pack after <c>existing</c>.</param>
+/// <param name="existing">Existing reference sub-object.</param>
 /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
 bool PackAfter(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing);
-    /// <summary>Inserts <c>subobj</c> BEFORE the item at position <c>index</c>.
-/// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Inserts <c>subobj</c> BEFORE the sub-object at position <c>index</c>.
+/// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
 /// 
 /// If <c>index</c> is less than -<c>count</c>, it will trigger <see cref="Efl.IPackLinear.PackBegin"/>(<c>subobj</c>) whereas <c>index</c> greater than <c>count</c>-1 will trigger <see cref="Efl.IPackLinear.PackEnd"/>(<c>subobj</c>).
 /// 
 /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-/// <param name="subobj">Item to pack.</param>
-/// <param name="index">Index of item to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+/// <param name="subobj">Object to pack.</param>
+/// <param name="index">Index of existing sub-object to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
 /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
 bool PackAt(Efl.Gfx.IEntity subobj, int index);
-    /// <summary>Content at a given <c>index</c> in this container.
-/// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Sub-object at a given <c>index</c> in this container.
+/// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
 /// 
-/// If <c>index</c> is less than -<c>count</c>, it will return the first item whereas <c>index</c> greater than <c>count</c>-1 will return the last item.</summary>
-/// <param name="index">Index of the item to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-/// <returns>The object contained at the given <c>index</c>.</returns>
+/// If <c>index</c> is less than -<c>count</c>, it will return the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will return the last sub-object.</summary>
+/// <param name="index">Index of the existing sub-object to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+/// <returns>The sub-object contained at the given <c>index</c>.</returns>
 Efl.Gfx.IEntity GetPackContent(int index);
-    /// <summary>Get the index of a child in this container.</summary>
-/// <param name="subobj">An object contained in this pack.</param>
-/// <returns>-1 in case <c>subobj</c> is not a child of this object, or the index of this item in the range 0 to (<c>count</c>-1).</returns>
+    /// <summary>Get the index of a sub-object in this container.</summary>
+/// <param name="subobj">An existing sub-object in this container.</param>
+/// <returns>-1 in case <c>subobj</c> is not found, or the index of <c>subobj</c> in the range 0 to (<c>count</c>-1).</returns>
 int GetPackIndex(Efl.Gfx.IEntity subobj);
-    /// <summary>Pop out (remove) the item at the specified <c>index</c>.
-/// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Pop out (remove) the sub-object at the specified <c>index</c>.
+/// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
 /// 
-/// If <c>index</c> is less than -<c>count</c>, it will remove the first item whereas <c>index</c> greater than <c>count</c>-1 will remove the last item.
-/// 
-/// Equivalent to <see cref="Efl.IPack.Unpack"/>(<see cref="Efl.IPackLinear.GetPackContent"/>(<c>index</c>)).</summary>
-/// <param name="index">Index of item to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-/// <returns>The child item if it could be removed.</returns>
+/// If <c>index</c> is less than -<c>count</c>, it will remove the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will remove the last sub-object.</summary>
+/// <param name="index">Index of the sub-object to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+/// <returns>The sub-object if it could be removed.</returns>
 Efl.Gfx.IEntity PackUnpackAt(int index);
                                 }
-/// <summary>API for containers</summary>
-sealed public class IPackLinearConcrete : 
-
-IPackLinear
+/// <summary>Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime in a linear fashion.
+/// This means the sub-objects are internally organized in an ordered list.</summary>
+sealed public class IPackLinearConcrete :
+    Efl.Eo.EoWrapper
+    , IPackLinear
     , Efl.IContainer, Efl.IPack
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -92,158 +92,15 @@ IPackLinear
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_pack_linear_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IPackLinear"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPackLinearConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPackLinearConcrete()
+    private IPackLinearConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
     }
 
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
-    }
-
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -251,13 +108,12 @@ IPackLinear
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -299,7 +155,7 @@ IPackLinear
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -307,13 +163,12 @@ IPackLinear
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -359,85 +214,83 @@ IPackLinear
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, 0).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the beginning.</param>
+    /// <param name="subobj">Object to pack at the beginning.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     public bool PackBegin(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_begin_ptr.Value.Delegate(this.NativeHandle,subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Append item at the end of this container.
+    /// <summary>Append object at the end of this container.
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, -1).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the end.</param>
+    /// <param name="subobj">Object to pack at the end.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     public bool PackEnd(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_end_ptr.Value.Delegate(this.NativeHandle,subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Prepend item before other sub object.
+    /// <summary>Prepend an object before an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack before <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack before <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     public bool PackBefore(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_before_ptr.Value.Delegate(this.NativeHandle,subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Append item after other sub object.
+    /// <summary>Append an object after an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack after <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack after <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     public bool PackAfter(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_after_ptr.Value.Delegate(this.NativeHandle,subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Inserts <c>subobj</c> BEFORE the item at position <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Inserts <c>subobj</c> BEFORE the sub-object at position <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
     /// If <c>index</c> is less than -<c>count</c>, it will trigger <see cref="Efl.IPackLinear.PackBegin"/>(<c>subobj</c>) whereas <c>index</c> greater than <c>count</c>-1 will trigger <see cref="Efl.IPackLinear.PackEnd"/>(<c>subobj</c>).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack.</param>
-    /// <param name="index">Index of item to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <param name="subobj">Object to pack.</param>
+    /// <param name="index">Index of existing sub-object to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     public bool PackAt(Efl.Gfx.IEntity subobj, int index) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_at_ptr.Value.Delegate(this.NativeHandle,subobj, index);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Content at a given <c>index</c> in this container.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Sub-object at a given <c>index</c> in this container.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will return the first item whereas <c>index</c> greater than <c>count</c>-1 will return the last item.</summary>
-    /// <param name="index">Index of the item to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The object contained at the given <c>index</c>.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will return the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will return the last sub-object.</summary>
+    /// <param name="index">Index of the existing sub-object to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object contained at the given <c>index</c>.</returns>
     public Efl.Gfx.IEntity GetPackContent(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_content_get_ptr.Value.Delegate(this.NativeHandle,index);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Get the index of a child in this container.</summary>
-    /// <param name="subobj">An object contained in this pack.</param>
-    /// <returns>-1 in case <c>subobj</c> is not a child of this object, or the index of this item in the range 0 to (<c>count</c>-1).</returns>
+    /// <summary>Get the index of a sub-object in this container.</summary>
+    /// <param name="subobj">An existing sub-object in this container.</param>
+    /// <returns>-1 in case <c>subobj</c> is not found, or the index of <c>subobj</c> in the range 0 to (<c>count</c>-1).</returns>
     public int GetPackIndex(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_index_get_ptr.Value.Delegate(this.NativeHandle,subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Pop out (remove) the item at the specified <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
-    /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will remove the first item whereas <c>index</c> greater than <c>count</c>-1 will remove the last item.
+    /// <summary>Pop out (remove) the sub-object at the specified <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// Equivalent to <see cref="Efl.IPack.Unpack"/>(<see cref="Efl.IPackLinear.GetPackContent"/>(<c>index</c>)).</summary>
-    /// <param name="index">Index of item to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The child item if it could be removed.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will remove the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will remove the last sub-object.</summary>
+    /// <param name="index">Index of the sub-object to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object if it could be removed.</returns>
     public Efl.Gfx.IEntity PackUnpackAt(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_unpack_at_ptr.Value.Delegate(this.NativeHandle,index);
         Eina.Error.RaiseIfUnhandledException();
@@ -445,78 +298,48 @@ IPackLinear
  }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate(this.NativeHandle,out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate(this.NativeHandle,align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate(this.NativeHandle,out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate(this.NativeHandle,pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate(this.NativeHandle,subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate(this.NativeHandle,subobj);
@@ -639,46 +462,6 @@ IPackLinear
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_count"), func = Marshal.GetFunctionPointerForDelegate(efl_content_count_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -728,7 +511,7 @@ IPackLinear
             return Efl.IPackLinearConcrete.efl_pack_linear_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_begin_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
@@ -741,13 +524,13 @@ IPackLinear
         private static bool pack_begin(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_begin was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).PackBegin(subobj);
+                    _ret_var = ((IPackLinear)ws.Target).PackBegin(subobj);
                 }
                 catch (Exception e)
                 {
@@ -777,13 +560,13 @@ IPackLinear
         private static bool pack_end(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).PackEnd(subobj);
+                    _ret_var = ((IPackLinear)ws.Target).PackEnd(subobj);
                 }
                 catch (Exception e)
                 {
@@ -813,13 +596,13 @@ IPackLinear
         private static bool pack_before(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_before was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).PackBefore(subobj, existing);
+                    _ret_var = ((IPackLinear)ws.Target).PackBefore(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -849,13 +632,13 @@ IPackLinear
         private static bool pack_after(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_after was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).PackAfter(subobj, existing);
+                    _ret_var = ((IPackLinear)ws.Target).PackAfter(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -885,13 +668,13 @@ IPackLinear
         private static bool pack_at(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
         {
             Eina.Log.Debug("function efl_pack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).PackAt(subobj, index);
+                    _ret_var = ((IPackLinear)ws.Target).PackAt(subobj, index);
                 }
                 catch (Exception e)
                 {
@@ -921,13 +704,13 @@ IPackLinear
         private static Efl.Gfx.IEntity pack_content_get(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).GetPackContent(index);
+                    _ret_var = ((IPackLinear)ws.Target).GetPackContent(index);
                 }
                 catch (Exception e)
                 {
@@ -957,13 +740,13 @@ IPackLinear
         private static int pack_index_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).GetPackIndex(subobj);
+                    _ret_var = ((IPackLinear)ws.Target).GetPackIndex(subobj);
                 }
                 catch (Exception e)
                 {
@@ -993,13 +776,13 @@ IPackLinear
         private static Efl.Gfx.IEntity pack_unpack_at(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_unpack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).PackUnpackAt(index);
+                    _ret_var = ((IPackLinear)ws.Target).PackUnpackAt(index);
                 }
                 catch (Exception e)
                 {
@@ -1029,13 +812,13 @@ IPackLinear
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).ContentIterate();
+                    _ret_var = ((IPackLinear)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -1065,13 +848,13 @@ IPackLinear
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).ContentCount();
+                    _ret_var = ((IPackLinear)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -1090,146 +873,6 @@ IPackLinear
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((IPackLinear)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((IPackLinear)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((IPackLinear)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((IPackLinear)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -1241,13 +884,13 @@ IPackLinear
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).ClearPack();
+                    _ret_var = ((IPackLinear)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -1277,13 +920,13 @@ IPackLinear
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).UnpackAll();
+                    _ret_var = ((IPackLinear)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -1313,13 +956,13 @@ IPackLinear
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).Unpack(subobj);
+                    _ret_var = ((IPackLinear)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1349,13 +992,13 @@ IPackLinear
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackLinear)wrapper).Pack(subobj);
+                    _ret_var = ((IPackLinear)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1374,7 +1017,7 @@ IPackLinear
 
         private static efl_pack_delegate efl_pack_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index fda2d3a..e5c05a6 100644 (file)
@@ -7,7 +7,8 @@ using System.Threading;
 using System.ComponentModel;
 namespace Efl {
 
-/// <summary>2D containers aligned on a table with rows and columns</summary>
+/// <summary>Interface for 2D containers which arrange their elements on a table with rows and columns.
+/// Elements can be positioned on a specific row and column, or they can be simply added to the table using <see cref="Efl.IPack.Pack"/> and the container will chose where to put them.</summary>
 [Efl.IPackTableConcrete.NativeMethods]
 public interface IPackTable : 
     Efl.IPack ,
@@ -29,28 +30,18 @@ void GetTableSize(out int cols, out int rows);
 /// <param name="cols">Number of columns</param>
 /// <param name="rows">Number of rows</param>
 void SetTableSize(int cols, int rows);
-    /// <summary>Gird columns property</summary>
-/// <returns>Number of columns</returns>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+/// <returns>Amount of columns.</returns>
 int GetTableColumns();
-    /// <summary>Specifies limit for linear adds - if direction is horizontal</summary>
-/// <param name="cols">Number of columns</param>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+/// <param name="cols">Amount of columns.</param>
 void SetTableColumns(int cols);
-    /// <summary>Table rows property</summary>
-/// <returns>Number of rows</returns>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+/// <returns>Amount of rows.</returns>
 int GetTableRows();
-    /// <summary>Specifies limit for linear adds - if direction is vertical</summary>
-/// <param name="rows">Number of rows</param>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+/// <param name="rows">Amount of rows.</param>
 void SetTableRows(int rows);
-    /// <summary>Primary and secondary up/left/right/down directions for linear apis.
-/// Default is horizontal and vertical. This overrides <see cref="Efl.Ui.IDirection.Direction"/>.</summary>
-/// <param name="primary">Primary direction</param>
-/// <param name="secondary">Secondary direction</param>
-void GetTableDirection(out Efl.Ui.Dir primary, out Efl.Ui.Dir secondary);
-    /// <summary>Primary and secondary up/left/right/down directions for linear apis.
-/// Default is horizontal and vertical. This overrides <see cref="Efl.Ui.IDirection.Direction"/>.</summary>
-/// <param name="primary">Primary direction</param>
-/// <param name="secondary">Secondary direction</param>
-void SetTableDirection(Efl.Ui.Dir primary, Efl.Ui.Dir secondary);
     /// <summary>Pack object at a given location in the table.
 /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
 /// <param name="subobj">A child object to pack in this table.</param>
@@ -71,27 +62,28 @@ Eina.Iterator<Efl.Gfx.IEntity> GetTableContents(int col, int row, bool below);
 /// <param name="row">Row number</param>
 /// <returns>Child object</returns>
 Efl.Gfx.IEntity GetTableContent(int col, int row);
-                                                    /// <summary>Gird columns property</summary>
-/// <value>Number of columns</value>
+                                            /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <value>Amount of columns.</value>
     int TableColumns {
         get ;
         set ;
     }
-    /// <summary>Table rows property</summary>
-/// <value>Number of rows</value>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <value>Amount of rows.</value>
     int TableRows {
         get ;
         set ;
     }
 }
-/// <summary>2D containers aligned on a table with rows and columns</summary>
-sealed public class IPackTableConcrete : 
-
-IPackTable
+/// <summary>Interface for 2D containers which arrange their elements on a table with rows and columns.
+/// Elements can be positioned on a specific row and column, or they can be simply added to the table using <see cref="Efl.IPack.Pack"/> and the container will chose where to put them.</summary>
+sealed public class IPackTableConcrete :
+    Efl.Eo.EoWrapper
+    , IPackTable
     , Efl.IContainer, Efl.IPack
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -106,158 +98,15 @@ IPackTable
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_pack_table_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IPackTable"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPackTableConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPackTableConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
+    private IPackTableConcrete(System.IntPtr raw) : base(raw)
     {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -265,13 +114,12 @@ IPackTable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -313,7 +161,7 @@ IPackTable
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -321,13 +169,12 @@ IPackTable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -395,48 +242,32 @@ IPackTable
                                                          Efl.IPackTableConcrete.NativeMethods.efl_pack_table_size_set_ptr.Value.Delegate(this.NativeHandle,cols, rows);
         Eina.Error.RaiseIfUnhandledException();
                                          }
-    /// <summary>Gird columns property</summary>
-    /// <returns>Number of columns</returns>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <returns>Amount of columns.</returns>
     public int GetTableColumns() {
          var _ret_var = Efl.IPackTableConcrete.NativeMethods.efl_pack_table_columns_get_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Specifies limit for linear adds - if direction is horizontal</summary>
-    /// <param name="cols">Number of columns</param>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <param name="cols">Amount of columns.</param>
     public void SetTableColumns(int cols) {
                                  Efl.IPackTableConcrete.NativeMethods.efl_pack_table_columns_set_ptr.Value.Delegate(this.NativeHandle,cols);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Table rows property</summary>
-    /// <returns>Number of rows</returns>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <returns>Amount of rows.</returns>
     public int GetTableRows() {
          var _ret_var = Efl.IPackTableConcrete.NativeMethods.efl_pack_table_rows_get_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Specifies limit for linear adds - if direction is vertical</summary>
-    /// <param name="rows">Number of rows</param>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <param name="rows">Amount of rows.</param>
     public void SetTableRows(int rows) {
                                  Efl.IPackTableConcrete.NativeMethods.efl_pack_table_rows_set_ptr.Value.Delegate(this.NativeHandle,rows);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Primary and secondary up/left/right/down directions for linear apis.
-    /// Default is horizontal and vertical. This overrides <see cref="Efl.Ui.IDirection.Direction"/>.</summary>
-    /// <param name="primary">Primary direction</param>
-    /// <param name="secondary">Secondary direction</param>
-    public void GetTableDirection(out Efl.Ui.Dir primary, out Efl.Ui.Dir secondary) {
-                                                         Efl.IPackTableConcrete.NativeMethods.efl_pack_table_direction_get_ptr.Value.Delegate(this.NativeHandle,out primary, out secondary);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Primary and secondary up/left/right/down directions for linear apis.
-    /// Default is horizontal and vertical. This overrides <see cref="Efl.Ui.IDirection.Direction"/>.</summary>
-    /// <param name="primary">Primary direction</param>
-    /// <param name="secondary">Secondary direction</param>
-    public void SetTableDirection(Efl.Ui.Dir primary, Efl.Ui.Dir secondary) {
-                                                         Efl.IPackTableConcrete.NativeMethods.efl_pack_table_direction_set_ptr.Value.Delegate(this.NativeHandle,primary, secondary);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
     /// <summary>Pack object at a given location in the table.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
     /// <param name="subobj">A child object to pack in this table.</param>
@@ -471,92 +302,62 @@ IPackTable
  }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate(this.NativeHandle,out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate(this.NativeHandle,align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate(this.NativeHandle,out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate(this.NativeHandle,pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate(this.NativeHandle,subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate(this.NativeHandle,subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Gird columns property</summary>
-/// <value>Number of columns</value>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <value>Amount of columns.</value>
     public int TableColumns {
         get { return GetTableColumns(); }
         set { SetTableColumns(value); }
     }
-    /// <summary>Table rows property</summary>
-/// <value>Number of rows</value>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <value>Amount of rows.</value>
     public int TableRows {
         get { return GetTableRows(); }
         set { SetTableRows(value); }
@@ -647,26 +448,6 @@ IPackTable
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_rows_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_rows_set_static_delegate) });
             }
 
-            if (efl_pack_table_direction_get_static_delegate == null)
-            {
-                efl_pack_table_direction_get_static_delegate = new efl_pack_table_direction_get_delegate(table_direction_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetTableDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_direction_get_static_delegate) });
-            }
-
-            if (efl_pack_table_direction_set_static_delegate == null)
-            {
-                efl_pack_table_direction_set_static_delegate = new efl_pack_table_direction_set_delegate(table_direction_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetTableDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_direction_set_static_delegate) });
-            }
-
             if (efl_pack_table_static_delegate == null)
             {
                 efl_pack_table_static_delegate = new efl_pack_table_delegate(pack_table);
@@ -717,46 +498,6 @@ IPackTable
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_count"), func = Marshal.GetFunctionPointerForDelegate(efl_content_count_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -806,7 +547,7 @@ IPackTable
             return Efl.IPackTableConcrete.efl_pack_table_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_table_position_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  out int col,  out int row,  out int colspan,  out int rowspan);
@@ -819,13 +560,13 @@ IPackTable
         private static bool table_position_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, out int col, out int row, out int colspan, out int rowspan)
         {
             Eina.Log.Debug("function efl_pack_table_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         col = default(int);        row = default(int);        colspan = default(int);        rowspan = default(int);                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).GetTablePosition(subobj, out col, out row, out colspan, out rowspan);
+                    _ret_var = ((IPackTable)ws.Target).GetTablePosition(subobj, out col, out row, out colspan, out rowspan);
                 }
                 catch (Exception e)
                 {
@@ -855,13 +596,13 @@ IPackTable
         private static void table_size_get(System.IntPtr obj, System.IntPtr pd, out int cols, out int rows)
         {
             Eina.Log.Debug("function efl_pack_table_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         cols = default(int);        rows = default(int);                            
                 try
                 {
-                    ((IPackTable)wrapper).GetTableSize(out cols, out rows);
+                    ((IPackTable)ws.Target).GetTableSize(out cols, out rows);
                 }
                 catch (Exception e)
                 {
@@ -890,13 +631,13 @@ IPackTable
         private static void table_size_set(System.IntPtr obj, System.IntPtr pd, int cols, int rows)
         {
             Eina.Log.Debug("function efl_pack_table_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IPackTable)wrapper).SetTableSize(cols, rows);
+                    ((IPackTable)ws.Target).SetTableSize(cols, rows);
                 }
                 catch (Exception e)
                 {
@@ -925,13 +666,13 @@ IPackTable
         private static int table_columns_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_table_columns_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).GetTableColumns();
+                    _ret_var = ((IPackTable)ws.Target).GetTableColumns();
                 }
                 catch (Exception e)
                 {
@@ -961,13 +702,13 @@ IPackTable
         private static void table_columns_set(System.IntPtr obj, System.IntPtr pd, int cols)
         {
             Eina.Log.Debug("function efl_pack_table_columns_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IPackTable)wrapper).SetTableColumns(cols);
+                    ((IPackTable)ws.Target).SetTableColumns(cols);
                 }
                 catch (Exception e)
                 {
@@ -996,13 +737,13 @@ IPackTable
         private static int table_rows_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_table_rows_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).GetTableRows();
+                    _ret_var = ((IPackTable)ws.Target).GetTableRows();
                 }
                 catch (Exception e)
                 {
@@ -1032,13 +773,13 @@ IPackTable
         private static void table_rows_set(System.IntPtr obj, System.IntPtr pd, int rows)
         {
             Eina.Log.Debug("function efl_pack_table_rows_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IPackTable)wrapper).SetTableRows(rows);
+                    ((IPackTable)ws.Target).SetTableRows(rows);
                 }
                 catch (Exception e)
                 {
@@ -1056,76 +797,6 @@ IPackTable
 
         private static efl_pack_table_rows_set_delegate efl_pack_table_rows_set_static_delegate;
 
-        
-        private delegate void efl_pack_table_direction_get_delegate(System.IntPtr obj, System.IntPtr pd,  out Efl.Ui.Dir primary,  out Efl.Ui.Dir secondary);
-
-        
-        public delegate void efl_pack_table_direction_get_api_delegate(System.IntPtr obj,  out Efl.Ui.Dir primary,  out Efl.Ui.Dir secondary);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_direction_get_api_delegate> efl_pack_table_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_direction_get_api_delegate>(Module, "efl_pack_table_direction_get");
-
-        private static void table_direction_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.Dir primary, out Efl.Ui.Dir secondary)
-        {
-            Eina.Log.Debug("function efl_pack_table_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        primary = default(Efl.Ui.Dir);        secondary = default(Efl.Ui.Dir);                            
-                try
-                {
-                    ((IPackTable)wrapper).GetTableDirection(out primary, out secondary);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_table_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out primary, out secondary);
-            }
-        }
-
-        private static efl_pack_table_direction_get_delegate efl_pack_table_direction_get_static_delegate;
-
-        
-        private delegate void efl_pack_table_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir primary,  Efl.Ui.Dir secondary);
-
-        
-        public delegate void efl_pack_table_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir primary,  Efl.Ui.Dir secondary);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_direction_set_api_delegate> efl_pack_table_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_direction_set_api_delegate>(Module, "efl_pack_table_direction_set");
-
-        private static void table_direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir primary, Efl.Ui.Dir secondary)
-        {
-            Eina.Log.Debug("function efl_pack_table_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((IPackTable)wrapper).SetTableDirection(primary, secondary);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_table_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), primary, secondary);
-            }
-        }
-
-        private static efl_pack_table_direction_set_delegate efl_pack_table_direction_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_table_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int col,  int row,  int colspan,  int rowspan);
 
@@ -1137,13 +808,13 @@ IPackTable
         private static bool pack_table(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int col, int row, int colspan, int rowspan)
         {
             Eina.Log.Debug("function efl_pack_table was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).PackTable(subobj, col, row, colspan, rowspan);
+                    _ret_var = ((IPackTable)ws.Target).PackTable(subobj, col, row, colspan, rowspan);
                 }
                 catch (Exception e)
                 {
@@ -1173,13 +844,13 @@ IPackTable
         private static System.IntPtr table_contents_get(System.IntPtr obj, System.IntPtr pd, int col, int row, bool below)
         {
             Eina.Log.Debug("function efl_pack_table_contents_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).GetTableContents(col, row, below);
+                    _ret_var = ((IPackTable)ws.Target).GetTableContents(col, row, below);
                 }
                 catch (Exception e)
                 {
@@ -1209,13 +880,13 @@ IPackTable
         private static Efl.Gfx.IEntity table_content_get(System.IntPtr obj, System.IntPtr pd, int col, int row)
         {
             Eina.Log.Debug("function efl_pack_table_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).GetTableContent(col, row);
+                    _ret_var = ((IPackTable)ws.Target).GetTableContent(col, row);
                 }
                 catch (Exception e)
                 {
@@ -1245,13 +916,13 @@ IPackTable
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).ContentIterate();
+                    _ret_var = ((IPackTable)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -1281,13 +952,13 @@ IPackTable
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).ContentCount();
+                    _ret_var = ((IPackTable)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -1306,146 +977,6 @@ IPackTable
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((IPackTable)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((IPackTable)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((IPackTable)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((IPackTable)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -1457,13 +988,13 @@ IPackTable
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).ClearPack();
+                    _ret_var = ((IPackTable)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -1493,13 +1024,13 @@ IPackTable
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).UnpackAll();
+                    _ret_var = ((IPackTable)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -1529,13 +1060,13 @@ IPackTable
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).Unpack(subobj);
+                    _ret_var = ((IPackTable)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1565,13 +1096,13 @@ IPackTable
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPackTable)wrapper).Pack(subobj);
+                    _ret_var = ((IPackTable)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1590,7 +1121,7 @@ IPackTable
 
         private static efl_pack_delegate efl_pack_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_page_indicator.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_page_indicator.eo.cs
deleted file mode 100644 (file)
index d320c12..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-#pragma warning disable CS1591
-using System;
-using System.Runtime.InteropServices;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.ComponentModel;
-namespace Efl {
-
-namespace Page {
-
-/// <summary>Page indicator
-/// Page indicator is used with <see cref="Efl.Ui.Pager"/>. It is located on the top layer of pager widget and helps users to know the number of pages and the current page&apos;s index without scrolling.</summary>
-[Efl.Page.Indicator.NativeMethods]
-public class Indicator : Efl.Object, Efl.Eo.IWrapper
-{
-    ///<summary>Pointer to the native class description.</summary>
-    public override System.IntPtr NativeClass
-    {
-        get
-        {
-            if (((object)this).GetType() == typeof(Indicator))
-            {
-                return GetEflClassStatic();
-            }
-            else
-            {
-                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
-            }
-        }
-    }
-
-    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
-        efl_page_indicator_class_get();
-    /// <summary>Initializes a new instance of the <see cref="Indicator"/> class.</summary>
-    /// <param name="parent">Parent instance.</param>
-    public Indicator(Efl.Object parent= null
-            ) : base(efl_page_indicator_class_get(), typeof(Indicator), parent)
-    {
-        FinishInstantiation();
-    }
-
-    /// <summary>Initializes a new instance of the <see cref="Indicator"/> class.
-    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
-    /// <param name="raw">The native pointer to be wrapped.</param>
-    protected Indicator(System.IntPtr raw) : base(raw)
-    {
-            }
-
-    /// <summary>Initializes a new instance of the <see cref="Indicator"/> class.
-    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
-    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
-    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
-    /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected Indicator(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
-    {
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>set object</summary>
-    /// <param name="pager">pager object</param>
-    /// <param name="group">a dummy object for layer adjustment</param>
-    virtual public void Bind(Efl.Ui.Pager pager, Efl.Canvas.Group group) {
-                                                         Efl.Page.Indicator.NativeMethods.efl_page_indicator_bind_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pager, group);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    private static IntPtr GetEflClassStatic()
-    {
-        return Efl.Page.Indicator.efl_page_indicator_class_get();
-    }
-    /// <summary>Wrapper for native methods and virtual method delegates.
-    /// For internal use by generated code only.</summary>
-    public new class NativeMethods : Efl.Object.NativeMethods
-    {
-        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
-        /// <summary>Gets the list of Eo operations to override.</summary>
-        /// <returns>The list of Eo operations to be overload.</returns>
-        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
-        {
-            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
-            var methods = Efl.Eo.Globals.GetUserMethods(type);
-
-            if (efl_page_indicator_bind_static_delegate == null)
-            {
-                efl_page_indicator_bind_static_delegate = new efl_page_indicator_bind_delegate(bind);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "Bind") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_page_indicator_bind"), func = Marshal.GetFunctionPointerForDelegate(efl_page_indicator_bind_static_delegate) });
-            }
-
-            descs.AddRange(base.GetEoOps(type));
-            return descs;
-        }
-        /// <summary>Returns the Eo class for the native methods of this class.</summary>
-        /// <returns>The native class pointer.</returns>
-        public override IntPtr GetEflClass()
-        {
-            return Efl.Page.Indicator.efl_page_indicator_class_get();
-        }
-
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        
-        private delegate void efl_page_indicator_bind_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Pager pager, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Group group);
-
-        
-        public delegate void efl_page_indicator_bind_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Pager pager, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Group group);
-
-        public static Efl.Eo.FunctionWrapper<efl_page_indicator_bind_api_delegate> efl_page_indicator_bind_ptr = new Efl.Eo.FunctionWrapper<efl_page_indicator_bind_api_delegate>(Module, "efl_page_indicator_bind");
-
-        private static void bind(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Pager pager, Efl.Canvas.Group group)
-        {
-            Eina.Log.Debug("function efl_page_indicator_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((Indicator)wrapper).Bind(pager, group);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_page_indicator_bind_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pager, group);
-            }
-        }
-
-        private static efl_page_indicator_bind_delegate efl_page_indicator_bind_static_delegate;
-
-        #pragma warning restore CA1707, SA1300, SA1600
-
-}
-}
-}
-
-}
-
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_page_transition.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_page_transition.eo.cs
deleted file mode 100644 (file)
index 2df8354..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-#pragma warning disable CS1591
-using System;
-using System.Runtime.InteropServices;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.ComponentModel;
-namespace Efl {
-
-namespace Page {
-
-/// <summary>Page transition for <see cref="Efl.Ui.Pager"/>
-/// A page transition is essential to <see cref="Efl.Ui.Pager"/> object and invoked whenever pages are rearranged or scrolled (see <see cref="Efl.Ui.Pager"/>).</summary>
-[Efl.Page.Transition.NativeMethods]
-public class Transition : Efl.Object, Efl.Eo.IWrapper
-{
-    ///<summary>Pointer to the native class description.</summary>
-    public override System.IntPtr NativeClass
-    {
-        get
-        {
-            if (((object)this).GetType() == typeof(Transition))
-            {
-                return GetEflClassStatic();
-            }
-            else
-            {
-                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
-            }
-        }
-    }
-
-    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
-        efl_page_transition_class_get();
-    /// <summary>Initializes a new instance of the <see cref="Transition"/> class.</summary>
-    /// <param name="parent">Parent instance.</param>
-    public Transition(Efl.Object parent= null
-            ) : base(efl_page_transition_class_get(), typeof(Transition), parent)
-    {
-        FinishInstantiation();
-    }
-
-    /// <summary>Initializes a new instance of the <see cref="Transition"/> class.
-    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
-    /// <param name="raw">The native pointer to be wrapped.</param>
-    protected Transition(System.IntPtr raw) : base(raw)
-    {
-            }
-
-    /// <summary>Initializes a new instance of the <see cref="Transition"/> class.
-    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
-    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
-    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
-    /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected Transition(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
-    {
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>set object</summary>
-    /// <param name="pager">pager object</param>
-    /// <param name="group">a dummy object for layer adjustment</param>
-    virtual public void Bind(Efl.Ui.Pager pager, Efl.Canvas.Group group) {
-                                                         Efl.Page.Transition.NativeMethods.efl_page_transition_bind_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pager, group);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    private static IntPtr GetEflClassStatic()
-    {
-        return Efl.Page.Transition.efl_page_transition_class_get();
-    }
-    /// <summary>Wrapper for native methods and virtual method delegates.
-    /// For internal use by generated code only.</summary>
-    public new class NativeMethods : Efl.Object.NativeMethods
-    {
-        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
-        /// <summary>Gets the list of Eo operations to override.</summary>
-        /// <returns>The list of Eo operations to be overload.</returns>
-        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
-        {
-            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
-            var methods = Efl.Eo.Globals.GetUserMethods(type);
-
-            if (efl_page_transition_bind_static_delegate == null)
-            {
-                efl_page_transition_bind_static_delegate = new efl_page_transition_bind_delegate(bind);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "Bind") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_page_transition_bind"), func = Marshal.GetFunctionPointerForDelegate(efl_page_transition_bind_static_delegate) });
-            }
-
-            descs.AddRange(base.GetEoOps(type));
-            return descs;
-        }
-        /// <summary>Returns the Eo class for the native methods of this class.</summary>
-        /// <returns>The native class pointer.</returns>
-        public override IntPtr GetEflClass()
-        {
-            return Efl.Page.Transition.efl_page_transition_class_get();
-        }
-
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        
-        private delegate void efl_page_transition_bind_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Pager pager, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Group group);
-
-        
-        public delegate void efl_page_transition_bind_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Pager pager, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Group group);
-
-        public static Efl.Eo.FunctionWrapper<efl_page_transition_bind_api_delegate> efl_page_transition_bind_ptr = new Efl.Eo.FunctionWrapper<efl_page_transition_bind_api_delegate>(Module, "efl_page_transition_bind");
-
-        private static void bind(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Pager pager, Efl.Canvas.Group group)
-        {
-            Eina.Log.Debug("function efl_page_transition_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((Transition)wrapper).Bind(pager, group);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_page_transition_bind_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pager, group);
-            }
-        }
-
-        private static efl_page_transition_bind_delegate efl_page_transition_bind_static_delegate;
-
-        #pragma warning restore CA1707, SA1300, SA1600
-
-}
-}
-}
-
-}
-
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_page_transition_scroll.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_page_transition_scroll.eo.cs
deleted file mode 100644 (file)
index 2e5a450..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-#pragma warning disable CS1591
-using System;
-using System.Runtime.InteropServices;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.ComponentModel;
-namespace Efl {
-
-namespace Page {
-
-/// <summary>Page transition for <see cref="Efl.Ui.Pager"/>
-/// With this type of transition, pages are arranged linearly and move parallel to the screen by scrolling. The current page is displayed at center, and previous and next pages might be displayed optionally.</summary>
-[Efl.Page.TransitionScroll.NativeMethods]
-public class TransitionScroll : Efl.Page.Transition, Efl.Eo.IWrapper
-{
-    ///<summary>Pointer to the native class description.</summary>
-    public override System.IntPtr NativeClass
-    {
-        get
-        {
-            if (((object)this).GetType() == typeof(TransitionScroll))
-            {
-                return GetEflClassStatic();
-            }
-            else
-            {
-                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
-            }
-        }
-    }
-
-    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
-        efl_page_transition_scroll_class_get();
-    /// <summary>Initializes a new instance of the <see cref="TransitionScroll"/> class.</summary>
-    /// <param name="parent">Parent instance.</param>
-    public TransitionScroll(Efl.Object parent= null
-            ) : base(efl_page_transition_scroll_class_get(), typeof(TransitionScroll), parent)
-    {
-        FinishInstantiation();
-    }
-
-    /// <summary>Initializes a new instance of the <see cref="TransitionScroll"/> class.
-    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
-    /// <param name="raw">The native pointer to be wrapped.</param>
-    protected TransitionScroll(System.IntPtr raw) : base(raw)
-    {
-            }
-
-    /// <summary>Initializes a new instance of the <see cref="TransitionScroll"/> class.
-    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
-    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
-    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
-    /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected TransitionScroll(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
-    {
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>The number of pages displayed on each side of the current page</summary>
-    virtual public int GetSidePageNum() {
-         var _ret_var = Efl.Page.TransitionScroll.NativeMethods.efl_page_transition_scroll_side_page_num_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>The number of pages displayed on each side of the current page</summary>
-    virtual public void SetSidePageNum(int side_page_num) {
-                                 Efl.Page.TransitionScroll.NativeMethods.efl_page_transition_scroll_side_page_num_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),side_page_num);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>The number of pages displayed on each side of the current page</summary>
-    public int SidePageNum {
-        get { return GetSidePageNum(); }
-        set { SetSidePageNum(value); }
-    }
-    private static IntPtr GetEflClassStatic()
-    {
-        return Efl.Page.TransitionScroll.efl_page_transition_scroll_class_get();
-    }
-    /// <summary>Wrapper for native methods and virtual method delegates.
-    /// For internal use by generated code only.</summary>
-    public new class NativeMethods : Efl.Page.Transition.NativeMethods
-    {
-        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
-        /// <summary>Gets the list of Eo operations to override.</summary>
-        /// <returns>The list of Eo operations to be overload.</returns>
-        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
-        {
-            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
-            var methods = Efl.Eo.Globals.GetUserMethods(type);
-
-            if (efl_page_transition_scroll_side_page_num_get_static_delegate == null)
-            {
-                efl_page_transition_scroll_side_page_num_get_static_delegate = new efl_page_transition_scroll_side_page_num_get_delegate(side_page_num_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetSidePageNum") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_page_transition_scroll_side_page_num_get"), func = Marshal.GetFunctionPointerForDelegate(efl_page_transition_scroll_side_page_num_get_static_delegate) });
-            }
-
-            if (efl_page_transition_scroll_side_page_num_set_static_delegate == null)
-            {
-                efl_page_transition_scroll_side_page_num_set_static_delegate = new efl_page_transition_scroll_side_page_num_set_delegate(side_page_num_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetSidePageNum") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_page_transition_scroll_side_page_num_set"), func = Marshal.GetFunctionPointerForDelegate(efl_page_transition_scroll_side_page_num_set_static_delegate) });
-            }
-
-            descs.AddRange(base.GetEoOps(type));
-            return descs;
-        }
-        /// <summary>Returns the Eo class for the native methods of this class.</summary>
-        /// <returns>The native class pointer.</returns>
-        public override IntPtr GetEflClass()
-        {
-            return Efl.Page.TransitionScroll.efl_page_transition_scroll_class_get();
-        }
-
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        
-        private delegate int efl_page_transition_scroll_side_page_num_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate int efl_page_transition_scroll_side_page_num_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_page_transition_scroll_side_page_num_get_api_delegate> efl_page_transition_scroll_side_page_num_get_ptr = new Efl.Eo.FunctionWrapper<efl_page_transition_scroll_side_page_num_get_api_delegate>(Module, "efl_page_transition_scroll_side_page_num_get");
-
-        private static int side_page_num_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_page_transition_scroll_side_page_num_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            int _ret_var = default(int);
-                try
-                {
-                    _ret_var = ((TransitionScroll)wrapper).GetSidePageNum();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_page_transition_scroll_side_page_num_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_page_transition_scroll_side_page_num_get_delegate efl_page_transition_scroll_side_page_num_get_static_delegate;
-
-        
-        private delegate void efl_page_transition_scroll_side_page_num_set_delegate(System.IntPtr obj, System.IntPtr pd,  int side_page_num);
-
-        
-        public delegate void efl_page_transition_scroll_side_page_num_set_api_delegate(System.IntPtr obj,  int side_page_num);
-
-        public static Efl.Eo.FunctionWrapper<efl_page_transition_scroll_side_page_num_set_api_delegate> efl_page_transition_scroll_side_page_num_set_ptr = new Efl.Eo.FunctionWrapper<efl_page_transition_scroll_side_page_num_set_api_delegate>(Module, "efl_page_transition_scroll_side_page_num_set");
-
-        private static void side_page_num_set(System.IntPtr obj, System.IntPtr pd, int side_page_num)
-        {
-            Eina.Log.Debug("function efl_page_transition_scroll_side_page_num_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((TransitionScroll)wrapper).SetSidePageNum(side_page_num);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_page_transition_scroll_side_page_num_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), side_page_num);
-            }
-        }
-
-        private static efl_page_transition_scroll_side_page_num_set_delegate efl_page_transition_scroll_side_page_num_set_static_delegate;
-
-        #pragma warning restore CA1707, SA1300, SA1600
-
-}
-}
-}
-
-}
-
index 43f098c..affedb7 100644 (file)
@@ -47,13 +47,13 @@ Efl.Object GetPart(System.String name);
 /// 
 /// part = ref(part(obj, &quot;part&quot;)) func1(part, args) func2(part, args) func3(part, args) unref(part)
 /// (Since EFL 1.22)</summary>
-sealed public class IPartConcrete : 
-
-IPart
+sealed public class IPartConcrete :
+    Efl.Eo.EoWrapper
+    , IPart
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -68,86 +68,12 @@ IPart
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_part_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IPart"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPartConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPartConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IPartConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Get a proxy object referring to a part of an object.
@@ -194,7 +120,7 @@ IPart
             return Efl.IPartConcrete.efl_part_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Object efl_part_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
@@ -207,13 +133,13 @@ IPart
         private static Efl.Object part_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_part_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((IPart)wrapper).GetPart(name);
+                    _ret_var = ((IPart)ws.Target).GetPart(name);
                 }
                 catch (Exception e)
                 {
@@ -232,7 +158,7 @@ IPart
 
         private static efl_part_get_delegate efl_part_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 1f78581..24aee94 100644 (file)
@@ -20,27 +20,27 @@ double GetLength();
 /// <returns><c>true</c> if seekable.</returns>
 bool GetSeekable();
                 /// <summary>Get the length of play for the media file.</summary>
-/// <value>The length of the stream in seconds.</value>
+    /// <value>The length of the stream in seconds.</value>
     double Length {
         get ;
     }
-        bool Playable {
+    bool Playable {
         get ;
     }
     /// <summary>Get whether the media file is seekable.</summary>
-/// <value><c>true</c> if seekable.</value>
+    /// <value><c>true</c> if seekable.</value>
     bool Seekable {
         get ;
     }
 }
 /// <summary>Efl media playable interface</summary>
-sealed public class IPlayableConcrete : 
-
-IPlayable
+sealed public class IPlayableConcrete :
+    Efl.Eo.EoWrapper
+    , IPlayable
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -55,86 +55,12 @@ IPlayable
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_playable_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IPlayable"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPlayableConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPlayableConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IPlayableConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Get the length of play for the media file.</summary>
@@ -157,15 +83,15 @@ IPlayable
         return _ret_var;
  }
     /// <summary>Get the length of play for the media file.</summary>
-/// <value>The length of the stream in seconds.</value>
+    /// <value>The length of the stream in seconds.</value>
     public double Length {
         get { return GetLength(); }
     }
-        public bool Playable {
+    public bool Playable {
         get { return GetPlayable(); }
     }
     /// <summary>Get whether the media file is seekable.</summary>
-/// <value><c>true</c> if seekable.</value>
+    /// <value><c>true</c> if seekable.</value>
     public bool Seekable {
         get { return GetSeekable(); }
     }
@@ -224,7 +150,7 @@ IPlayable
             return Efl.IPlayableConcrete.efl_playable_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_playable_length_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -237,13 +163,13 @@ IPlayable
         private static double length_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_playable_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IPlayable)wrapper).GetLength();
+                    _ret_var = ((IPlayable)ws.Target).GetLength();
                 }
                 catch (Exception e)
                 {
@@ -273,13 +199,13 @@ IPlayable
         private static bool playable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_playable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPlayable)wrapper).GetPlayable();
+                    _ret_var = ((IPlayable)ws.Target).GetPlayable();
                 }
                 catch (Exception e)
                 {
@@ -309,13 +235,13 @@ IPlayable
         private static bool seekable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_playable_seekable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPlayable)wrapper).GetSeekable();
+                    _ret_var = ((IPlayable)ws.Target).GetSeekable();
                 }
                 catch (Exception e)
                 {
@@ -334,7 +260,7 @@ IPlayable
 
         private static efl_playable_seekable_get_delegate efl_playable_seekable_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 9fd3d98..0c77173 100644 (file)
@@ -67,68 +67,68 @@ void Start();
     /// <summary>Stop playable object.</summary>
 void Stop();
                                                                     /// <summary>Whether or not the playable can be played.</summary>
-/// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
     bool Playable {
         get ;
     }
     /// <summary>Get play/pause state of the media file.</summary>
-/// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
+    /// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
     bool Play {
         get ;
         set ;
     }
     /// <summary>Get the position in the media file.
-/// The position is returned as the number of seconds since the beginning of the media file.</summary>
-/// <value>The position (in seconds).</value>
+    /// The position is returned as the number of seconds since the beginning of the media file.</summary>
+    /// <value>The position (in seconds).</value>
     double Pos {
         get ;
         set ;
     }
     /// <summary>Get how much of the file has been played.
-/// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
-/// <value>The progress within the [0, 1] range.</value>
+    /// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
+    /// <value>The progress within the [0, 1] range.</value>
     double Progress {
         get ;
     }
     /// <summary>Control the play speed of the media file.
-/// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
-/// <value>The play speed in the [0, infinity) range.</value>
+    /// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
+    /// <value>The play speed in the [0, infinity) range.</value>
     double PlaySpeed {
         get ;
         set ;
     }
     /// <summary>Control the audio volume.
-/// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
-/// <value>The volume level</value>
+    /// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
+    /// <value>The volume level</value>
     double Volume {
         get ;
         set ;
     }
     /// <summary>This property controls the audio mute state.</summary>
-/// <value>The mute state. <c>true</c> or <c>false</c>.</value>
+    /// <value>The mute state. <c>true</c> or <c>false</c>.</value>
     bool Mute {
         get ;
         set ;
     }
     /// <summary>Get the length of play for the media file.</summary>
-/// <value>The length of the stream in seconds.</value>
+    /// <value>The length of the stream in seconds.</value>
     double Length {
         get ;
     }
     /// <summary>Get whether the media file is seekable.</summary>
-/// <value><c>true</c> if seekable.</value>
+    /// <value><c>true</c> if seekable.</value>
     bool Seekable {
         get ;
     }
 }
 /// <summary>Efl media player interface</summary>
-sealed public class IPlayerConcrete : 
-
-IPlayer
+sealed public class IPlayerConcrete :
+    Efl.Eo.EoWrapper
+    , IPlayer
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -143,86 +143,12 @@ IPlayer
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_player_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IPlayer"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPlayerConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPlayerConcrete()
+    private IPlayerConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Whether or not the playable can be played.</summary>
@@ -337,56 +263,56 @@ IPlayer
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Whether or not the playable can be played.</summary>
-/// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
     public bool Playable {
         get { return GetPlayable(); }
     }
     /// <summary>Get play/pause state of the media file.</summary>
-/// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
+    /// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
     public bool Play {
         get { return GetPlay(); }
         set { SetPlay(value); }
     }
     /// <summary>Get the position in the media file.
-/// The position is returned as the number of seconds since the beginning of the media file.</summary>
-/// <value>The position (in seconds).</value>
+    /// The position is returned as the number of seconds since the beginning of the media file.</summary>
+    /// <value>The position (in seconds).</value>
     public double Pos {
         get { return GetPos(); }
         set { SetPos(value); }
     }
     /// <summary>Get how much of the file has been played.
-/// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
-/// <value>The progress within the [0, 1] range.</value>
+    /// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
+    /// <value>The progress within the [0, 1] range.</value>
     public double Progress {
         get { return GetProgress(); }
     }
     /// <summary>Control the play speed of the media file.
-/// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
-/// <value>The play speed in the [0, infinity) range.</value>
+    /// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
+    /// <value>The play speed in the [0, infinity) range.</value>
     public double PlaySpeed {
         get { return GetPlaySpeed(); }
         set { SetPlaySpeed(value); }
     }
     /// <summary>Control the audio volume.
-/// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
-/// <value>The volume level</value>
+    /// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
+    /// <value>The volume level</value>
     public double Volume {
         get { return GetVolume(); }
         set { SetVolume(value); }
     }
     /// <summary>This property controls the audio mute state.</summary>
-/// <value>The mute state. <c>true</c> or <c>false</c>.</value>
+    /// <value>The mute state. <c>true</c> or <c>false</c>.</value>
     public bool Mute {
         get { return GetMute(); }
         set { SetMute(value); }
     }
     /// <summary>Get the length of play for the media file.</summary>
-/// <value>The length of the stream in seconds.</value>
+    /// <value>The length of the stream in seconds.</value>
     public double Length {
         get { return GetLength(); }
     }
     /// <summary>Get whether the media file is seekable.</summary>
-/// <value><c>true</c> if seekable.</value>
+    /// <value><c>true</c> if seekable.</value>
     public bool Seekable {
         get { return GetSeekable(); }
     }
@@ -575,7 +501,7 @@ IPlayer
             return Efl.IPlayerConcrete.efl_player_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_player_playable_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -588,13 +514,13 @@ IPlayer
         private static bool playable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_playable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPlayer)wrapper).GetPlayable();
+                    _ret_var = ((IPlayer)ws.Target).GetPlayable();
                 }
                 catch (Exception e)
                 {
@@ -624,13 +550,13 @@ IPlayer
         private static bool play_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_play_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPlayer)wrapper).GetPlay();
+                    _ret_var = ((IPlayer)ws.Target).GetPlay();
                 }
                 catch (Exception e)
                 {
@@ -660,13 +586,13 @@ IPlayer
         private static void play_set(System.IntPtr obj, System.IntPtr pd, bool play)
         {
             Eina.Log.Debug("function efl_player_play_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IPlayer)wrapper).SetPlay(play);
+                    ((IPlayer)ws.Target).SetPlay(play);
                 }
                 catch (Exception e)
                 {
@@ -695,13 +621,13 @@ IPlayer
         private static double pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IPlayer)wrapper).GetPos();
+                    _ret_var = ((IPlayer)ws.Target).GetPos();
                 }
                 catch (Exception e)
                 {
@@ -731,13 +657,13 @@ IPlayer
         private static void pos_set(System.IntPtr obj, System.IntPtr pd, double sec)
         {
             Eina.Log.Debug("function efl_player_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IPlayer)wrapper).SetPos(sec);
+                    ((IPlayer)ws.Target).SetPos(sec);
                 }
                 catch (Exception e)
                 {
@@ -766,13 +692,13 @@ IPlayer
         private static double progress_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_progress_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IPlayer)wrapper).GetProgress();
+                    _ret_var = ((IPlayer)ws.Target).GetProgress();
                 }
                 catch (Exception e)
                 {
@@ -802,13 +728,13 @@ IPlayer
         private static double play_speed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_play_speed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IPlayer)wrapper).GetPlaySpeed();
+                    _ret_var = ((IPlayer)ws.Target).GetPlaySpeed();
                 }
                 catch (Exception e)
                 {
@@ -838,13 +764,13 @@ IPlayer
         private static void play_speed_set(System.IntPtr obj, System.IntPtr pd, double speed)
         {
             Eina.Log.Debug("function efl_player_play_speed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IPlayer)wrapper).SetPlaySpeed(speed);
+                    ((IPlayer)ws.Target).SetPlaySpeed(speed);
                 }
                 catch (Exception e)
                 {
@@ -873,13 +799,13 @@ IPlayer
         private static double volume_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_volume_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IPlayer)wrapper).GetVolume();
+                    _ret_var = ((IPlayer)ws.Target).GetVolume();
                 }
                 catch (Exception e)
                 {
@@ -909,13 +835,13 @@ IPlayer
         private static void volume_set(System.IntPtr obj, System.IntPtr pd, double volume)
         {
             Eina.Log.Debug("function efl_player_volume_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IPlayer)wrapper).SetVolume(volume);
+                    ((IPlayer)ws.Target).SetVolume(volume);
                 }
                 catch (Exception e)
                 {
@@ -944,13 +870,13 @@ IPlayer
         private static bool mute_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_mute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPlayer)wrapper).GetMute();
+                    _ret_var = ((IPlayer)ws.Target).GetMute();
                 }
                 catch (Exception e)
                 {
@@ -980,13 +906,13 @@ IPlayer
         private static void mute_set(System.IntPtr obj, System.IntPtr pd, bool mute)
         {
             Eina.Log.Debug("function efl_player_mute_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IPlayer)wrapper).SetMute(mute);
+                    ((IPlayer)ws.Target).SetMute(mute);
                 }
                 catch (Exception e)
                 {
@@ -1015,13 +941,13 @@ IPlayer
         private static double length_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IPlayer)wrapper).GetLength();
+                    _ret_var = ((IPlayer)ws.Target).GetLength();
                 }
                 catch (Exception e)
                 {
@@ -1051,13 +977,13 @@ IPlayer
         private static bool seekable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_seekable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IPlayer)wrapper).GetSeekable();
+                    _ret_var = ((IPlayer)ws.Target).GetSeekable();
                 }
                 catch (Exception e)
                 {
@@ -1087,13 +1013,13 @@ IPlayer
         private static void start(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IPlayer)wrapper).Start();
+                    ((IPlayer)ws.Target).Start();
                 }
                 catch (Exception e)
                 {
@@ -1122,13 +1048,13 @@ IPlayer
         private static void stop(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_stop was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IPlayer)wrapper).Stop();
+                    ((IPlayer)ws.Target).Stop();
                 }
                 catch (Exception e)
                 {
@@ -1146,7 +1072,7 @@ IPlayer
 
         private static efl_player_stop_delegate efl_player_stop_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 657228f..641539a 100644 (file)
@@ -36,38 +36,38 @@ int GetScreenRotation();
 /// <param name="ydpi">Vertical DPI.</param>
 void GetScreenDpi(out int xdpi, out int ydpi);
                     /// <summary>Get screen size (in pixels) for the screen.
-/// Note that on some display systems this information is not available and a value of 0x0 will be returned.
-/// (Since EFL 1.22)</summary>
-/// <value>The screen size in pixels.</value>
+    /// Note that on some display systems this information is not available and a value of 0x0 will be returned.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The screen size in pixels.</value>
     Eina.Size2D ScreenSizeInPixels {
         get ;
     }
     /// <summary>Get screen scaling factor.
-/// This is the factor by which window contents will be scaled on the screen.
-/// 
-/// Note that on some display systems this information is not available and a value of 1.0 will be returned.
-/// (Since EFL 1.22)</summary>
-/// <value>The screen scaling factor.</value>
+    /// This is the factor by which window contents will be scaled on the screen.
+    /// 
+    /// Note that on some display systems this information is not available and a value of 1.0 will be returned.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The screen scaling factor.</value>
     float ScreenScaleFactor {
         get ;
     }
     /// <summary>Get the rotation of the screen.
-/// Most engines only return multiples of 90.
-/// (Since EFL 1.22)</summary>
-/// <value>Screen rotation in degrees.</value>
+    /// Most engines only return multiples of 90.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Screen rotation in degrees.</value>
     int ScreenRotation {
         get ;
     }
 }
 /// <summary>Efl screen interface
 /// (Since EFL 1.22)</summary>
-sealed public class IScreenConcrete : 
-
-IScreen
+sealed public class IScreenConcrete :
+    Efl.Eo.EoWrapper
+    , IScreen
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -82,86 +82,12 @@ IScreen
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_screen_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IScreen"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IScreenConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IScreenConcrete()
+    private IScreenConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Get screen size (in pixels) for the screen.
@@ -202,25 +128,25 @@ IScreen
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Get screen size (in pixels) for the screen.
-/// Note that on some display systems this information is not available and a value of 0x0 will be returned.
-/// (Since EFL 1.22)</summary>
-/// <value>The screen size in pixels.</value>
+    /// Note that on some display systems this information is not available and a value of 0x0 will be returned.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The screen size in pixels.</value>
     public Eina.Size2D ScreenSizeInPixels {
         get { return GetScreenSizeInPixels(); }
     }
     /// <summary>Get screen scaling factor.
-/// This is the factor by which window contents will be scaled on the screen.
-/// 
-/// Note that on some display systems this information is not available and a value of 1.0 will be returned.
-/// (Since EFL 1.22)</summary>
-/// <value>The screen scaling factor.</value>
+    /// This is the factor by which window contents will be scaled on the screen.
+    /// 
+    /// Note that on some display systems this information is not available and a value of 1.0 will be returned.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The screen scaling factor.</value>
     public float ScreenScaleFactor {
         get { return GetScreenScaleFactor(); }
     }
     /// <summary>Get the rotation of the screen.
-/// Most engines only return multiples of 90.
-/// (Since EFL 1.22)</summary>
-/// <value>Screen rotation in degrees.</value>
+    /// Most engines only return multiples of 90.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Screen rotation in degrees.</value>
     public int ScreenRotation {
         get { return GetScreenRotation(); }
     }
@@ -289,7 +215,7 @@ IScreen
             return Efl.IScreenConcrete.efl_screen_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Size2D.NativeStruct efl_screen_size_in_pixels_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -302,13 +228,13 @@ IScreen
         private static Eina.Size2D.NativeStruct screen_size_in_pixels_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_screen_size_in_pixels_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IScreen)wrapper).GetScreenSizeInPixels();
+                    _ret_var = ((IScreen)ws.Target).GetScreenSizeInPixels();
                 }
                 catch (Exception e)
                 {
@@ -338,13 +264,13 @@ IScreen
         private static float screen_scale_factor_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_screen_scale_factor_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             float _ret_var = default(float);
                 try
                 {
-                    _ret_var = ((IScreen)wrapper).GetScreenScaleFactor();
+                    _ret_var = ((IScreen)ws.Target).GetScreenScaleFactor();
                 }
                 catch (Exception e)
                 {
@@ -374,13 +300,13 @@ IScreen
         private static int screen_rotation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_screen_rotation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IScreen)wrapper).GetScreenRotation();
+                    _ret_var = ((IScreen)ws.Target).GetScreenRotation();
                 }
                 catch (Exception e)
                 {
@@ -410,13 +336,13 @@ IScreen
         private static void screen_dpi_get(System.IntPtr obj, System.IntPtr pd, out int xdpi, out int ydpi)
         {
             Eina.Log.Debug("function efl_screen_dpi_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         xdpi = default(int);        ydpi = default(int);                            
                 try
                 {
-                    ((IScreen)wrapper).GetScreenDpi(out xdpi, out ydpi);
+                    ((IScreen)ws.Target).GetScreenDpi(out xdpi, out ydpi);
                 }
                 catch (Exception e)
                 {
@@ -434,7 +360,7 @@ IScreen
 
         private static efl_screen_dpi_get_delegate efl_screen_dpi_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 78f04ef..7ab71da 100644 (file)
@@ -19,7 +19,7 @@ public class SelectModelUnselectedEvt_Args : EventArgs {
 }
 /// <summary>Efl select model class</summary>
 [Efl.SelectModel.NativeMethods]
-public class SelectModel : Efl.BooleanModel, Efl.Eo.IWrapper
+public class SelectModel : Efl.BooleanModel
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -64,7 +64,7 @@ public class SelectModel : Efl.BooleanModel, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected SelectModel(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="SelectModel"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -75,46 +75,18 @@ public class SelectModel : Efl.BooleanModel, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     public event EventHandler<Efl.SelectModelSelectedEvt_Args> SelectedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.SelectModelSelectedEvt_Args args = new Efl.SelectModelSelectedEvt_Args();
+                        Efl.SelectModelSelectedEvt_Args args = new Efl.SelectModelSelectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -162,13 +134,12 @@ public class SelectModel : Efl.BooleanModel, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.SelectModelUnselectedEvt_Args args = new Efl.SelectModelUnselectedEvt_Args();
+                        Efl.SelectModelUnselectedEvt_Args args = new Efl.SelectModelUnselectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -233,9 +204,9 @@ public class SelectModel : Efl.BooleanModel, Efl.Eo.IWrapper
             return Efl.SelectModel.efl_select_model_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e33a83a..b07c7da 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 /// <summary>Efl sinusoidal interpolator class
 /// output = (1 - cos(input * Pi)) / 2;</summary>
 [Efl.SinusoidalInterpolator.NativeMethods]
-public class SinusoidalInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
+public class SinusoidalInterpolator : Efl.Object, Efl.IInterpolator
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -43,7 +43,7 @@ public class SinusoidalInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected SinusoidalInterpolator(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="SinusoidalInterpolator"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -54,33 +54,6 @@ public class SinusoidalInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Factor property</summary>
     /// <returns>Factor of the interpolation function.</returns>
     virtual public double GetFactor() {
@@ -103,7 +76,7 @@ public class SinusoidalInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
                         return _ret_var;
  }
     /// <summary>Factor property</summary>
-/// <value>Factor of the interpolation function.</value>
+    /// <value>Factor of the interpolation function.</value>
     public double Factor {
         get { return GetFactor(); }
         set { SetFactor(value); }
@@ -164,7 +137,7 @@ public class SinusoidalInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
             return Efl.SinusoidalInterpolator.efl_sinusoidal_interpolator_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_sinusoidal_interpolator_factor_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -177,13 +150,13 @@ public class SinusoidalInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
         private static double factor_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_sinusoidal_interpolator_factor_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((SinusoidalInterpolator)wrapper).GetFactor();
+                    _ret_var = ((SinusoidalInterpolator)ws.Target).GetFactor();
                 }
                 catch (Exception e)
                 {
@@ -213,13 +186,13 @@ public class SinusoidalInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
         private static void factor_set(System.IntPtr obj, System.IntPtr pd, double factor)
         {
             Eina.Log.Debug("function efl_sinusoidal_interpolator_factor_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((SinusoidalInterpolator)wrapper).SetFactor(factor);
+                    ((SinusoidalInterpolator)ws.Target).SetFactor(factor);
                 }
                 catch (Exception e)
                 {
@@ -248,13 +221,13 @@ public class SinusoidalInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
         private static double interpolate(System.IntPtr obj, System.IntPtr pd, double progress)
         {
             Eina.Log.Debug("function efl_interpolator_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((SinusoidalInterpolator)wrapper).Interpolate(progress);
+                    _ret_var = ((SinusoidalInterpolator)ws.Target).Interpolate(progress);
                 }
                 catch (Exception e)
                 {
@@ -273,7 +246,7 @@ public class SinusoidalInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpola
 
         private static efl_interpolator_interpolate_delegate efl_interpolator_interpolate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e8be01c..03e20bd 100644 (file)
@@ -9,7 +9,7 @@ namespace Efl {
 
 /// <summary>Efl spring interpolator class</summary>
 [Efl.SpringInterpolator.NativeMethods]
-public class SpringInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
+public class SpringInterpolator : Efl.Object, Efl.IInterpolator
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -42,7 +42,7 @@ public class SpringInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected SpringInterpolator(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="SpringInterpolator"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -53,33 +53,6 @@ public class SpringInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Factors property</summary>
     /// <param name="factor1">First factor of the interpolation function.</param>
     /// <param name="factor2">Second factor of the interpolation function.</param>
@@ -158,7 +131,7 @@ public class SpringInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
             return Efl.SpringInterpolator.efl_spring_interpolator_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_spring_interpolator_factors_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double factor1,  out double factor2);
@@ -171,13 +144,13 @@ public class SpringInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
         private static void factors_get(System.IntPtr obj, System.IntPtr pd, out double factor1, out double factor2)
         {
             Eina.Log.Debug("function efl_spring_interpolator_factors_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         factor1 = default(double);        factor2 = default(double);                            
                 try
                 {
-                    ((SpringInterpolator)wrapper).GetFactors(out factor1, out factor2);
+                    ((SpringInterpolator)ws.Target).GetFactors(out factor1, out factor2);
                 }
                 catch (Exception e)
                 {
@@ -206,13 +179,13 @@ public class SpringInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
         private static void factors_set(System.IntPtr obj, System.IntPtr pd, double factor1, double factor2)
         {
             Eina.Log.Debug("function efl_spring_interpolator_factors_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((SpringInterpolator)wrapper).SetFactors(factor1, factor2);
+                    ((SpringInterpolator)ws.Target).SetFactors(factor1, factor2);
                 }
                 catch (Exception e)
                 {
@@ -241,13 +214,13 @@ public class SpringInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
         private static double interpolate(System.IntPtr obj, System.IntPtr pd, double progress)
         {
             Eina.Log.Debug("function efl_interpolator_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((SpringInterpolator)wrapper).Interpolate(progress);
+                    _ret_var = ((SpringInterpolator)ws.Target).Interpolate(progress);
                 }
                 catch (Exception e)
                 {
@@ -266,7 +239,7 @@ public class SpringInterpolator : Efl.Object, Efl.Eo.IWrapper,Efl.IInterpolator
 
         private static efl_interpolator_interpolate_delegate efl_interpolator_interpolate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 881f55d..3507e51 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 /// <summary>No description supplied.
 /// (Since EFL 1.22)</summary>
 [Efl.Task.NativeMethods]
-public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
+public abstract class Task : Efl.LoopConsumer
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -43,7 +43,7 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Task(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class TaskRealized : Task
@@ -61,33 +61,6 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The priority of this task.
     /// (Since EFL 1.22)</summary>
     /// <returns>No description supplied.</returns>
@@ -136,21 +109,25 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
          Efl.Task.NativeMethods.efl_task_end_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
          }
+    /// <summary>Async wrapper for <see cref="Run" />.</summary>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> RunAsync( System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = Run();
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
     /// <summary>The priority of this task.
-/// (Since EFL 1.22)</summary>
-/// <value>No description supplied.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>No description supplied.</value>
     public Efl.TaskPriority Priority {
         get { return GetPriority(); }
         set { SetPriority(value); }
     }
     /// <summary>The final exit code of this task.
-/// (Since EFL 1.22)</summary>
-/// <value>No description supplied.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>No description supplied.</value>
     public int ExitCode {
         get { return GetExitCode(); }
     }
@@ -255,7 +232,7 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
             return Efl.Task.efl_task_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.TaskPriority efl_task_priority_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -268,13 +245,13 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static Efl.TaskPriority priority_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_task_priority_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TaskPriority _ret_var = default(Efl.TaskPriority);
                 try
                 {
-                    _ret_var = ((Task)wrapper).GetPriority();
+                    _ret_var = ((Task)ws.Target).GetPriority();
                 }
                 catch (Exception e)
                 {
@@ -304,13 +281,13 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static void priority_set(System.IntPtr obj, System.IntPtr pd, Efl.TaskPriority priority)
         {
             Eina.Log.Debug("function efl_task_priority_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Task)wrapper).SetPriority(priority);
+                    ((Task)ws.Target).SetPriority(priority);
                 }
                 catch (Exception e)
                 {
@@ -339,13 +316,13 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static int exit_code_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_task_exit_code_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Task)wrapper).GetExitCode();
+                    _ret_var = ((Task)ws.Target).GetExitCode();
                 }
                 catch (Exception e)
                 {
@@ -375,13 +352,13 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static Efl.TaskFlags flags_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_task_flags_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TaskFlags _ret_var = default(Efl.TaskFlags);
                 try
                 {
-                    _ret_var = ((Task)wrapper).GetFlags();
+                    _ret_var = ((Task)ws.Target).GetFlags();
                 }
                 catch (Exception e)
                 {
@@ -411,13 +388,13 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static void flags_set(System.IntPtr obj, System.IntPtr pd, Efl.TaskFlags flags)
         {
             Eina.Log.Debug("function efl_task_flags_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Task)wrapper).SetFlags(flags);
+                    ((Task)ws.Target).SetFlags(flags);
                 }
                 catch (Exception e)
                 {
@@ -446,13 +423,13 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static  Eina.Future run(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_task_run was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((Task)wrapper).Run();
+                    _ret_var = ((Task)ws.Target).Run();
                 }
                 catch (Exception e)
                 {
@@ -482,13 +459,13 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
         private static void end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_task_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Task)wrapper).End();
+                    ((Task)ws.Target).End();
                 }
                 catch (Exception e)
                 {
@@ -506,7 +483,7 @@ public abstract class Task : Efl.LoopConsumer, Efl.Eo.IWrapper
 
         private static efl_task_end_delegate efl_task_end_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 8d2a73b..ef3e90d 100644 (file)
@@ -28,13 +28,13 @@ void SetText(System.String text);
         }
 /// <summary>Efl text interface
 /// (Since EFL 1.22)</summary>
-sealed public class ITextConcrete : 
-
-IText
+sealed public class ITextConcrete :
+    Efl.Eo.EoWrapper
+    , IText
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -49,86 +49,12 @@ IText
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_text_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IText"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ITextConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Retrieves the text string currently being displayed by the given text object.
@@ -195,7 +121,7 @@ IText
             return Efl.ITextConcrete.efl_text_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_text_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -208,13 +134,13 @@ IText
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IText)wrapper).GetText();
+                    _ret_var = ((IText)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -244,13 +170,13 @@ IText
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IText)wrapper).SetText(text);
+                    ((IText)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -268,7 +194,7 @@ IText
 
         private static efl_text_set_delegate efl_text_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index bc0704b..2a8dca1 100644 (file)
@@ -73,13 +73,13 @@ bool GetItemGeometry(Efl.TextAnnotateAnnotation an, out int x, out int y, out in
 Efl.TextAnnotateAnnotation CursorItemInsert(Efl.TextCursorCursor cur, System.String item, System.String format);
                                         }
 /// <summary>Cursor API</summary>
-sealed public class ITextAnnotateConcrete : 
-
-ITextAnnotate
+sealed public class ITextAnnotateConcrete :
+    Efl.Eo.EoWrapper
+    , ITextAnnotate
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -94,86 +94,12 @@ ITextAnnotate
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_text_annotate_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ITextAnnotate"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextAnnotateConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextAnnotateConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ITextAnnotateConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>A new format for <c>annotation</c>.
@@ -399,7 +325,7 @@ ITextAnnotate
             return Efl.ITextAnnotateConcrete.efl_text_annotate_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_text_annotation_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextAnnotateAnnotation annotation);
@@ -412,13 +338,13 @@ ITextAnnotate
         private static System.String annotation_get(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation annotation)
         {
             Eina.Log.Debug("function efl_text_annotation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextAnnotate)wrapper).GetAnnotation(annotation);
+                    _ret_var = ((ITextAnnotate)ws.Target).GetAnnotation(annotation);
                 }
                 catch (Exception e)
                 {
@@ -448,13 +374,13 @@ ITextAnnotate
         private static bool annotation_set(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation annotation, System.String format)
         {
             Eina.Log.Debug("function efl_text_annotation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextAnnotate)wrapper).SetAnnotation(annotation, format);
+                    _ret_var = ((ITextAnnotate)ws.Target).SetAnnotation(annotation, format);
                 }
                 catch (Exception e)
                 {
@@ -484,13 +410,13 @@ ITextAnnotate
         private static Efl.TextAnnotateAnnotation cursor_item_annotation_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_item_annotation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.TextAnnotateAnnotation _ret_var = default(Efl.TextAnnotateAnnotation);
                 try
                 {
-                    _ret_var = ((ITextAnnotate)wrapper).GetCursorItemAnnotation(cur);
+                    _ret_var = ((ITextAnnotate)ws.Target).GetCursorItemAnnotation(cur);
                 }
                 catch (Exception e)
                 {
@@ -520,13 +446,13 @@ ITextAnnotate
         private static System.IntPtr range_annotations_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end)
         {
             Eina.Log.Debug("function efl_text_range_annotations_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Eina.Iterator<Efl.TextAnnotateAnnotation> _ret_var = default(Eina.Iterator<Efl.TextAnnotateAnnotation>);
                 try
                 {
-                    _ret_var = ((ITextAnnotate)wrapper).GetRangeAnnotations(start, end);
+                    _ret_var = ((ITextAnnotate)ws.Target).GetRangeAnnotations(start, end);
                 }
                 catch (Exception e)
                 {
@@ -556,13 +482,13 @@ ITextAnnotate
         private static Efl.TextAnnotateAnnotation annotation_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end, System.String format)
         {
             Eina.Log.Debug("function efl_text_annotation_insert was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.TextAnnotateAnnotation _ret_var = default(Efl.TextAnnotateAnnotation);
                 try
                 {
-                    _ret_var = ((ITextAnnotate)wrapper).AnnotationInsert(start, end, format);
+                    _ret_var = ((ITextAnnotate)ws.Target).AnnotationInsert(start, end, format);
                 }
                 catch (Exception e)
                 {
@@ -592,13 +518,13 @@ ITextAnnotate
         private static bool annotation_del(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation annotation)
         {
             Eina.Log.Debug("function efl_text_annotation_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextAnnotate)wrapper).DelAnnotation(annotation);
+                    _ret_var = ((ITextAnnotate)ws.Target).DelAnnotation(annotation);
                 }
                 catch (Exception e)
                 {
@@ -628,13 +554,13 @@ ITextAnnotate
         private static void annotation_positions_get(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation annotation, Efl.TextCursorCursor start, Efl.TextCursorCursor end)
         {
             Eina.Log.Debug("function efl_text_annotation_positions_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((ITextAnnotate)wrapper).GetAnnotationPositions(annotation, start, end);
+                    ((ITextAnnotate)ws.Target).GetAnnotationPositions(annotation, start, end);
                 }
                 catch (Exception e)
                 {
@@ -663,13 +589,13 @@ ITextAnnotate
         private static bool annotation_is_item(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation annotation)
         {
             Eina.Log.Debug("function efl_text_annotation_is_item was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextAnnotate)wrapper).AnnotationIsItem(annotation);
+                    _ret_var = ((ITextAnnotate)ws.Target).AnnotationIsItem(annotation);
                 }
                 catch (Exception e)
                 {
@@ -699,13 +625,13 @@ ITextAnnotate
         private static bool item_geometry_get(System.IntPtr obj, System.IntPtr pd, Efl.TextAnnotateAnnotation an, out int x, out int y, out int w, out int h)
         {
             Eina.Log.Debug("function efl_text_item_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         x = default(int);        y = default(int);        w = default(int);        h = default(int);                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextAnnotate)wrapper).GetItemGeometry(an, out x, out y, out w, out h);
+                    _ret_var = ((ITextAnnotate)ws.Target).GetItemGeometry(an, out x, out y, out w, out h);
                 }
                 catch (Exception e)
                 {
@@ -735,13 +661,13 @@ ITextAnnotate
         private static Efl.TextAnnotateAnnotation cursor_item_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, System.String item, System.String format)
         {
             Eina.Log.Debug("function efl_text_cursor_item_insert was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.TextAnnotateAnnotation _ret_var = default(Efl.TextAnnotateAnnotation);
                 try
                 {
-                    _ret_var = ((ITextAnnotate)wrapper).CursorItemInsert(cur, item, format);
+                    _ret_var = ((ITextAnnotate)ws.Target).CursorItemInsert(cur, item, format);
                 }
                 catch (Exception e)
                 {
@@ -760,7 +686,7 @@ ITextAnnotate
 
         private static efl_text_cursor_item_insert_delegate efl_text_cursor_item_insert_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 9830237..caa2497 100644 (file)
@@ -128,13 +128,13 @@ int CursorTextInsert(Efl.TextCursorCursor cur, System.String text);
 void CursorCharDelete(Efl.TextCursorCursor cur);
                                                                                                                     }
 /// <summary>Cursor API</summary>
-sealed public class ITextCursorConcrete : 
-
-ITextCursor
+sealed public class ITextCursorConcrete :
+    Efl.Eo.EoWrapper
+    , ITextCursor
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -149,86 +149,12 @@ ITextCursor
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_text_cursor_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ITextCursor"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextCursorConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextCursorConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ITextCursorConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>The object&apos;s main cursor.</summary>
@@ -755,7 +681,7 @@ ITextCursor
             return Efl.ITextCursorConcrete.efl_text_cursor_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.TextCursorCursor efl_text_cursor_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorGetType get_type);
@@ -768,13 +694,13 @@ ITextCursor
         private static Efl.TextCursorCursor text_cursor_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorGetType get_type)
         {
             Eina.Log.Debug("function efl_text_cursor_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.TextCursorCursor _ret_var = default(Efl.TextCursorCursor);
                 try
                 {
-                    _ret_var = ((ITextCursor)wrapper).GetTextCursor(get_type);
+                    _ret_var = ((ITextCursor)ws.Target).GetTextCursor(get_type);
                 }
                 catch (Exception e)
                 {
@@ -804,13 +730,13 @@ ITextCursor
         private static int cursor_position_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextCursor)wrapper).GetCursorPosition(cur);
+                    _ret_var = ((ITextCursor)ws.Target).GetCursorPosition(cur);
                 }
                 catch (Exception e)
                 {
@@ -840,13 +766,13 @@ ITextCursor
         private static void cursor_position_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int position)
         {
             Eina.Log.Debug("function efl_text_cursor_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ITextCursor)wrapper).SetCursorPosition(cur, position);
+                    ((ITextCursor)ws.Target).SetCursorPosition(cur, position);
                 }
                 catch (Exception e)
                 {
@@ -875,13 +801,13 @@ ITextCursor
         private static Eina.Unicode cursor_content_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Unicode _ret_var = default(Eina.Unicode);
                 try
                 {
-                    _ret_var = ((ITextCursor)wrapper).GetCursorContent(cur);
+                    _ret_var = ((ITextCursor)ws.Target).GetCursorContent(cur);
                 }
                 catch (Exception e)
                 {
@@ -911,13 +837,13 @@ ITextCursor
         private static bool cursor_geometry_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, Efl.TextCursorType ctype, out int cx, out int cy, out int cw, out int ch, out int cx2, out int cy2, out int cw2, out int ch2)
         {
             Eina.Log.Debug("function efl_text_cursor_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                         cx = default(int);        cy = default(int);        cw = default(int);        ch = default(int);        cx2 = default(int);        cy2 = default(int);        cw2 = default(int);        ch2 = default(int);                                                                                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextCursor)wrapper).GetCursorGeometry(cur, ctype, out cx, out cy, out cw, out ch, out cx2, out cy2, out cw2, out ch2);
+                    _ret_var = ((ITextCursor)ws.Target).GetCursorGeometry(cur, ctype, out cx, out cy, out cw, out ch, out cx2, out cy2, out cw2, out ch2);
                 }
                 catch (Exception e)
                 {
@@ -947,13 +873,13 @@ ITextCursor
         private static Efl.TextCursorCursor cursor_new(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_cursor_new was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextCursorCursor _ret_var = default(Efl.TextCursorCursor);
                 try
                 {
-                    _ret_var = ((ITextCursor)wrapper).NewCursor();
+                    _ret_var = ((ITextCursor)ws.Target).NewCursor();
                 }
                 catch (Exception e)
                 {
@@ -983,13 +909,13 @@ ITextCursor
         private static void cursor_free(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_free was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorFree(cur);
+                    ((ITextCursor)ws.Target).CursorFree(cur);
                 }
                 catch (Exception e)
                 {
@@ -1018,13 +944,13 @@ ITextCursor
         private static bool cursor_equal(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
         {
             Eina.Log.Debug("function efl_text_cursor_equal was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextCursor)wrapper).CursorEqual(cur1, cur2);
+                    _ret_var = ((ITextCursor)ws.Target).CursorEqual(cur1, cur2);
                 }
                 catch (Exception e)
                 {
@@ -1054,13 +980,13 @@ ITextCursor
         private static int cursor_compare(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
         {
             Eina.Log.Debug("function efl_text_cursor_compare was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextCursor)wrapper).CursorCompare(cur1, cur2);
+                    _ret_var = ((ITextCursor)ws.Target).CursorCompare(cur1, cur2);
                 }
                 catch (Exception e)
                 {
@@ -1090,13 +1016,13 @@ ITextCursor
         private static void cursor_copy(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor dst, Efl.TextCursorCursor src)
         {
             Eina.Log.Debug("function efl_text_cursor_copy was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ITextCursor)wrapper).CursorCopy(dst, src);
+                    ((ITextCursor)ws.Target).CursorCopy(dst, src);
                 }
                 catch (Exception e)
                 {
@@ -1125,13 +1051,13 @@ ITextCursor
         private static void cursor_char_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_char_next was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorCharNext(cur);
+                    ((ITextCursor)ws.Target).CursorCharNext(cur);
                 }
                 catch (Exception e)
                 {
@@ -1160,13 +1086,13 @@ ITextCursor
         private static void cursor_char_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_char_prev was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorCharPrev(cur);
+                    ((ITextCursor)ws.Target).CursorCharPrev(cur);
                 }
                 catch (Exception e)
                 {
@@ -1195,13 +1121,13 @@ ITextCursor
         private static void cursor_cluster_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_cluster_next was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorClusterNext(cur);
+                    ((ITextCursor)ws.Target).CursorClusterNext(cur);
                 }
                 catch (Exception e)
                 {
@@ -1230,13 +1156,13 @@ ITextCursor
         private static void cursor_cluster_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_cluster_prev was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorClusterPrev(cur);
+                    ((ITextCursor)ws.Target).CursorClusterPrev(cur);
                 }
                 catch (Exception e)
                 {
@@ -1265,13 +1191,13 @@ ITextCursor
         private static void cursor_paragraph_char_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_char_first was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorParagraphCharFirst(cur);
+                    ((ITextCursor)ws.Target).CursorParagraphCharFirst(cur);
                 }
                 catch (Exception e)
                 {
@@ -1300,13 +1226,13 @@ ITextCursor
         private static void cursor_paragraph_char_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_char_last was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorParagraphCharLast(cur);
+                    ((ITextCursor)ws.Target).CursorParagraphCharLast(cur);
                 }
                 catch (Exception e)
                 {
@@ -1335,13 +1261,13 @@ ITextCursor
         private static void cursor_word_start(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_word_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorWordStart(cur);
+                    ((ITextCursor)ws.Target).CursorWordStart(cur);
                 }
                 catch (Exception e)
                 {
@@ -1370,13 +1296,13 @@ ITextCursor
         private static void cursor_word_end(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_word_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorWordEnd(cur);
+                    ((ITextCursor)ws.Target).CursorWordEnd(cur);
                 }
                 catch (Exception e)
                 {
@@ -1405,13 +1331,13 @@ ITextCursor
         private static void cursor_line_char_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_line_char_first was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorLineCharFirst(cur);
+                    ((ITextCursor)ws.Target).CursorLineCharFirst(cur);
                 }
                 catch (Exception e)
                 {
@@ -1440,13 +1366,13 @@ ITextCursor
         private static void cursor_line_char_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_line_char_last was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorLineCharLast(cur);
+                    ((ITextCursor)ws.Target).CursorLineCharLast(cur);
                 }
                 catch (Exception e)
                 {
@@ -1475,13 +1401,13 @@ ITextCursor
         private static void cursor_paragraph_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_first was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorParagraphFirst(cur);
+                    ((ITextCursor)ws.Target).CursorParagraphFirst(cur);
                 }
                 catch (Exception e)
                 {
@@ -1510,13 +1436,13 @@ ITextCursor
         private static void cursor_paragraph_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_last was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorParagraphLast(cur);
+                    ((ITextCursor)ws.Target).CursorParagraphLast(cur);
                 }
                 catch (Exception e)
                 {
@@ -1545,13 +1471,13 @@ ITextCursor
         private static void cursor_paragraph_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_next was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorParagraphNext(cur);
+                    ((ITextCursor)ws.Target).CursorParagraphNext(cur);
                 }
                 catch (Exception e)
                 {
@@ -1580,13 +1506,13 @@ ITextCursor
         private static void cursor_paragraph_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_prev was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorParagraphPrev(cur);
+                    ((ITextCursor)ws.Target).CursorParagraphPrev(cur);
                 }
                 catch (Exception e)
                 {
@@ -1615,13 +1541,13 @@ ITextCursor
         private static void cursor_line_jump_by(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int by)
         {
             Eina.Log.Debug("function efl_text_cursor_line_jump_by was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ITextCursor)wrapper).CursorLineJumpBy(cur, by);
+                    ((ITextCursor)ws.Target).CursorLineJumpBy(cur, by);
                 }
                 catch (Exception e)
                 {
@@ -1650,13 +1576,13 @@ ITextCursor
         private static void cursor_coord_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int x, int y)
         {
             Eina.Log.Debug("function efl_text_cursor_coord_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((ITextCursor)wrapper).SetCursorCoord(cur, x, y);
+                    ((ITextCursor)ws.Target).SetCursorCoord(cur, x, y);
                 }
                 catch (Exception e)
                 {
@@ -1685,13 +1611,13 @@ ITextCursor
         private static void cursor_cluster_coord_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int x, int y)
         {
             Eina.Log.Debug("function efl_text_cursor_cluster_coord_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((ITextCursor)wrapper).SetCursorClusterCoord(cur, x, y);
+                    ((ITextCursor)ws.Target).SetCursorClusterCoord(cur, x, y);
                 }
                 catch (Exception e)
                 {
@@ -1720,13 +1646,13 @@ ITextCursor
         private static int cursor_text_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, System.String text)
         {
             Eina.Log.Debug("function efl_text_cursor_text_insert was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextCursor)wrapper).CursorTextInsert(cur, text);
+                    _ret_var = ((ITextCursor)ws.Target).CursorTextInsert(cur, text);
                 }
                 catch (Exception e)
                 {
@@ -1756,13 +1682,13 @@ ITextCursor
         private static void cursor_char_delete(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_char_delete was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextCursor)wrapper).CursorCharDelete(cur);
+                    ((ITextCursor)ws.Target).CursorCharDelete(cur);
                 }
                 catch (Exception e)
                 {
@@ -1780,7 +1706,7 @@ ITextCursor
 
         private static efl_text_cursor_char_delete_delegate efl_text_cursor_char_delete_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 37b7a9b..0cd1f02 100644 (file)
@@ -85,63 +85,63 @@ Efl.TextFontBitmapScalable GetFontBitmapScalable();
 /// <param name="scalable">Scalable</param>
 void SetFontBitmapScalable(Efl.TextFontBitmapScalable scalable);
                                                                     /// <summary>Get the font file&apos;s path which is being used on a given text object.
-/// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
-/// <value>The font file&apos;s path.</value>
+    /// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
+    /// <value>The font file&apos;s path.</value>
     System.String FontSource {
         get ;
         set ;
     }
     /// <summary>Comma-separated list of font fallbacks
-/// Will be used in case the primary font isn&apos;t available.</summary>
-/// <value>Font name fallbacks</value>
+    /// Will be used in case the primary font isn&apos;t available.</summary>
+    /// <value>Font name fallbacks</value>
     System.String FontFallbacks {
         get ;
         set ;
     }
     /// <summary>Type of weight of the displayed font
-/// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
-/// <value>Font weight</value>
+    /// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
+    /// <value>Font weight</value>
     Efl.TextFontWeight FontWeight {
         get ;
         set ;
     }
     /// <summary>Type of slant of the displayed font
-/// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
-/// <value>Font slant</value>
+    /// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
+    /// <value>Font slant</value>
     Efl.TextFontSlant FontSlant {
         get ;
         set ;
     }
     /// <summary>Type of width of the displayed font
-/// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
-/// <value>Font width</value>
+    /// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
+    /// <value>Font width</value>
     Efl.TextFontWidth FontWidth {
         get ;
         set ;
     }
     /// <summary>Specific language of the displayed font
-/// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
-/// <value>Language</value>
+    /// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
+    /// <value>Language</value>
     System.String FontLang {
         get ;
         set ;
     }
     /// <summary>The bitmap fonts have fixed size glyphs for several available sizes. Basically, it is not scalable. But, it needs to be scalable for some use cases. (ex. colorful emoji fonts)
-/// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
-/// <value>Scalable</value>
+    /// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
+    /// <value>Scalable</value>
     Efl.TextFontBitmapScalable FontBitmapScalable {
         get ;
         set ;
     }
 }
 /// <summary>Font settings of the text</summary>
-sealed public class ITextFontConcrete : 
-
-ITextFont
+sealed public class ITextFontConcrete :
+    Efl.Eo.EoWrapper
+    , ITextFont
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -156,86 +156,12 @@ ITextFont
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_text_font_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ITextFont"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextFontConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextFontConcrete()
+    private ITextFontConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Retrieve the font family and size in use on a given text object.
@@ -366,50 +292,50 @@ ITextFont
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Get the font file&apos;s path which is being used on a given text object.
-/// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
-/// <value>The font file&apos;s path.</value>
+    /// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
+    /// <value>The font file&apos;s path.</value>
     public System.String FontSource {
         get { return GetFontSource(); }
         set { SetFontSource(value); }
     }
     /// <summary>Comma-separated list of font fallbacks
-/// Will be used in case the primary font isn&apos;t available.</summary>
-/// <value>Font name fallbacks</value>
+    /// Will be used in case the primary font isn&apos;t available.</summary>
+    /// <value>Font name fallbacks</value>
     public System.String FontFallbacks {
         get { return GetFontFallbacks(); }
         set { SetFontFallbacks(value); }
     }
     /// <summary>Type of weight of the displayed font
-/// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
-/// <value>Font weight</value>
+    /// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
+    /// <value>Font weight</value>
     public Efl.TextFontWeight FontWeight {
         get { return GetFontWeight(); }
         set { SetFontWeight(value); }
     }
     /// <summary>Type of slant of the displayed font
-/// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
-/// <value>Font slant</value>
+    /// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
+    /// <value>Font slant</value>
     public Efl.TextFontSlant FontSlant {
         get { return GetFontSlant(); }
         set { SetFontSlant(value); }
     }
     /// <summary>Type of width of the displayed font
-/// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
-/// <value>Font width</value>
+    /// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
+    /// <value>Font width</value>
     public Efl.TextFontWidth FontWidth {
         get { return GetFontWidth(); }
         set { SetFontWidth(value); }
     }
     /// <summary>Specific language of the displayed font
-/// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
-/// <value>Language</value>
+    /// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
+    /// <value>Language</value>
     public System.String FontLang {
         get { return GetFontLang(); }
         set { SetFontLang(value); }
     }
     /// <summary>The bitmap fonts have fixed size glyphs for several available sizes. Basically, it is not scalable. But, it needs to be scalable for some use cases. (ex. colorful emoji fonts)
-/// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
-/// <value>Scalable</value>
+    /// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
+    /// <value>Scalable</value>
     public Efl.TextFontBitmapScalable FontBitmapScalable {
         get { return GetFontBitmapScalable(); }
         set { SetFontBitmapScalable(value); }
@@ -599,7 +525,7 @@ ITextFont
             return Efl.ITextFontConcrete.efl_text_font_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_text_font_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String font,  out Efl.Font.Size size);
@@ -612,14 +538,14 @@ ITextFont
         private static void font_get(System.IntPtr obj, System.IntPtr pd, out System.String font, out Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_text_font_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         System.String _out_font = default(System.String);
         size = default(Efl.Font.Size);                            
                 try
                 {
-                    ((ITextFont)wrapper).GetFont(out _out_font, out size);
+                    ((ITextFont)ws.Target).GetFont(out _out_font, out size);
                 }
                 catch (Exception e)
                 {
@@ -649,13 +575,13 @@ ITextFont
         private static void font_set(System.IntPtr obj, System.IntPtr pd, System.String font, Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_text_font_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ITextFont)wrapper).SetFont(font, size);
+                    ((ITextFont)ws.Target).SetFont(font, size);
                 }
                 catch (Exception e)
                 {
@@ -684,13 +610,13 @@ ITextFont
         private static System.String font_source_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextFont)wrapper).GetFontSource();
+                    _ret_var = ((ITextFont)ws.Target).GetFontSource();
                 }
                 catch (Exception e)
                 {
@@ -720,13 +646,13 @@ ITextFont
         private static void font_source_set(System.IntPtr obj, System.IntPtr pd, System.String font_source)
         {
             Eina.Log.Debug("function efl_text_font_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFont)wrapper).SetFontSource(font_source);
+                    ((ITextFont)ws.Target).SetFontSource(font_source);
                 }
                 catch (Exception e)
                 {
@@ -755,13 +681,13 @@ ITextFont
         private static System.String font_fallbacks_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_fallbacks_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextFont)wrapper).GetFontFallbacks();
+                    _ret_var = ((ITextFont)ws.Target).GetFontFallbacks();
                 }
                 catch (Exception e)
                 {
@@ -791,13 +717,13 @@ ITextFont
         private static void font_fallbacks_set(System.IntPtr obj, System.IntPtr pd, System.String font_fallbacks)
         {
             Eina.Log.Debug("function efl_text_font_fallbacks_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFont)wrapper).SetFontFallbacks(font_fallbacks);
+                    ((ITextFont)ws.Target).SetFontFallbacks(font_fallbacks);
                 }
                 catch (Exception e)
                 {
@@ -826,13 +752,13 @@ ITextFont
         private static Efl.TextFontWeight font_weight_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_weight_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontWeight _ret_var = default(Efl.TextFontWeight);
                 try
                 {
-                    _ret_var = ((ITextFont)wrapper).GetFontWeight();
+                    _ret_var = ((ITextFont)ws.Target).GetFontWeight();
                 }
                 catch (Exception e)
                 {
@@ -862,13 +788,13 @@ ITextFont
         private static void font_weight_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontWeight font_weight)
         {
             Eina.Log.Debug("function efl_text_font_weight_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFont)wrapper).SetFontWeight(font_weight);
+                    ((ITextFont)ws.Target).SetFontWeight(font_weight);
                 }
                 catch (Exception e)
                 {
@@ -897,13 +823,13 @@ ITextFont
         private static Efl.TextFontSlant font_slant_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_slant_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontSlant _ret_var = default(Efl.TextFontSlant);
                 try
                 {
-                    _ret_var = ((ITextFont)wrapper).GetFontSlant();
+                    _ret_var = ((ITextFont)ws.Target).GetFontSlant();
                 }
                 catch (Exception e)
                 {
@@ -933,13 +859,13 @@ ITextFont
         private static void font_slant_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontSlant style)
         {
             Eina.Log.Debug("function efl_text_font_slant_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFont)wrapper).SetFontSlant(style);
+                    ((ITextFont)ws.Target).SetFontSlant(style);
                 }
                 catch (Exception e)
                 {
@@ -968,13 +894,13 @@ ITextFont
         private static Efl.TextFontWidth font_width_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_width_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontWidth _ret_var = default(Efl.TextFontWidth);
                 try
                 {
-                    _ret_var = ((ITextFont)wrapper).GetFontWidth();
+                    _ret_var = ((ITextFont)ws.Target).GetFontWidth();
                 }
                 catch (Exception e)
                 {
@@ -1004,13 +930,13 @@ ITextFont
         private static void font_width_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontWidth width)
         {
             Eina.Log.Debug("function efl_text_font_width_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFont)wrapper).SetFontWidth(width);
+                    ((ITextFont)ws.Target).SetFontWidth(width);
                 }
                 catch (Exception e)
                 {
@@ -1039,13 +965,13 @@ ITextFont
         private static System.String font_lang_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_lang_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextFont)wrapper).GetFontLang();
+                    _ret_var = ((ITextFont)ws.Target).GetFontLang();
                 }
                 catch (Exception e)
                 {
@@ -1075,13 +1001,13 @@ ITextFont
         private static void font_lang_set(System.IntPtr obj, System.IntPtr pd, System.String lang)
         {
             Eina.Log.Debug("function efl_text_font_lang_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFont)wrapper).SetFontLang(lang);
+                    ((ITextFont)ws.Target).SetFontLang(lang);
                 }
                 catch (Exception e)
                 {
@@ -1110,13 +1036,13 @@ ITextFont
         private static Efl.TextFontBitmapScalable font_bitmap_scalable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_bitmap_scalable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontBitmapScalable _ret_var = default(Efl.TextFontBitmapScalable);
                 try
                 {
-                    _ret_var = ((ITextFont)wrapper).GetFontBitmapScalable();
+                    _ret_var = ((ITextFont)ws.Target).GetFontBitmapScalable();
                 }
                 catch (Exception e)
                 {
@@ -1146,13 +1072,13 @@ ITextFont
         private static void font_bitmap_scalable_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontBitmapScalable scalable)
         {
             Eina.Log.Debug("function efl_text_font_bitmap_scalable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFont)wrapper).SetFontBitmapScalable(scalable);
+                    ((ITextFont)ws.Target).SetFontBitmapScalable(scalable);
                 }
                 catch (Exception e)
                 {
@@ -1170,7 +1096,7 @@ ITextFont
 
         private static efl_text_font_bitmap_scalable_set_delegate efl_text_font_bitmap_scalable_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index a97fd01..ff6656e 100644 (file)
@@ -86,70 +86,70 @@ System.String GetReplacementChar();
 /// <param name="repch">Replacement character</param>
 void SetReplacementChar(System.String repch);
                                                                                             /// <summary>Ellipsis value (number from -1.0 to 1.0)</summary>
-/// <value>Ellipsis value</value>
+    /// <value>Ellipsis value</value>
     double Ellipsis {
         get ;
         set ;
     }
     /// <summary>Wrap mode for use in the text</summary>
-/// <value>Wrap mode</value>
+    /// <value>Wrap mode</value>
     Efl.TextFormatWrap Wrap {
         get ;
         set ;
     }
     /// <summary>Multiline is enabled or not</summary>
-/// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
     bool Multiline {
         get ;
         set ;
     }
     /// <summary>Horizontal alignment of text</summary>
-/// <value>Alignment type</value>
+    /// <value>Alignment type</value>
     Efl.TextFormatHorizontalAlignmentAutoType HalignAutoType {
         get ;
         set ;
     }
     /// <summary>Horizontal alignment of text</summary>
-/// <value>Horizontal alignment value</value>
+    /// <value>Horizontal alignment value</value>
     double Halign {
         get ;
         set ;
     }
     /// <summary>Vertical alignment of text</summary>
-/// <value>Vertical alignment value</value>
+    /// <value>Vertical alignment value</value>
     double Valign {
         get ;
         set ;
     }
     /// <summary>Minimal line gap (top and bottom) for each line in the text
-/// <c>value</c> is absolute size.</summary>
-/// <value>Line gap value</value>
+    /// <c>value</c> is absolute size.</summary>
+    /// <value>Line gap value</value>
     double Linegap {
         get ;
         set ;
     }
     /// <summary>Relative line gap (top and bottom) for each line in the text
-/// The original line gap value is multiplied by <c>value</c>.</summary>
-/// <value>Relative line gap value</value>
+    /// The original line gap value is multiplied by <c>value</c>.</summary>
+    /// <value>Relative line gap value</value>
     double Linerelgap {
         get ;
         set ;
     }
     /// <summary>Tabstops value</summary>
-/// <value>Tapstops value</value>
+    /// <value>Tapstops value</value>
     int Tabstops {
         get ;
         set ;
     }
     /// <summary>Whether text is a password</summary>
-/// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
     bool Password {
         get ;
         set ;
     }
     /// <summary>The character used to replace characters that can&apos;t be displayed
-/// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
-/// <value>Replacement character</value>
+    /// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
+    /// <value>Replacement character</value>
     System.String ReplacementChar {
         get ;
         set ;
@@ -157,13 +157,13 @@ void SetReplacementChar(System.String repch);
 }
 /// <summary>The look and layout of the text
 /// The text format can affect the geometry of the text object, as well as how characters are presented.</summary>
-sealed public class ITextFormatConcrete : 
-
-ITextFormat
+sealed public class ITextFormatConcrete :
+    Efl.Eo.EoWrapper
+    , ITextFormat
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -178,86 +178,12 @@ ITextFormat
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_text_format_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ITextFormat"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextFormatConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextFormatConcrete()
+    private ITextFormatConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Ellipsis value (number from -1.0 to 1.0)</summary>
@@ -410,70 +336,70 @@ ITextFormat
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Ellipsis value (number from -1.0 to 1.0)</summary>
-/// <value>Ellipsis value</value>
+    /// <value>Ellipsis value</value>
     public double Ellipsis {
         get { return GetEllipsis(); }
         set { SetEllipsis(value); }
     }
     /// <summary>Wrap mode for use in the text</summary>
-/// <value>Wrap mode</value>
+    /// <value>Wrap mode</value>
     public Efl.TextFormatWrap Wrap {
         get { return GetWrap(); }
         set { SetWrap(value); }
     }
     /// <summary>Multiline is enabled or not</summary>
-/// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
     public bool Multiline {
         get { return GetMultiline(); }
         set { SetMultiline(value); }
     }
     /// <summary>Horizontal alignment of text</summary>
-/// <value>Alignment type</value>
+    /// <value>Alignment type</value>
     public Efl.TextFormatHorizontalAlignmentAutoType HalignAutoType {
         get { return GetHalignAutoType(); }
         set { SetHalignAutoType(value); }
     }
     /// <summary>Horizontal alignment of text</summary>
-/// <value>Horizontal alignment value</value>
+    /// <value>Horizontal alignment value</value>
     public double Halign {
         get { return GetHalign(); }
         set { SetHalign(value); }
     }
     /// <summary>Vertical alignment of text</summary>
-/// <value>Vertical alignment value</value>
+    /// <value>Vertical alignment value</value>
     public double Valign {
         get { return GetValign(); }
         set { SetValign(value); }
     }
     /// <summary>Minimal line gap (top and bottom) for each line in the text
-/// <c>value</c> is absolute size.</summary>
-/// <value>Line gap value</value>
+    /// <c>value</c> is absolute size.</summary>
+    /// <value>Line gap value</value>
     public double Linegap {
         get { return GetLinegap(); }
         set { SetLinegap(value); }
     }
     /// <summary>Relative line gap (top and bottom) for each line in the text
-/// The original line gap value is multiplied by <c>value</c>.</summary>
-/// <value>Relative line gap value</value>
+    /// The original line gap value is multiplied by <c>value</c>.</summary>
+    /// <value>Relative line gap value</value>
     public double Linerelgap {
         get { return GetLinerelgap(); }
         set { SetLinerelgap(value); }
     }
     /// <summary>Tabstops value</summary>
-/// <value>Tapstops value</value>
+    /// <value>Tapstops value</value>
     public int Tabstops {
         get { return GetTabstops(); }
         set { SetTabstops(value); }
     }
     /// <summary>Whether text is a password</summary>
-/// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
     public bool Password {
         get { return GetPassword(); }
         set { SetPassword(value); }
     }
     /// <summary>The character used to replace characters that can&apos;t be displayed
-/// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
-/// <value>Replacement character</value>
+    /// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
+    /// <value>Replacement character</value>
     public System.String ReplacementChar {
         get { return GetReplacementChar(); }
         set { SetReplacementChar(value); }
@@ -723,7 +649,7 @@ ITextFormat
             return Efl.ITextFormatConcrete.efl_text_format_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_text_ellipsis_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -736,13 +662,13 @@ ITextFormat
         private static double ellipsis_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_ellipsis_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetEllipsis();
+                    _ret_var = ((ITextFormat)ws.Target).GetEllipsis();
                 }
                 catch (Exception e)
                 {
@@ -772,13 +698,13 @@ ITextFormat
         private static void ellipsis_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_ellipsis_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetEllipsis(value);
+                    ((ITextFormat)ws.Target).SetEllipsis(value);
                 }
                 catch (Exception e)
                 {
@@ -807,13 +733,13 @@ ITextFormat
         private static Efl.TextFormatWrap wrap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_wrap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFormatWrap _ret_var = default(Efl.TextFormatWrap);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetWrap();
+                    _ret_var = ((ITextFormat)ws.Target).GetWrap();
                 }
                 catch (Exception e)
                 {
@@ -843,13 +769,13 @@ ITextFormat
         private static void wrap_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFormatWrap wrap)
         {
             Eina.Log.Debug("function efl_text_wrap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetWrap(wrap);
+                    ((ITextFormat)ws.Target).SetWrap(wrap);
                 }
                 catch (Exception e)
                 {
@@ -878,13 +804,13 @@ ITextFormat
         private static bool multiline_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_multiline_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetMultiline();
+                    _ret_var = ((ITextFormat)ws.Target).GetMultiline();
                 }
                 catch (Exception e)
                 {
@@ -914,13 +840,13 @@ ITextFormat
         private static void multiline_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_text_multiline_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetMultiline(enabled);
+                    ((ITextFormat)ws.Target).SetMultiline(enabled);
                 }
                 catch (Exception e)
                 {
@@ -949,13 +875,13 @@ ITextFormat
         private static Efl.TextFormatHorizontalAlignmentAutoType halign_auto_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_halign_auto_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFormatHorizontalAlignmentAutoType _ret_var = default(Efl.TextFormatHorizontalAlignmentAutoType);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetHalignAutoType();
+                    _ret_var = ((ITextFormat)ws.Target).GetHalignAutoType();
                 }
                 catch (Exception e)
                 {
@@ -985,13 +911,13 @@ ITextFormat
         private static void halign_auto_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFormatHorizontalAlignmentAutoType value)
         {
             Eina.Log.Debug("function efl_text_halign_auto_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetHalignAutoType(value);
+                    ((ITextFormat)ws.Target).SetHalignAutoType(value);
                 }
                 catch (Exception e)
                 {
@@ -1020,13 +946,13 @@ ITextFormat
         private static double halign_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_halign_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetHalign();
+                    _ret_var = ((ITextFormat)ws.Target).GetHalign();
                 }
                 catch (Exception e)
                 {
@@ -1056,13 +982,13 @@ ITextFormat
         private static void halign_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_halign_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetHalign(value);
+                    ((ITextFormat)ws.Target).SetHalign(value);
                 }
                 catch (Exception e)
                 {
@@ -1091,13 +1017,13 @@ ITextFormat
         private static double valign_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_valign_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetValign();
+                    _ret_var = ((ITextFormat)ws.Target).GetValign();
                 }
                 catch (Exception e)
                 {
@@ -1127,13 +1053,13 @@ ITextFormat
         private static void valign_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_valign_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetValign(value);
+                    ((ITextFormat)ws.Target).SetValign(value);
                 }
                 catch (Exception e)
                 {
@@ -1162,13 +1088,13 @@ ITextFormat
         private static double linegap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_linegap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetLinegap();
+                    _ret_var = ((ITextFormat)ws.Target).GetLinegap();
                 }
                 catch (Exception e)
                 {
@@ -1198,13 +1124,13 @@ ITextFormat
         private static void linegap_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_linegap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetLinegap(value);
+                    ((ITextFormat)ws.Target).SetLinegap(value);
                 }
                 catch (Exception e)
                 {
@@ -1233,13 +1159,13 @@ ITextFormat
         private static double linerelgap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_linerelgap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetLinerelgap();
+                    _ret_var = ((ITextFormat)ws.Target).GetLinerelgap();
                 }
                 catch (Exception e)
                 {
@@ -1269,13 +1195,13 @@ ITextFormat
         private static void linerelgap_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_linerelgap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetLinerelgap(value);
+                    ((ITextFormat)ws.Target).SetLinerelgap(value);
                 }
                 catch (Exception e)
                 {
@@ -1304,13 +1230,13 @@ ITextFormat
         private static int tabstops_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_tabstops_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetTabstops();
+                    _ret_var = ((ITextFormat)ws.Target).GetTabstops();
                 }
                 catch (Exception e)
                 {
@@ -1340,13 +1266,13 @@ ITextFormat
         private static void tabstops_set(System.IntPtr obj, System.IntPtr pd, int value)
         {
             Eina.Log.Debug("function efl_text_tabstops_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetTabstops(value);
+                    ((ITextFormat)ws.Target).SetTabstops(value);
                 }
                 catch (Exception e)
                 {
@@ -1375,13 +1301,13 @@ ITextFormat
         private static bool password_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_password_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetPassword();
+                    _ret_var = ((ITextFormat)ws.Target).GetPassword();
                 }
                 catch (Exception e)
                 {
@@ -1411,13 +1337,13 @@ ITextFormat
         private static void password_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_text_password_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetPassword(enabled);
+                    ((ITextFormat)ws.Target).SetPassword(enabled);
                 }
                 catch (Exception e)
                 {
@@ -1446,13 +1372,13 @@ ITextFormat
         private static System.String replacement_char_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_replacement_char_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextFormat)wrapper).GetReplacementChar();
+                    _ret_var = ((ITextFormat)ws.Target).GetReplacementChar();
                 }
                 catch (Exception e)
                 {
@@ -1482,13 +1408,13 @@ ITextFormat
         private static void replacement_char_set(System.IntPtr obj, System.IntPtr pd, System.String repch)
         {
             Eina.Log.Debug("function efl_text_replacement_char_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextFormat)wrapper).SetReplacementChar(repch);
+                    ((ITextFormat)ws.Target).SetReplacementChar(repch);
                 }
                 catch (Exception e)
                 {
@@ -1506,7 +1432,7 @@ ITextFormat
 
         private static efl_text_replacement_char_set_delegate efl_text_replacement_char_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 65c33c7..f725e7f 100644 (file)
@@ -42,27 +42,27 @@ void SelectNone();
                             /// <summary>The selection on the object has changed. Query using <see cref="Efl.ITextInteractive.GetSelectionCursors"/></summary>
     event EventHandler TextSelectionChangedEvt;
     /// <summary>Whether or not selection is allowed on this object</summary>
-/// <value><c>true</c> if enabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if enabled, <c>false</c> otherwise</value>
     bool SelectionAllowed {
         get ;
         set ;
     }
     /// <summary>Whether the entry is editable.
-/// By default text interactives are editable. However setting this property to <c>false</c> will make it so that key input will be disregarded.</summary>
-/// <value>If <c>true</c>, user input will be inserted in the entry, if not, the entry is read-only and no user input is allowed.</value>
+    /// By default text interactives are editable. However setting this property to <c>false</c> will make it so that key input will be disregarded.</summary>
+    /// <value>If <c>true</c>, user input will be inserted in the entry, if not, the entry is read-only and no user input is allowed.</value>
     bool Editable {
         get ;
         set ;
     }
 }
 /// <summary>This is an interface interactive text inputs should implement</summary>
-sealed public class ITextInteractiveConcrete : 
-
-ITextInteractive
+sealed public class ITextInteractiveConcrete :
+    Efl.Eo.EoWrapper
+    , ITextInteractive
     , Efl.IText, Efl.ITextFont, Efl.ITextFormat, Efl.ITextStyle
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -77,155 +77,12 @@ ITextInteractive
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_text_interactive_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ITextInteractive"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextInteractiveConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextInteractiveConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
+    private ITextInteractiveConcrete(System.IntPtr raw) : base(raw)
     {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>The selection on the object has changed. Query using <see cref="Efl.ITextInteractive.GetSelectionCursors"/></summary>
@@ -235,10 +92,9 @@ ITextInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -919,187 +775,187 @@ ITextInteractive
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Whether or not selection is allowed on this object</summary>
-/// <value><c>true</c> if enabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if enabled, <c>false</c> otherwise</value>
     public bool SelectionAllowed {
         get { return GetSelectionAllowed(); }
         set { SetSelectionAllowed(value); }
     }
     /// <summary>Whether the entry is editable.
-/// By default text interactives are editable. However setting this property to <c>false</c> will make it so that key input will be disregarded.</summary>
-/// <value>If <c>true</c>, user input will be inserted in the entry, if not, the entry is read-only and no user input is allowed.</value>
+    /// By default text interactives are editable. However setting this property to <c>false</c> will make it so that key input will be disregarded.</summary>
+    /// <value>If <c>true</c>, user input will be inserted in the entry, if not, the entry is read-only and no user input is allowed.</value>
     public bool Editable {
         get { return GetEditable(); }
         set { SetEditable(value); }
     }
     /// <summary>Get the font file&apos;s path which is being used on a given text object.
-/// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
-/// <value>The font file&apos;s path.</value>
+    /// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
+    /// <value>The font file&apos;s path.</value>
     public System.String FontSource {
         get { return GetFontSource(); }
         set { SetFontSource(value); }
     }
     /// <summary>Comma-separated list of font fallbacks
-/// Will be used in case the primary font isn&apos;t available.</summary>
-/// <value>Font name fallbacks</value>
+    /// Will be used in case the primary font isn&apos;t available.</summary>
+    /// <value>Font name fallbacks</value>
     public System.String FontFallbacks {
         get { return GetFontFallbacks(); }
         set { SetFontFallbacks(value); }
     }
     /// <summary>Type of weight of the displayed font
-/// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
-/// <value>Font weight</value>
+    /// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
+    /// <value>Font weight</value>
     public Efl.TextFontWeight FontWeight {
         get { return GetFontWeight(); }
         set { SetFontWeight(value); }
     }
     /// <summary>Type of slant of the displayed font
-/// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
-/// <value>Font slant</value>
+    /// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
+    /// <value>Font slant</value>
     public Efl.TextFontSlant FontSlant {
         get { return GetFontSlant(); }
         set { SetFontSlant(value); }
     }
     /// <summary>Type of width of the displayed font
-/// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
-/// <value>Font width</value>
+    /// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
+    /// <value>Font width</value>
     public Efl.TextFontWidth FontWidth {
         get { return GetFontWidth(); }
         set { SetFontWidth(value); }
     }
     /// <summary>Specific language of the displayed font
-/// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
-/// <value>Language</value>
+    /// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
+    /// <value>Language</value>
     public System.String FontLang {
         get { return GetFontLang(); }
         set { SetFontLang(value); }
     }
     /// <summary>The bitmap fonts have fixed size glyphs for several available sizes. Basically, it is not scalable. But, it needs to be scalable for some use cases. (ex. colorful emoji fonts)
-/// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
-/// <value>Scalable</value>
+    /// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
+    /// <value>Scalable</value>
     public Efl.TextFontBitmapScalable FontBitmapScalable {
         get { return GetFontBitmapScalable(); }
         set { SetFontBitmapScalable(value); }
     }
     /// <summary>Ellipsis value (number from -1.0 to 1.0)</summary>
-/// <value>Ellipsis value</value>
+    /// <value>Ellipsis value</value>
     public double Ellipsis {
         get { return GetEllipsis(); }
         set { SetEllipsis(value); }
     }
     /// <summary>Wrap mode for use in the text</summary>
-/// <value>Wrap mode</value>
+    /// <value>Wrap mode</value>
     public Efl.TextFormatWrap Wrap {
         get { return GetWrap(); }
         set { SetWrap(value); }
     }
     /// <summary>Multiline is enabled or not</summary>
-/// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
     public bool Multiline {
         get { return GetMultiline(); }
         set { SetMultiline(value); }
     }
     /// <summary>Horizontal alignment of text</summary>
-/// <value>Alignment type</value>
+    /// <value>Alignment type</value>
     public Efl.TextFormatHorizontalAlignmentAutoType HalignAutoType {
         get { return GetHalignAutoType(); }
         set { SetHalignAutoType(value); }
     }
     /// <summary>Horizontal alignment of text</summary>
-/// <value>Horizontal alignment value</value>
+    /// <value>Horizontal alignment value</value>
     public double Halign {
         get { return GetHalign(); }
         set { SetHalign(value); }
     }
     /// <summary>Vertical alignment of text</summary>
-/// <value>Vertical alignment value</value>
+    /// <value>Vertical alignment value</value>
     public double Valign {
         get { return GetValign(); }
         set { SetValign(value); }
     }
     /// <summary>Minimal line gap (top and bottom) for each line in the text
-/// <c>value</c> is absolute size.</summary>
-/// <value>Line gap value</value>
+    /// <c>value</c> is absolute size.</summary>
+    /// <value>Line gap value</value>
     public double Linegap {
         get { return GetLinegap(); }
         set { SetLinegap(value); }
     }
     /// <summary>Relative line gap (top and bottom) for each line in the text
-/// The original line gap value is multiplied by <c>value</c>.</summary>
-/// <value>Relative line gap value</value>
+    /// The original line gap value is multiplied by <c>value</c>.</summary>
+    /// <value>Relative line gap value</value>
     public double Linerelgap {
         get { return GetLinerelgap(); }
         set { SetLinerelgap(value); }
     }
     /// <summary>Tabstops value</summary>
-/// <value>Tapstops value</value>
+    /// <value>Tapstops value</value>
     public int Tabstops {
         get { return GetTabstops(); }
         set { SetTabstops(value); }
     }
     /// <summary>Whether text is a password</summary>
-/// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
     public bool Password {
         get { return GetPassword(); }
         set { SetPassword(value); }
     }
     /// <summary>The character used to replace characters that can&apos;t be displayed
-/// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
-/// <value>Replacement character</value>
+    /// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
+    /// <value>Replacement character</value>
     public System.String ReplacementChar {
         get { return GetReplacementChar(); }
         set { SetReplacementChar(value); }
     }
     /// <summary>Enable or disable backing type</summary>
-/// <value>Backing type</value>
+    /// <value>Backing type</value>
     public Efl.TextStyleBackingType BackingType {
         get { return GetBackingType(); }
         set { SetBackingType(value); }
     }
     /// <summary>Sets an underline style on the text</summary>
-/// <value>Underline type</value>
+    /// <value>Underline type</value>
     public Efl.TextStyleUnderlineType UnderlineType {
         get { return GetUnderlineType(); }
         set { SetUnderlineType(value); }
     }
     /// <summary>Height of underline style</summary>
-/// <value>Height</value>
+    /// <value>Height</value>
     public double UnderlineHeight {
         get { return GetUnderlineHeight(); }
         set { SetUnderlineHeight(value); }
     }
     /// <summary>Width of dashed underline style</summary>
-/// <value>Width</value>
+    /// <value>Width</value>
     public int UnderlineDashedWidth {
         get { return GetUnderlineDashedWidth(); }
         set { SetUnderlineDashedWidth(value); }
     }
     /// <summary>Gap of dashed underline style</summary>
-/// <value>Gap</value>
+    /// <value>Gap</value>
     public int UnderlineDashedGap {
         get { return GetUnderlineDashedGap(); }
         set { SetUnderlineDashedGap(value); }
     }
     /// <summary>Type of strikethrough style</summary>
-/// <value>Strikethrough type</value>
+    /// <value>Strikethrough type</value>
     public Efl.TextStyleStrikethroughType StrikethroughType {
         get { return GetStrikethroughType(); }
         set { SetStrikethroughType(value); }
     }
     /// <summary>Type of effect used for the displayed text</summary>
-/// <value>Effect type</value>
+    /// <value>Effect type</value>
     public Efl.TextStyleEffectType EffectType {
         get { return GetEffectType(); }
         set { SetEffectType(value); }
     }
     /// <summary>Direction of shadow effect</summary>
-/// <value>Shadow direction</value>
+    /// <value>Shadow direction</value>
     public Efl.TextStyleShadowDirection ShadowDirection {
         get { return GetShadowDirection(); }
         set { SetShadowDirection(value); }
     }
     /// <summary>Program that applies a special filter
-/// See <see cref="Efl.Gfx.IFilter"/>.</summary>
-/// <value>Filter code</value>
+    /// See <see cref="Efl.Gfx.IFilter"/>.</summary>
+    /// <value>Filter code</value>
     public System.String GfxFilter {
         get { return GetGfxFilter(); }
         set { SetGfxFilter(value); }
@@ -1969,7 +1825,7 @@ ITextInteractive
             return Efl.ITextInteractiveConcrete.efl_text_interactive_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_text_interactive_selection_allowed_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1982,13 +1838,13 @@ ITextInteractive
         private static bool selection_allowed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_interactive_selection_allowed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetSelectionAllowed();
+                    _ret_var = ((ITextInteractive)ws.Target).GetSelectionAllowed();
                 }
                 catch (Exception e)
                 {
@@ -2018,13 +1874,13 @@ ITextInteractive
         private static void selection_allowed_set(System.IntPtr obj, System.IntPtr pd, bool allowed)
         {
             Eina.Log.Debug("function efl_text_interactive_selection_allowed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetSelectionAllowed(allowed);
+                    ((ITextInteractive)ws.Target).SetSelectionAllowed(allowed);
                 }
                 catch (Exception e)
                 {
@@ -2053,13 +1909,13 @@ ITextInteractive
         private static void selection_cursors_get(System.IntPtr obj, System.IntPtr pd, out Efl.TextCursorCursor start, out Efl.TextCursorCursor end)
         {
             Eina.Log.Debug("function efl_text_interactive_selection_cursors_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         start = default(Efl.TextCursorCursor);        end = default(Efl.TextCursorCursor);                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetSelectionCursors(out start, out end);
+                    ((ITextInteractive)ws.Target).GetSelectionCursors(out start, out end);
                 }
                 catch (Exception e)
                 {
@@ -2088,13 +1944,13 @@ ITextInteractive
         private static bool editable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_interactive_editable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetEditable();
+                    _ret_var = ((ITextInteractive)ws.Target).GetEditable();
                 }
                 catch (Exception e)
                 {
@@ -2124,13 +1980,13 @@ ITextInteractive
         private static void editable_set(System.IntPtr obj, System.IntPtr pd, bool editable)
         {
             Eina.Log.Debug("function efl_text_interactive_editable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetEditable(editable);
+                    ((ITextInteractive)ws.Target).SetEditable(editable);
                 }
                 catch (Exception e)
                 {
@@ -2159,13 +2015,13 @@ ITextInteractive
         private static void select_none(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_interactive_select_none was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ITextInteractive)wrapper).SelectNone();
+                    ((ITextInteractive)ws.Target).SelectNone();
                 }
                 catch (Exception e)
                 {
@@ -2194,13 +2050,13 @@ ITextInteractive
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetText();
+                    _ret_var = ((ITextInteractive)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -2230,13 +2086,13 @@ ITextInteractive
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetText(text);
+                    ((ITextInteractive)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -2265,14 +2121,14 @@ ITextInteractive
         private static void font_get(System.IntPtr obj, System.IntPtr pd, out System.String font, out Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_text_font_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         System.String _out_font = default(System.String);
         size = default(Efl.Font.Size);                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetFont(out _out_font, out size);
+                    ((ITextInteractive)ws.Target).GetFont(out _out_font, out size);
                 }
                 catch (Exception e)
                 {
@@ -2302,13 +2158,13 @@ ITextInteractive
         private static void font_set(System.IntPtr obj, System.IntPtr pd, System.String font, Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_text_font_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetFont(font, size);
+                    ((ITextInteractive)ws.Target).SetFont(font, size);
                 }
                 catch (Exception e)
                 {
@@ -2337,13 +2193,13 @@ ITextInteractive
         private static System.String font_source_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetFontSource();
+                    _ret_var = ((ITextInteractive)ws.Target).GetFontSource();
                 }
                 catch (Exception e)
                 {
@@ -2373,13 +2229,13 @@ ITextInteractive
         private static void font_source_set(System.IntPtr obj, System.IntPtr pd, System.String font_source)
         {
             Eina.Log.Debug("function efl_text_font_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetFontSource(font_source);
+                    ((ITextInteractive)ws.Target).SetFontSource(font_source);
                 }
                 catch (Exception e)
                 {
@@ -2408,13 +2264,13 @@ ITextInteractive
         private static System.String font_fallbacks_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_fallbacks_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetFontFallbacks();
+                    _ret_var = ((ITextInteractive)ws.Target).GetFontFallbacks();
                 }
                 catch (Exception e)
                 {
@@ -2444,13 +2300,13 @@ ITextInteractive
         private static void font_fallbacks_set(System.IntPtr obj, System.IntPtr pd, System.String font_fallbacks)
         {
             Eina.Log.Debug("function efl_text_font_fallbacks_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetFontFallbacks(font_fallbacks);
+                    ((ITextInteractive)ws.Target).SetFontFallbacks(font_fallbacks);
                 }
                 catch (Exception e)
                 {
@@ -2479,13 +2335,13 @@ ITextInteractive
         private static Efl.TextFontWeight font_weight_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_weight_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontWeight _ret_var = default(Efl.TextFontWeight);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetFontWeight();
+                    _ret_var = ((ITextInteractive)ws.Target).GetFontWeight();
                 }
                 catch (Exception e)
                 {
@@ -2515,13 +2371,13 @@ ITextInteractive
         private static void font_weight_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontWeight font_weight)
         {
             Eina.Log.Debug("function efl_text_font_weight_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetFontWeight(font_weight);
+                    ((ITextInteractive)ws.Target).SetFontWeight(font_weight);
                 }
                 catch (Exception e)
                 {
@@ -2550,13 +2406,13 @@ ITextInteractive
         private static Efl.TextFontSlant font_slant_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_slant_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontSlant _ret_var = default(Efl.TextFontSlant);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetFontSlant();
+                    _ret_var = ((ITextInteractive)ws.Target).GetFontSlant();
                 }
                 catch (Exception e)
                 {
@@ -2586,13 +2442,13 @@ ITextInteractive
         private static void font_slant_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontSlant style)
         {
             Eina.Log.Debug("function efl_text_font_slant_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetFontSlant(style);
+                    ((ITextInteractive)ws.Target).SetFontSlant(style);
                 }
                 catch (Exception e)
                 {
@@ -2621,13 +2477,13 @@ ITextInteractive
         private static Efl.TextFontWidth font_width_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_width_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontWidth _ret_var = default(Efl.TextFontWidth);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetFontWidth();
+                    _ret_var = ((ITextInteractive)ws.Target).GetFontWidth();
                 }
                 catch (Exception e)
                 {
@@ -2657,13 +2513,13 @@ ITextInteractive
         private static void font_width_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontWidth width)
         {
             Eina.Log.Debug("function efl_text_font_width_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetFontWidth(width);
+                    ((ITextInteractive)ws.Target).SetFontWidth(width);
                 }
                 catch (Exception e)
                 {
@@ -2692,13 +2548,13 @@ ITextInteractive
         private static System.String font_lang_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_lang_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetFontLang();
+                    _ret_var = ((ITextInteractive)ws.Target).GetFontLang();
                 }
                 catch (Exception e)
                 {
@@ -2728,13 +2584,13 @@ ITextInteractive
         private static void font_lang_set(System.IntPtr obj, System.IntPtr pd, System.String lang)
         {
             Eina.Log.Debug("function efl_text_font_lang_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetFontLang(lang);
+                    ((ITextInteractive)ws.Target).SetFontLang(lang);
                 }
                 catch (Exception e)
                 {
@@ -2763,13 +2619,13 @@ ITextInteractive
         private static Efl.TextFontBitmapScalable font_bitmap_scalable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_bitmap_scalable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontBitmapScalable _ret_var = default(Efl.TextFontBitmapScalable);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetFontBitmapScalable();
+                    _ret_var = ((ITextInteractive)ws.Target).GetFontBitmapScalable();
                 }
                 catch (Exception e)
                 {
@@ -2799,13 +2655,13 @@ ITextInteractive
         private static void font_bitmap_scalable_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontBitmapScalable scalable)
         {
             Eina.Log.Debug("function efl_text_font_bitmap_scalable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetFontBitmapScalable(scalable);
+                    ((ITextInteractive)ws.Target).SetFontBitmapScalable(scalable);
                 }
                 catch (Exception e)
                 {
@@ -2834,13 +2690,13 @@ ITextInteractive
         private static double ellipsis_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_ellipsis_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetEllipsis();
+                    _ret_var = ((ITextInteractive)ws.Target).GetEllipsis();
                 }
                 catch (Exception e)
                 {
@@ -2870,13 +2726,13 @@ ITextInteractive
         private static void ellipsis_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_ellipsis_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetEllipsis(value);
+                    ((ITextInteractive)ws.Target).SetEllipsis(value);
                 }
                 catch (Exception e)
                 {
@@ -2905,13 +2761,13 @@ ITextInteractive
         private static Efl.TextFormatWrap wrap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_wrap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFormatWrap _ret_var = default(Efl.TextFormatWrap);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetWrap();
+                    _ret_var = ((ITextInteractive)ws.Target).GetWrap();
                 }
                 catch (Exception e)
                 {
@@ -2941,13 +2797,13 @@ ITextInteractive
         private static void wrap_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFormatWrap wrap)
         {
             Eina.Log.Debug("function efl_text_wrap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetWrap(wrap);
+                    ((ITextInteractive)ws.Target).SetWrap(wrap);
                 }
                 catch (Exception e)
                 {
@@ -2976,13 +2832,13 @@ ITextInteractive
         private static bool multiline_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_multiline_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetMultiline();
+                    _ret_var = ((ITextInteractive)ws.Target).GetMultiline();
                 }
                 catch (Exception e)
                 {
@@ -3012,13 +2868,13 @@ ITextInteractive
         private static void multiline_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_text_multiline_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetMultiline(enabled);
+                    ((ITextInteractive)ws.Target).SetMultiline(enabled);
                 }
                 catch (Exception e)
                 {
@@ -3047,13 +2903,13 @@ ITextInteractive
         private static Efl.TextFormatHorizontalAlignmentAutoType halign_auto_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_halign_auto_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFormatHorizontalAlignmentAutoType _ret_var = default(Efl.TextFormatHorizontalAlignmentAutoType);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetHalignAutoType();
+                    _ret_var = ((ITextInteractive)ws.Target).GetHalignAutoType();
                 }
                 catch (Exception e)
                 {
@@ -3083,13 +2939,13 @@ ITextInteractive
         private static void halign_auto_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFormatHorizontalAlignmentAutoType value)
         {
             Eina.Log.Debug("function efl_text_halign_auto_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetHalignAutoType(value);
+                    ((ITextInteractive)ws.Target).SetHalignAutoType(value);
                 }
                 catch (Exception e)
                 {
@@ -3118,13 +2974,13 @@ ITextInteractive
         private static double halign_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_halign_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetHalign();
+                    _ret_var = ((ITextInteractive)ws.Target).GetHalign();
                 }
                 catch (Exception e)
                 {
@@ -3154,13 +3010,13 @@ ITextInteractive
         private static void halign_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_halign_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetHalign(value);
+                    ((ITextInteractive)ws.Target).SetHalign(value);
                 }
                 catch (Exception e)
                 {
@@ -3189,13 +3045,13 @@ ITextInteractive
         private static double valign_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_valign_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetValign();
+                    _ret_var = ((ITextInteractive)ws.Target).GetValign();
                 }
                 catch (Exception e)
                 {
@@ -3225,13 +3081,13 @@ ITextInteractive
         private static void valign_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_valign_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetValign(value);
+                    ((ITextInteractive)ws.Target).SetValign(value);
                 }
                 catch (Exception e)
                 {
@@ -3260,13 +3116,13 @@ ITextInteractive
         private static double linegap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_linegap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetLinegap();
+                    _ret_var = ((ITextInteractive)ws.Target).GetLinegap();
                 }
                 catch (Exception e)
                 {
@@ -3296,13 +3152,13 @@ ITextInteractive
         private static void linegap_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_linegap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetLinegap(value);
+                    ((ITextInteractive)ws.Target).SetLinegap(value);
                 }
                 catch (Exception e)
                 {
@@ -3331,13 +3187,13 @@ ITextInteractive
         private static double linerelgap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_linerelgap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetLinerelgap();
+                    _ret_var = ((ITextInteractive)ws.Target).GetLinerelgap();
                 }
                 catch (Exception e)
                 {
@@ -3367,13 +3223,13 @@ ITextInteractive
         private static void linerelgap_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_linerelgap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetLinerelgap(value);
+                    ((ITextInteractive)ws.Target).SetLinerelgap(value);
                 }
                 catch (Exception e)
                 {
@@ -3402,13 +3258,13 @@ ITextInteractive
         private static int tabstops_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_tabstops_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetTabstops();
+                    _ret_var = ((ITextInteractive)ws.Target).GetTabstops();
                 }
                 catch (Exception e)
                 {
@@ -3438,13 +3294,13 @@ ITextInteractive
         private static void tabstops_set(System.IntPtr obj, System.IntPtr pd, int value)
         {
             Eina.Log.Debug("function efl_text_tabstops_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetTabstops(value);
+                    ((ITextInteractive)ws.Target).SetTabstops(value);
                 }
                 catch (Exception e)
                 {
@@ -3473,13 +3329,13 @@ ITextInteractive
         private static bool password_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_password_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetPassword();
+                    _ret_var = ((ITextInteractive)ws.Target).GetPassword();
                 }
                 catch (Exception e)
                 {
@@ -3509,13 +3365,13 @@ ITextInteractive
         private static void password_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_text_password_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetPassword(enabled);
+                    ((ITextInteractive)ws.Target).SetPassword(enabled);
                 }
                 catch (Exception e)
                 {
@@ -3544,13 +3400,13 @@ ITextInteractive
         private static System.String replacement_char_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_replacement_char_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetReplacementChar();
+                    _ret_var = ((ITextInteractive)ws.Target).GetReplacementChar();
                 }
                 catch (Exception e)
                 {
@@ -3580,13 +3436,13 @@ ITextInteractive
         private static void replacement_char_set(System.IntPtr obj, System.IntPtr pd, System.String repch)
         {
             Eina.Log.Debug("function efl_text_replacement_char_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetReplacementChar(repch);
+                    ((ITextInteractive)ws.Target).SetReplacementChar(repch);
                 }
                 catch (Exception e)
                 {
@@ -3615,13 +3471,13 @@ ITextInteractive
         private static void normal_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_normal_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetNormalColor(out r, out g, out b, out a);
+                    ((ITextInteractive)ws.Target).GetNormalColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -3650,13 +3506,13 @@ ITextInteractive
         private static void normal_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_normal_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetNormalColor(r, g, b, a);
+                    ((ITextInteractive)ws.Target).SetNormalColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -3685,13 +3541,13 @@ ITextInteractive
         private static Efl.TextStyleBackingType backing_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_backing_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleBackingType _ret_var = default(Efl.TextStyleBackingType);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetBackingType();
+                    _ret_var = ((ITextInteractive)ws.Target).GetBackingType();
                 }
                 catch (Exception e)
                 {
@@ -3721,13 +3577,13 @@ ITextInteractive
         private static void backing_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleBackingType type)
         {
             Eina.Log.Debug("function efl_text_backing_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetBackingType(type);
+                    ((ITextInteractive)ws.Target).SetBackingType(type);
                 }
                 catch (Exception e)
                 {
@@ -3756,13 +3612,13 @@ ITextInteractive
         private static void backing_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_backing_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetBackingColor(out r, out g, out b, out a);
+                    ((ITextInteractive)ws.Target).GetBackingColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -3791,13 +3647,13 @@ ITextInteractive
         private static void backing_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_backing_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetBackingColor(r, g, b, a);
+                    ((ITextInteractive)ws.Target).SetBackingColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -3826,13 +3682,13 @@ ITextInteractive
         private static Efl.TextStyleUnderlineType underline_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleUnderlineType _ret_var = default(Efl.TextStyleUnderlineType);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetUnderlineType();
+                    _ret_var = ((ITextInteractive)ws.Target).GetUnderlineType();
                 }
                 catch (Exception e)
                 {
@@ -3862,13 +3718,13 @@ ITextInteractive
         private static void underline_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleUnderlineType type)
         {
             Eina.Log.Debug("function efl_text_underline_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetUnderlineType(type);
+                    ((ITextInteractive)ws.Target).SetUnderlineType(type);
                 }
                 catch (Exception e)
                 {
@@ -3897,13 +3753,13 @@ ITextInteractive
         private static void underline_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetUnderlineColor(out r, out g, out b, out a);
+                    ((ITextInteractive)ws.Target).GetUnderlineColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -3932,13 +3788,13 @@ ITextInteractive
         private static void underline_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetUnderlineColor(r, g, b, a);
+                    ((ITextInteractive)ws.Target).SetUnderlineColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -3967,13 +3823,13 @@ ITextInteractive
         private static double underline_height_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_height_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetUnderlineHeight();
+                    _ret_var = ((ITextInteractive)ws.Target).GetUnderlineHeight();
                 }
                 catch (Exception e)
                 {
@@ -4003,13 +3859,13 @@ ITextInteractive
         private static void underline_height_set(System.IntPtr obj, System.IntPtr pd, double height)
         {
             Eina.Log.Debug("function efl_text_underline_height_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetUnderlineHeight(height);
+                    ((ITextInteractive)ws.Target).SetUnderlineHeight(height);
                 }
                 catch (Exception e)
                 {
@@ -4038,13 +3894,13 @@ ITextInteractive
         private static void underline_dashed_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetUnderlineDashedColor(out r, out g, out b, out a);
+                    ((ITextInteractive)ws.Target).GetUnderlineDashedColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -4073,13 +3929,13 @@ ITextInteractive
         private static void underline_dashed_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetUnderlineDashedColor(r, g, b, a);
+                    ((ITextInteractive)ws.Target).SetUnderlineDashedColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -4108,13 +3964,13 @@ ITextInteractive
         private static int underline_dashed_width_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_width_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetUnderlineDashedWidth();
+                    _ret_var = ((ITextInteractive)ws.Target).GetUnderlineDashedWidth();
                 }
                 catch (Exception e)
                 {
@@ -4144,13 +4000,13 @@ ITextInteractive
         private static void underline_dashed_width_set(System.IntPtr obj, System.IntPtr pd, int width)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_width_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetUnderlineDashedWidth(width);
+                    ((ITextInteractive)ws.Target).SetUnderlineDashedWidth(width);
                 }
                 catch (Exception e)
                 {
@@ -4179,13 +4035,13 @@ ITextInteractive
         private static int underline_dashed_gap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_gap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetUnderlineDashedGap();
+                    _ret_var = ((ITextInteractive)ws.Target).GetUnderlineDashedGap();
                 }
                 catch (Exception e)
                 {
@@ -4215,13 +4071,13 @@ ITextInteractive
         private static void underline_dashed_gap_set(System.IntPtr obj, System.IntPtr pd, int gap)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_gap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetUnderlineDashedGap(gap);
+                    ((ITextInteractive)ws.Target).SetUnderlineDashedGap(gap);
                 }
                 catch (Exception e)
                 {
@@ -4250,13 +4106,13 @@ ITextInteractive
         private static void underline2_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline2_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetUnderline2Color(out r, out g, out b, out a);
+                    ((ITextInteractive)ws.Target).GetUnderline2Color(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -4285,13 +4141,13 @@ ITextInteractive
         private static void underline2_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline2_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetUnderline2Color(r, g, b, a);
+                    ((ITextInteractive)ws.Target).SetUnderline2Color(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -4320,13 +4176,13 @@ ITextInteractive
         private static Efl.TextStyleStrikethroughType strikethrough_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_strikethrough_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleStrikethroughType _ret_var = default(Efl.TextStyleStrikethroughType);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetStrikethroughType();
+                    _ret_var = ((ITextInteractive)ws.Target).GetStrikethroughType();
                 }
                 catch (Exception e)
                 {
@@ -4356,13 +4212,13 @@ ITextInteractive
         private static void strikethrough_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleStrikethroughType type)
         {
             Eina.Log.Debug("function efl_text_strikethrough_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetStrikethroughType(type);
+                    ((ITextInteractive)ws.Target).SetStrikethroughType(type);
                 }
                 catch (Exception e)
                 {
@@ -4391,13 +4247,13 @@ ITextInteractive
         private static void strikethrough_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_strikethrough_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetStrikethroughColor(out r, out g, out b, out a);
+                    ((ITextInteractive)ws.Target).GetStrikethroughColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -4426,13 +4282,13 @@ ITextInteractive
         private static void strikethrough_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_strikethrough_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetStrikethroughColor(r, g, b, a);
+                    ((ITextInteractive)ws.Target).SetStrikethroughColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -4461,13 +4317,13 @@ ITextInteractive
         private static Efl.TextStyleEffectType effect_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_effect_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleEffectType _ret_var = default(Efl.TextStyleEffectType);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetEffectType();
+                    _ret_var = ((ITextInteractive)ws.Target).GetEffectType();
                 }
                 catch (Exception e)
                 {
@@ -4497,13 +4353,13 @@ ITextInteractive
         private static void effect_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleEffectType type)
         {
             Eina.Log.Debug("function efl_text_effect_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetEffectType(type);
+                    ((ITextInteractive)ws.Target).SetEffectType(type);
                 }
                 catch (Exception e)
                 {
@@ -4532,13 +4388,13 @@ ITextInteractive
         private static void outline_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_outline_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetOutlineColor(out r, out g, out b, out a);
+                    ((ITextInteractive)ws.Target).GetOutlineColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -4567,13 +4423,13 @@ ITextInteractive
         private static void outline_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_outline_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetOutlineColor(r, g, b, a);
+                    ((ITextInteractive)ws.Target).SetOutlineColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -4602,13 +4458,13 @@ ITextInteractive
         private static Efl.TextStyleShadowDirection shadow_direction_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_shadow_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleShadowDirection _ret_var = default(Efl.TextStyleShadowDirection);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetShadowDirection();
+                    _ret_var = ((ITextInteractive)ws.Target).GetShadowDirection();
                 }
                 catch (Exception e)
                 {
@@ -4638,13 +4494,13 @@ ITextInteractive
         private static void shadow_direction_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleShadowDirection type)
         {
             Eina.Log.Debug("function efl_text_shadow_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetShadowDirection(type);
+                    ((ITextInteractive)ws.Target).SetShadowDirection(type);
                 }
                 catch (Exception e)
                 {
@@ -4673,13 +4529,13 @@ ITextInteractive
         private static void shadow_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_shadow_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetShadowColor(out r, out g, out b, out a);
+                    ((ITextInteractive)ws.Target).GetShadowColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -4708,13 +4564,13 @@ ITextInteractive
         private static void shadow_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_shadow_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetShadowColor(r, g, b, a);
+                    ((ITextInteractive)ws.Target).SetShadowColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -4743,13 +4599,13 @@ ITextInteractive
         private static void glow_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_glow_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetGlowColor(out r, out g, out b, out a);
+                    ((ITextInteractive)ws.Target).GetGlowColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -4778,13 +4634,13 @@ ITextInteractive
         private static void glow_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_glow_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetGlowColor(r, g, b, a);
+                    ((ITextInteractive)ws.Target).SetGlowColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -4813,13 +4669,13 @@ ITextInteractive
         private static void glow2_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_glow2_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextInteractive)wrapper).GetGlow2Color(out r, out g, out b, out a);
+                    ((ITextInteractive)ws.Target).GetGlow2Color(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -4848,13 +4704,13 @@ ITextInteractive
         private static void glow2_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_glow2_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextInteractive)wrapper).SetGlow2Color(r, g, b, a);
+                    ((ITextInteractive)ws.Target).SetGlow2Color(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -4883,13 +4739,13 @@ ITextInteractive
         private static System.String gfx_filter_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_gfx_filter_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextInteractive)wrapper).GetGfxFilter();
+                    _ret_var = ((ITextInteractive)ws.Target).GetGfxFilter();
                 }
                 catch (Exception e)
                 {
@@ -4919,13 +4775,13 @@ ITextInteractive
         private static void gfx_filter_set(System.IntPtr obj, System.IntPtr pd, System.String code)
         {
             Eina.Log.Debug("function efl_text_gfx_filter_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextInteractive)wrapper).SetGfxFilter(code);
+                    ((ITextInteractive)ws.Target).SetGfxFilter(code);
                 }
                 catch (Exception e)
                 {
@@ -4943,7 +4799,7 @@ ITextInteractive
 
         private static efl_text_gfx_filter_set_delegate efl_text_gfx_filter_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index fadc598..f2c9ecd 100644 (file)
@@ -19,20 +19,20 @@ System.String GetMarkup();
 /// <param name="markup">The markup-text representation set to this text.</param>
 void SetMarkup(System.String markup);
             /// <summary>Markup property</summary>
-/// <value>The markup-text representation set to this text.</value>
+    /// <value>The markup-text representation set to this text.</value>
     System.String Markup {
         get ;
         set ;
     }
 }
 /// <summary>Markup data that populates the text object&apos;s style and format</summary>
-sealed public class ITextMarkupConcrete : 
-
-ITextMarkup
+sealed public class ITextMarkupConcrete :
+    Efl.Eo.EoWrapper
+    , ITextMarkup
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -47,86 +47,12 @@ ITextMarkup
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_text_markup_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ITextMarkup"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextMarkupConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextMarkupConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ITextMarkupConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Markup property</summary>
@@ -143,7 +69,7 @@ ITextMarkup
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Markup property</summary>
-/// <value>The markup-text representation set to this text.</value>
+    /// <value>The markup-text representation set to this text.</value>
     public System.String Markup {
         get { return GetMarkup(); }
         set { SetMarkup(value); }
@@ -193,7 +119,7 @@ ITextMarkup
             return Efl.ITextMarkupConcrete.efl_text_markup_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_text_markup_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -206,13 +132,13 @@ ITextMarkup
         private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_markup_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextMarkup)wrapper).GetMarkup();
+                    _ret_var = ((ITextMarkup)ws.Target).GetMarkup();
                 }
                 catch (Exception e)
                 {
@@ -242,13 +168,13 @@ ITextMarkup
         private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkup)wrapper).SetMarkup(markup);
+                    ((ITextMarkup)ws.Target).SetMarkup(markup);
                 }
                 catch (Exception e)
                 {
@@ -266,7 +192,7 @@ ITextMarkup
 
         private static efl_text_markup_set_delegate efl_text_markup_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 96070e3..4f47380 100644 (file)
@@ -29,13 +29,13 @@ void SetMarkupRange(Efl.TextCursorCursor start, Efl.TextCursorCursor end, System
 void CursorMarkupInsert(Efl.TextCursorCursor cur, System.String markup);
             }
 /// <summary>Markup data that populates the text object&apos;s style and format</summary>
-sealed public class ITextMarkupInteractiveConcrete : 
-
-ITextMarkupInteractive
+sealed public class ITextMarkupInteractiveConcrete :
+    Efl.Eo.EoWrapper
+    , ITextMarkupInteractive
     , Efl.ITextCursor
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -50,86 +50,12 @@ ITextMarkupInteractive
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_text_markup_interactive_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ITextMarkupInteractive"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextMarkupInteractiveConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextMarkupInteractiveConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ITextMarkupInteractiveConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Markup of a given range in the text</summary>
@@ -710,7 +636,7 @@ ITextMarkupInteractive
             return Efl.ITextMarkupInteractiveConcrete.efl_text_markup_interactive_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringPassOwnershipMarshaler))]
         private delegate System.String efl_text_markup_interactive_markup_range_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.TextCursorCursor start,  Efl.TextCursorCursor end);
@@ -723,13 +649,13 @@ ITextMarkupInteractive
         private static System.String markup_range_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end)
         {
             Eina.Log.Debug("function efl_text_markup_interactive_markup_range_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextMarkupInteractive)wrapper).GetMarkupRange(start, end);
+                    _ret_var = ((ITextMarkupInteractive)ws.Target).GetMarkupRange(start, end);
                 }
                 catch (Exception e)
                 {
@@ -759,13 +685,13 @@ ITextMarkupInteractive
         private static void markup_range_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor start, Efl.TextCursorCursor end, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_interactive_markup_range_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).SetMarkupRange(start, end, markup);
+                    ((ITextMarkupInteractive)ws.Target).SetMarkupRange(start, end, markup);
                 }
                 catch (Exception e)
                 {
@@ -794,13 +720,13 @@ ITextMarkupInteractive
         private static void cursor_markup_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_interactive_cursor_markup_insert was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorMarkupInsert(cur, markup);
+                    ((ITextMarkupInteractive)ws.Target).CursorMarkupInsert(cur, markup);
                 }
                 catch (Exception e)
                 {
@@ -829,13 +755,13 @@ ITextMarkupInteractive
         private static Efl.TextCursorCursor text_cursor_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorGetType get_type)
         {
             Eina.Log.Debug("function efl_text_cursor_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.TextCursorCursor _ret_var = default(Efl.TextCursorCursor);
                 try
                 {
-                    _ret_var = ((ITextMarkupInteractive)wrapper).GetTextCursor(get_type);
+                    _ret_var = ((ITextMarkupInteractive)ws.Target).GetTextCursor(get_type);
                 }
                 catch (Exception e)
                 {
@@ -865,13 +791,13 @@ ITextMarkupInteractive
         private static int cursor_position_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextMarkupInteractive)wrapper).GetCursorPosition(cur);
+                    _ret_var = ((ITextMarkupInteractive)ws.Target).GetCursorPosition(cur);
                 }
                 catch (Exception e)
                 {
@@ -901,13 +827,13 @@ ITextMarkupInteractive
         private static void cursor_position_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int position)
         {
             Eina.Log.Debug("function efl_text_cursor_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).SetCursorPosition(cur, position);
+                    ((ITextMarkupInteractive)ws.Target).SetCursorPosition(cur, position);
                 }
                 catch (Exception e)
                 {
@@ -936,13 +862,13 @@ ITextMarkupInteractive
         private static Eina.Unicode cursor_content_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Unicode _ret_var = default(Eina.Unicode);
                 try
                 {
-                    _ret_var = ((ITextMarkupInteractive)wrapper).GetCursorContent(cur);
+                    _ret_var = ((ITextMarkupInteractive)ws.Target).GetCursorContent(cur);
                 }
                 catch (Exception e)
                 {
@@ -972,13 +898,13 @@ ITextMarkupInteractive
         private static bool cursor_geometry_get(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, Efl.TextCursorType ctype, out int cx, out int cy, out int cw, out int ch, out int cx2, out int cy2, out int cw2, out int ch2)
         {
             Eina.Log.Debug("function efl_text_cursor_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                         cx = default(int);        cy = default(int);        cw = default(int);        ch = default(int);        cx2 = default(int);        cy2 = default(int);        cw2 = default(int);        ch2 = default(int);                                                                                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextMarkupInteractive)wrapper).GetCursorGeometry(cur, ctype, out cx, out cy, out cw, out ch, out cx2, out cy2, out cw2, out ch2);
+                    _ret_var = ((ITextMarkupInteractive)ws.Target).GetCursorGeometry(cur, ctype, out cx, out cy, out cw, out ch, out cx2, out cy2, out cw2, out ch2);
                 }
                 catch (Exception e)
                 {
@@ -1008,13 +934,13 @@ ITextMarkupInteractive
         private static Efl.TextCursorCursor cursor_new(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_cursor_new was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextCursorCursor _ret_var = default(Efl.TextCursorCursor);
                 try
                 {
-                    _ret_var = ((ITextMarkupInteractive)wrapper).NewCursor();
+                    _ret_var = ((ITextMarkupInteractive)ws.Target).NewCursor();
                 }
                 catch (Exception e)
                 {
@@ -1044,13 +970,13 @@ ITextMarkupInteractive
         private static void cursor_free(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_free was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorFree(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorFree(cur);
                 }
                 catch (Exception e)
                 {
@@ -1079,13 +1005,13 @@ ITextMarkupInteractive
         private static bool cursor_equal(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
         {
             Eina.Log.Debug("function efl_text_cursor_equal was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ITextMarkupInteractive)wrapper).CursorEqual(cur1, cur2);
+                    _ret_var = ((ITextMarkupInteractive)ws.Target).CursorEqual(cur1, cur2);
                 }
                 catch (Exception e)
                 {
@@ -1115,13 +1041,13 @@ ITextMarkupInteractive
         private static int cursor_compare(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur1, Efl.TextCursorCursor cur2)
         {
             Eina.Log.Debug("function efl_text_cursor_compare was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextMarkupInteractive)wrapper).CursorCompare(cur1, cur2);
+                    _ret_var = ((ITextMarkupInteractive)ws.Target).CursorCompare(cur1, cur2);
                 }
                 catch (Exception e)
                 {
@@ -1151,13 +1077,13 @@ ITextMarkupInteractive
         private static void cursor_copy(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor dst, Efl.TextCursorCursor src)
         {
             Eina.Log.Debug("function efl_text_cursor_copy was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorCopy(dst, src);
+                    ((ITextMarkupInteractive)ws.Target).CursorCopy(dst, src);
                 }
                 catch (Exception e)
                 {
@@ -1186,13 +1112,13 @@ ITextMarkupInteractive
         private static void cursor_char_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_char_next was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorCharNext(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorCharNext(cur);
                 }
                 catch (Exception e)
                 {
@@ -1221,13 +1147,13 @@ ITextMarkupInteractive
         private static void cursor_char_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_char_prev was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorCharPrev(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorCharPrev(cur);
                 }
                 catch (Exception e)
                 {
@@ -1256,13 +1182,13 @@ ITextMarkupInteractive
         private static void cursor_cluster_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_cluster_next was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorClusterNext(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorClusterNext(cur);
                 }
                 catch (Exception e)
                 {
@@ -1291,13 +1217,13 @@ ITextMarkupInteractive
         private static void cursor_cluster_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_cluster_prev was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorClusterPrev(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorClusterPrev(cur);
                 }
                 catch (Exception e)
                 {
@@ -1326,13 +1252,13 @@ ITextMarkupInteractive
         private static void cursor_paragraph_char_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_char_first was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorParagraphCharFirst(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorParagraphCharFirst(cur);
                 }
                 catch (Exception e)
                 {
@@ -1361,13 +1287,13 @@ ITextMarkupInteractive
         private static void cursor_paragraph_char_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_char_last was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorParagraphCharLast(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorParagraphCharLast(cur);
                 }
                 catch (Exception e)
                 {
@@ -1396,13 +1322,13 @@ ITextMarkupInteractive
         private static void cursor_word_start(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_word_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorWordStart(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorWordStart(cur);
                 }
                 catch (Exception e)
                 {
@@ -1431,13 +1357,13 @@ ITextMarkupInteractive
         private static void cursor_word_end(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_word_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorWordEnd(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorWordEnd(cur);
                 }
                 catch (Exception e)
                 {
@@ -1466,13 +1392,13 @@ ITextMarkupInteractive
         private static void cursor_line_char_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_line_char_first was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorLineCharFirst(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorLineCharFirst(cur);
                 }
                 catch (Exception e)
                 {
@@ -1501,13 +1427,13 @@ ITextMarkupInteractive
         private static void cursor_line_char_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_line_char_last was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorLineCharLast(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorLineCharLast(cur);
                 }
                 catch (Exception e)
                 {
@@ -1536,13 +1462,13 @@ ITextMarkupInteractive
         private static void cursor_paragraph_first(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_first was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorParagraphFirst(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorParagraphFirst(cur);
                 }
                 catch (Exception e)
                 {
@@ -1571,13 +1497,13 @@ ITextMarkupInteractive
         private static void cursor_paragraph_last(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_last was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorParagraphLast(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorParagraphLast(cur);
                 }
                 catch (Exception e)
                 {
@@ -1606,13 +1532,13 @@ ITextMarkupInteractive
         private static void cursor_paragraph_next(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_next was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorParagraphNext(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorParagraphNext(cur);
                 }
                 catch (Exception e)
                 {
@@ -1641,13 +1567,13 @@ ITextMarkupInteractive
         private static void cursor_paragraph_prev(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_paragraph_prev was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorParagraphPrev(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorParagraphPrev(cur);
                 }
                 catch (Exception e)
                 {
@@ -1676,13 +1602,13 @@ ITextMarkupInteractive
         private static void cursor_line_jump_by(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int by)
         {
             Eina.Log.Debug("function efl_text_cursor_line_jump_by was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorLineJumpBy(cur, by);
+                    ((ITextMarkupInteractive)ws.Target).CursorLineJumpBy(cur, by);
                 }
                 catch (Exception e)
                 {
@@ -1711,13 +1637,13 @@ ITextMarkupInteractive
         private static void cursor_coord_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int x, int y)
         {
             Eina.Log.Debug("function efl_text_cursor_coord_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).SetCursorCoord(cur, x, y);
+                    ((ITextMarkupInteractive)ws.Target).SetCursorCoord(cur, x, y);
                 }
                 catch (Exception e)
                 {
@@ -1746,13 +1672,13 @@ ITextMarkupInteractive
         private static void cursor_cluster_coord_set(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, int x, int y)
         {
             Eina.Log.Debug("function efl_text_cursor_cluster_coord_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).SetCursorClusterCoord(cur, x, y);
+                    ((ITextMarkupInteractive)ws.Target).SetCursorClusterCoord(cur, x, y);
                 }
                 catch (Exception e)
                 {
@@ -1781,13 +1707,13 @@ ITextMarkupInteractive
         private static int cursor_text_insert(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur, System.String text)
         {
             Eina.Log.Debug("function efl_text_cursor_text_insert was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextMarkupInteractive)wrapper).CursorTextInsert(cur, text);
+                    _ret_var = ((ITextMarkupInteractive)ws.Target).CursorTextInsert(cur, text);
                 }
                 catch (Exception e)
                 {
@@ -1817,13 +1743,13 @@ ITextMarkupInteractive
         private static void cursor_char_delete(System.IntPtr obj, System.IntPtr pd, Efl.TextCursorCursor cur)
         {
             Eina.Log.Debug("function efl_text_cursor_char_delete was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextMarkupInteractive)wrapper).CursorCharDelete(cur);
+                    ((ITextMarkupInteractive)ws.Target).CursorCharDelete(cur);
                 }
                 catch (Exception e)
                 {
@@ -1841,7 +1767,7 @@ ITextMarkupInteractive
 
         private static efl_text_cursor_char_delete_delegate efl_text_cursor_char_delete_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 0603e2c..1d79192 100644 (file)
@@ -9,10 +9,10 @@ namespace Efl {
 
 /// <summary>Utility class for markup, such as conversions</summary>
 [Efl.TextMarkupUtil.NativeMethods]
-public class TextMarkupUtil :  Efl.Eo.IWrapper, IDisposable
+public class TextMarkupUtil : Efl.Eo.EoWrapper
 {
     ///<summary>Pointer to the native class description.</summary>
-    public virtual System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -27,20 +27,12 @@ public class TextMarkupUtil :  Efl.Eo.IWrapper, IDisposable
         }
     }
 
-    protected bool inherited;
-    protected  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_text_markup_util_class_get();
     /// <summary>Initializes a new instance of the <see cref="TextMarkupUtil"/> class.</summary>
     /// <param name="parent">Parent instance.</param>
     public TextMarkupUtil(Efl.Object parent= null
-            ) : this(efl_text_markup_util_class_get(), typeof(TextMarkupUtil), parent)
+            ) : base(efl_text_markup_util_class_get(), typeof(TextMarkupUtil), parent)
     {
         FinishInstantiation();
     }
@@ -48,106 +40,17 @@ public class TextMarkupUtil :  Efl.Eo.IWrapper, IDisposable
     /// <summary>Initializes a new instance of the <see cref="TextMarkupUtil"/> class.
     /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
     /// <param name="raw">The native pointer to be wrapped.</param>
-    protected TextMarkupUtil(System.IntPtr raw)
+    protected TextMarkupUtil(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
     }
 
     /// <summary>Initializes a new instance of the <see cref="TextMarkupUtil"/> class.
-    /// Internal usage: Constructor to actually call the native library constructors. C# subclasses
-    /// must use the public constructor only.</summary>
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
     /// <param name="baseKlass">The pointer to the base native Eo class.</param>
     /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
     /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected TextMarkupUtil(IntPtr baseKlass, System.Type managedType, Efl.Object parent)
-    {
-        inherited = ((object)this).GetType() != managedType;
-        IntPtr actual_klass = baseKlass;
-        if (inherited)
-        {
-            actual_klass = Efl.Eo.ClassRegister.GetInheritKlassOrRegister(baseKlass, ((object)this).GetType());
-        }
-
-        handle = Efl.Eo.Globals.instantiate_start(actual_klass, parent);
-        if (inherited)
-        {
-            Efl.Eo.Globals.PrivateDataSet(this);
-        }
-    }
-
-    /// <summary>Finishes instantiating this object.
-    /// Internal usage by generated code.</summary>
-    protected void FinishInstantiation()
-    {
-        handle = Efl.Eo.Globals.instantiate_end(handle);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Destructor.</summary>
-    ~TextMarkupUtil()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    protected virtual void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    protected TextMarkupUtil(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Converts a given (UTF-8) text to a markup-compatible string. This is used mainly to set a plain text with the $.markup_set property.</summary>
@@ -189,7 +92,7 @@ public class TextMarkupUtil :  Efl.Eo.IWrapper, IDisposable
             return Efl.TextMarkupUtil.efl_text_markup_util_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringPassOwnershipMarshaler))]
         private delegate System.String efl_text_markup_util_text_to_markup_delegate([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text);
@@ -202,8 +105,8 @@ public class TextMarkupUtil :  Efl.Eo.IWrapper, IDisposable
         private static System.String text_to_markup(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_markup_util_text_to_markup was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
@@ -236,8 +139,8 @@ public class TextMarkupUtil :  Efl.Eo.IWrapper, IDisposable
         private static System.String markup_to_text(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_markup_util_markup_to_text was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
@@ -259,7 +162,7 @@ public class TextMarkupUtil :  Efl.Eo.IWrapper, IDisposable
             }
         }
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index edec0cc..54c595f 100644 (file)
@@ -190,56 +190,56 @@ System.String GetGfxFilter();
 /// <param name="code">Filter code</param>
 void SetGfxFilter(System.String code);
                                                                                                                                                             /// <summary>Enable or disable backing type</summary>
-/// <value>Backing type</value>
+    /// <value>Backing type</value>
     Efl.TextStyleBackingType BackingType {
         get ;
         set ;
     }
     /// <summary>Sets an underline style on the text</summary>
-/// <value>Underline type</value>
+    /// <value>Underline type</value>
     Efl.TextStyleUnderlineType UnderlineType {
         get ;
         set ;
     }
     /// <summary>Height of underline style</summary>
-/// <value>Height</value>
+    /// <value>Height</value>
     double UnderlineHeight {
         get ;
         set ;
     }
     /// <summary>Width of dashed underline style</summary>
-/// <value>Width</value>
+    /// <value>Width</value>
     int UnderlineDashedWidth {
         get ;
         set ;
     }
     /// <summary>Gap of dashed underline style</summary>
-/// <value>Gap</value>
+    /// <value>Gap</value>
     int UnderlineDashedGap {
         get ;
         set ;
     }
     /// <summary>Type of strikethrough style</summary>
-/// <value>Strikethrough type</value>
+    /// <value>Strikethrough type</value>
     Efl.TextStyleStrikethroughType StrikethroughType {
         get ;
         set ;
     }
     /// <summary>Type of effect used for the displayed text</summary>
-/// <value>Effect type</value>
+    /// <value>Effect type</value>
     Efl.TextStyleEffectType EffectType {
         get ;
         set ;
     }
     /// <summary>Direction of shadow effect</summary>
-/// <value>Shadow direction</value>
+    /// <value>Shadow direction</value>
     Efl.TextStyleShadowDirection ShadowDirection {
         get ;
         set ;
     }
     /// <summary>Program that applies a special filter
-/// See <see cref="Efl.Gfx.IFilter"/>.</summary>
-/// <value>Filter code</value>
+    /// See <see cref="Efl.Gfx.IFilter"/>.</summary>
+    /// <value>Filter code</value>
     System.String GfxFilter {
         get ;
         set ;
@@ -247,13 +247,13 @@ void SetGfxFilter(System.String code);
 }
 /// <summary>Style to apply to the text
 /// A style can be coloring, effects, underline, strikethrough etc.</summary>
-sealed public class ITextStyleConcrete : 
-
-ITextStyle
+sealed public class ITextStyleConcrete :
+    Efl.Eo.EoWrapper
+    , ITextStyle
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -268,86 +268,12 @@ ITextStyle
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_text_style_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ITextStyle"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ITextStyleConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ITextStyleConcrete()
+    private ITextStyleConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Color of text, excluding style</summary>
@@ -650,56 +576,56 @@ ITextStyle
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Enable or disable backing type</summary>
-/// <value>Backing type</value>
+    /// <value>Backing type</value>
     public Efl.TextStyleBackingType BackingType {
         get { return GetBackingType(); }
         set { SetBackingType(value); }
     }
     /// <summary>Sets an underline style on the text</summary>
-/// <value>Underline type</value>
+    /// <value>Underline type</value>
     public Efl.TextStyleUnderlineType UnderlineType {
         get { return GetUnderlineType(); }
         set { SetUnderlineType(value); }
     }
     /// <summary>Height of underline style</summary>
-/// <value>Height</value>
+    /// <value>Height</value>
     public double UnderlineHeight {
         get { return GetUnderlineHeight(); }
         set { SetUnderlineHeight(value); }
     }
     /// <summary>Width of dashed underline style</summary>
-/// <value>Width</value>
+    /// <value>Width</value>
     public int UnderlineDashedWidth {
         get { return GetUnderlineDashedWidth(); }
         set { SetUnderlineDashedWidth(value); }
     }
     /// <summary>Gap of dashed underline style</summary>
-/// <value>Gap</value>
+    /// <value>Gap</value>
     public int UnderlineDashedGap {
         get { return GetUnderlineDashedGap(); }
         set { SetUnderlineDashedGap(value); }
     }
     /// <summary>Type of strikethrough style</summary>
-/// <value>Strikethrough type</value>
+    /// <value>Strikethrough type</value>
     public Efl.TextStyleStrikethroughType StrikethroughType {
         get { return GetStrikethroughType(); }
         set { SetStrikethroughType(value); }
     }
     /// <summary>Type of effect used for the displayed text</summary>
-/// <value>Effect type</value>
+    /// <value>Effect type</value>
     public Efl.TextStyleEffectType EffectType {
         get { return GetEffectType(); }
         set { SetEffectType(value); }
     }
     /// <summary>Direction of shadow effect</summary>
-/// <value>Shadow direction</value>
+    /// <value>Shadow direction</value>
     public Efl.TextStyleShadowDirection ShadowDirection {
         get { return GetShadowDirection(); }
         set { SetShadowDirection(value); }
     }
     /// <summary>Program that applies a special filter
-/// See <see cref="Efl.Gfx.IFilter"/>.</summary>
-/// <value>Filter code</value>
+    /// See <see cref="Efl.Gfx.IFilter"/>.</summary>
+    /// <value>Filter code</value>
     public System.String GfxFilter {
         get { return GetGfxFilter(); }
         set { SetGfxFilter(value); }
@@ -1109,7 +1035,7 @@ ITextStyle
             return Efl.ITextStyleConcrete.efl_text_style_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_text_normal_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
@@ -1122,13 +1048,13 @@ ITextStyle
         private static void normal_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_normal_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextStyle)wrapper).GetNormalColor(out r, out g, out b, out a);
+                    ((ITextStyle)ws.Target).GetNormalColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -1157,13 +1083,13 @@ ITextStyle
         private static void normal_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_normal_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextStyle)wrapper).SetNormalColor(r, g, b, a);
+                    ((ITextStyle)ws.Target).SetNormalColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1192,13 +1118,13 @@ ITextStyle
         private static Efl.TextStyleBackingType backing_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_backing_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleBackingType _ret_var = default(Efl.TextStyleBackingType);
                 try
                 {
-                    _ret_var = ((ITextStyle)wrapper).GetBackingType();
+                    _ret_var = ((ITextStyle)ws.Target).GetBackingType();
                 }
                 catch (Exception e)
                 {
@@ -1228,13 +1154,13 @@ ITextStyle
         private static void backing_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleBackingType type)
         {
             Eina.Log.Debug("function efl_text_backing_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextStyle)wrapper).SetBackingType(type);
+                    ((ITextStyle)ws.Target).SetBackingType(type);
                 }
                 catch (Exception e)
                 {
@@ -1263,13 +1189,13 @@ ITextStyle
         private static void backing_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_backing_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextStyle)wrapper).GetBackingColor(out r, out g, out b, out a);
+                    ((ITextStyle)ws.Target).GetBackingColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -1298,13 +1224,13 @@ ITextStyle
         private static void backing_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_backing_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextStyle)wrapper).SetBackingColor(r, g, b, a);
+                    ((ITextStyle)ws.Target).SetBackingColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1333,13 +1259,13 @@ ITextStyle
         private static Efl.TextStyleUnderlineType underline_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleUnderlineType _ret_var = default(Efl.TextStyleUnderlineType);
                 try
                 {
-                    _ret_var = ((ITextStyle)wrapper).GetUnderlineType();
+                    _ret_var = ((ITextStyle)ws.Target).GetUnderlineType();
                 }
                 catch (Exception e)
                 {
@@ -1369,13 +1295,13 @@ ITextStyle
         private static void underline_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleUnderlineType type)
         {
             Eina.Log.Debug("function efl_text_underline_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextStyle)wrapper).SetUnderlineType(type);
+                    ((ITextStyle)ws.Target).SetUnderlineType(type);
                 }
                 catch (Exception e)
                 {
@@ -1404,13 +1330,13 @@ ITextStyle
         private static void underline_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextStyle)wrapper).GetUnderlineColor(out r, out g, out b, out a);
+                    ((ITextStyle)ws.Target).GetUnderlineColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -1439,13 +1365,13 @@ ITextStyle
         private static void underline_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextStyle)wrapper).SetUnderlineColor(r, g, b, a);
+                    ((ITextStyle)ws.Target).SetUnderlineColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1474,13 +1400,13 @@ ITextStyle
         private static double underline_height_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_height_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ITextStyle)wrapper).GetUnderlineHeight();
+                    _ret_var = ((ITextStyle)ws.Target).GetUnderlineHeight();
                 }
                 catch (Exception e)
                 {
@@ -1510,13 +1436,13 @@ ITextStyle
         private static void underline_height_set(System.IntPtr obj, System.IntPtr pd, double height)
         {
             Eina.Log.Debug("function efl_text_underline_height_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextStyle)wrapper).SetUnderlineHeight(height);
+                    ((ITextStyle)ws.Target).SetUnderlineHeight(height);
                 }
                 catch (Exception e)
                 {
@@ -1545,13 +1471,13 @@ ITextStyle
         private static void underline_dashed_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextStyle)wrapper).GetUnderlineDashedColor(out r, out g, out b, out a);
+                    ((ITextStyle)ws.Target).GetUnderlineDashedColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -1580,13 +1506,13 @@ ITextStyle
         private static void underline_dashed_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextStyle)wrapper).SetUnderlineDashedColor(r, g, b, a);
+                    ((ITextStyle)ws.Target).SetUnderlineDashedColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1615,13 +1541,13 @@ ITextStyle
         private static int underline_dashed_width_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_width_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextStyle)wrapper).GetUnderlineDashedWidth();
+                    _ret_var = ((ITextStyle)ws.Target).GetUnderlineDashedWidth();
                 }
                 catch (Exception e)
                 {
@@ -1651,13 +1577,13 @@ ITextStyle
         private static void underline_dashed_width_set(System.IntPtr obj, System.IntPtr pd, int width)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_width_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextStyle)wrapper).SetUnderlineDashedWidth(width);
+                    ((ITextStyle)ws.Target).SetUnderlineDashedWidth(width);
                 }
                 catch (Exception e)
                 {
@@ -1686,13 +1612,13 @@ ITextStyle
         private static int underline_dashed_gap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_gap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ITextStyle)wrapper).GetUnderlineDashedGap();
+                    _ret_var = ((ITextStyle)ws.Target).GetUnderlineDashedGap();
                 }
                 catch (Exception e)
                 {
@@ -1722,13 +1648,13 @@ ITextStyle
         private static void underline_dashed_gap_set(System.IntPtr obj, System.IntPtr pd, int gap)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_gap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextStyle)wrapper).SetUnderlineDashedGap(gap);
+                    ((ITextStyle)ws.Target).SetUnderlineDashedGap(gap);
                 }
                 catch (Exception e)
                 {
@@ -1757,13 +1683,13 @@ ITextStyle
         private static void underline2_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline2_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextStyle)wrapper).GetUnderline2Color(out r, out g, out b, out a);
+                    ((ITextStyle)ws.Target).GetUnderline2Color(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -1792,13 +1718,13 @@ ITextStyle
         private static void underline2_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline2_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextStyle)wrapper).SetUnderline2Color(r, g, b, a);
+                    ((ITextStyle)ws.Target).SetUnderline2Color(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1827,13 +1753,13 @@ ITextStyle
         private static Efl.TextStyleStrikethroughType strikethrough_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_strikethrough_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleStrikethroughType _ret_var = default(Efl.TextStyleStrikethroughType);
                 try
                 {
-                    _ret_var = ((ITextStyle)wrapper).GetStrikethroughType();
+                    _ret_var = ((ITextStyle)ws.Target).GetStrikethroughType();
                 }
                 catch (Exception e)
                 {
@@ -1863,13 +1789,13 @@ ITextStyle
         private static void strikethrough_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleStrikethroughType type)
         {
             Eina.Log.Debug("function efl_text_strikethrough_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextStyle)wrapper).SetStrikethroughType(type);
+                    ((ITextStyle)ws.Target).SetStrikethroughType(type);
                 }
                 catch (Exception e)
                 {
@@ -1898,13 +1824,13 @@ ITextStyle
         private static void strikethrough_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_strikethrough_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextStyle)wrapper).GetStrikethroughColor(out r, out g, out b, out a);
+                    ((ITextStyle)ws.Target).GetStrikethroughColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -1933,13 +1859,13 @@ ITextStyle
         private static void strikethrough_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_strikethrough_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextStyle)wrapper).SetStrikethroughColor(r, g, b, a);
+                    ((ITextStyle)ws.Target).SetStrikethroughColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1968,13 +1894,13 @@ ITextStyle
         private static Efl.TextStyleEffectType effect_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_effect_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleEffectType _ret_var = default(Efl.TextStyleEffectType);
                 try
                 {
-                    _ret_var = ((ITextStyle)wrapper).GetEffectType();
+                    _ret_var = ((ITextStyle)ws.Target).GetEffectType();
                 }
                 catch (Exception e)
                 {
@@ -2004,13 +1930,13 @@ ITextStyle
         private static void effect_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleEffectType type)
         {
             Eina.Log.Debug("function efl_text_effect_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextStyle)wrapper).SetEffectType(type);
+                    ((ITextStyle)ws.Target).SetEffectType(type);
                 }
                 catch (Exception e)
                 {
@@ -2039,13 +1965,13 @@ ITextStyle
         private static void outline_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_outline_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextStyle)wrapper).GetOutlineColor(out r, out g, out b, out a);
+                    ((ITextStyle)ws.Target).GetOutlineColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -2074,13 +2000,13 @@ ITextStyle
         private static void outline_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_outline_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextStyle)wrapper).SetOutlineColor(r, g, b, a);
+                    ((ITextStyle)ws.Target).SetOutlineColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -2109,13 +2035,13 @@ ITextStyle
         private static Efl.TextStyleShadowDirection shadow_direction_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_shadow_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleShadowDirection _ret_var = default(Efl.TextStyleShadowDirection);
                 try
                 {
-                    _ret_var = ((ITextStyle)wrapper).GetShadowDirection();
+                    _ret_var = ((ITextStyle)ws.Target).GetShadowDirection();
                 }
                 catch (Exception e)
                 {
@@ -2145,13 +2071,13 @@ ITextStyle
         private static void shadow_direction_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleShadowDirection type)
         {
             Eina.Log.Debug("function efl_text_shadow_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextStyle)wrapper).SetShadowDirection(type);
+                    ((ITextStyle)ws.Target).SetShadowDirection(type);
                 }
                 catch (Exception e)
                 {
@@ -2180,13 +2106,13 @@ ITextStyle
         private static void shadow_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_shadow_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextStyle)wrapper).GetShadowColor(out r, out g, out b, out a);
+                    ((ITextStyle)ws.Target).GetShadowColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -2215,13 +2141,13 @@ ITextStyle
         private static void shadow_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_shadow_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextStyle)wrapper).SetShadowColor(r, g, b, a);
+                    ((ITextStyle)ws.Target).SetShadowColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -2250,13 +2176,13 @@ ITextStyle
         private static void glow_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_glow_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextStyle)wrapper).GetGlowColor(out r, out g, out b, out a);
+                    ((ITextStyle)ws.Target).GetGlowColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -2285,13 +2211,13 @@ ITextStyle
         private static void glow_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_glow_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextStyle)wrapper).SetGlowColor(r, g, b, a);
+                    ((ITextStyle)ws.Target).SetGlowColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -2320,13 +2246,13 @@ ITextStyle
         private static void glow2_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_glow2_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((ITextStyle)wrapper).GetGlow2Color(out r, out g, out b, out a);
+                    ((ITextStyle)ws.Target).GetGlow2Color(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -2355,13 +2281,13 @@ ITextStyle
         private static void glow2_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_glow2_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((ITextStyle)wrapper).SetGlow2Color(r, g, b, a);
+                    ((ITextStyle)ws.Target).SetGlow2Color(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -2390,13 +2316,13 @@ ITextStyle
         private static System.String gfx_filter_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_gfx_filter_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ITextStyle)wrapper).GetGfxFilter();
+                    _ret_var = ((ITextStyle)ws.Target).GetGfxFilter();
                 }
                 catch (Exception e)
                 {
@@ -2426,13 +2352,13 @@ ITextStyle
         private static void gfx_filter_set(System.IntPtr obj, System.IntPtr pd, System.String code)
         {
             Eina.Log.Debug("function efl_text_gfx_filter_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ITextStyle)wrapper).SetGfxFilter(code);
+                    ((ITextStyle)ws.Target).SetGfxFilter(code);
                 }
                 catch (Exception e)
                 {
@@ -2450,7 +2376,7 @@ ITextStyle
 
         private static efl_text_gfx_filter_set_delegate efl_text_gfx_filter_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 33d5804..74da060 100644 (file)
@@ -60,12 +60,16 @@ public struct TextChangeInfo
         this.Merge = Merge;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator TextChangeInfo(IntPtr ptr)
     {
         var tmp = (TextChangeInfo.NativeStruct)Marshal.PtrToStructure(ptr, typeof(TextChangeInfo.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct TextChangeInfo.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -106,6 +110,8 @@ public struct TextChangeInfo
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index ad77f0e..9343090 100644 (file)
@@ -8,7 +8,7 @@ using System.ComponentModel;
 namespace Efl {
 
 [Efl.Thread.NativeMethods]
-public class Thread : Efl.Task, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.ICommandLine,Efl.Io.ICloser,Efl.Io.IReader,Efl.Io.IWriter
+public class Thread : Efl.Task, Efl.IThreadIO, Efl.Core.ICommandLine, Efl.Io.ICloser, Efl.Io.IReader, Efl.Io.IWriter
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -41,7 +41,7 @@ public class Thread : Efl.Task, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.ICommandL
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Thread(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Thread"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -52,33 +52,6 @@ public class Thread : Efl.Task, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.ICommandL
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Notifies closed, when property is marked as true
     /// (Since EFL 1.22)</summary>
     public event EventHandler ClosedEvt
@@ -87,10 +60,9 @@ public class Thread : Efl.Task, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.ICommandL
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -144,14 +116,13 @@ public class Thread : Efl.Task, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.ICommandL
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IReaderCanReadChangedEvt_Args args = new Efl.Io.IReaderCanReadChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -212,10 +183,9 @@ public class Thread : Efl.Task, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.ICommandL
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -269,14 +239,13 @@ public class Thread : Efl.Task, Efl.Eo.IWrapper,Efl.IThreadIO,Efl.Core.ICommandL
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Io.IWriterCanWriteChangedEvt_Args args = new Efl.Io.IWriterCanWriteChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -535,67 +504,67 @@ array.OwnContent = false;
         set { SetOutdata(value); }
     }
     /// <summary>A commandline that encodes arguments in a command string. This command is unix shell-style, thus whitespace separates arguments unless escaped. Also a semi-colon &apos;;&apos;, ampersand &apos;&amp;&apos;, pipe/bar &apos;|&apos;, hash &apos;#&apos;, bracket, square brace, brace character (&apos;(&apos;, &apos;)&apos;, &apos;[&apos;, &apos;]&apos;, &apos;{&apos;, &apos;}&apos;), exclamation mark &apos;!&apos;,  backquote &apos;`&apos;, greator or less than (&apos;&gt;&apos; &apos;&lt;&apos;) character unless escaped or in quotes would cause args_count/value to not be generated properly, because it would force complex shell interpretation which will not be supported in evaluating the arg_count/value information, but the final shell may interpret this if this is executed via a command-line shell. To not be a complex shell command, it should be simple with paths, options and variable expansions, but nothing more complex involving the above unescaped characters.
-/// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
-/// 
-/// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
-/// 
-/// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
-/// 
-/// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
+    /// &quot;cat -option /path/file&quot; &quot;cat &apos;quoted argument&apos;&quot; &quot;cat ~/path/escaped argument&quot; &quot;/bin/cat escaped argument <c>VARIABLE</c>&quot; etc.
+    /// 
+    /// It should not try and use &quot;complex shell features&quot; if you want the arg_count and arg_value set to be correct after setting the command string. For example none of:
+    /// 
+    /// &quot;VAR=x /bin/command &amp;&amp; /bin/othercommand &gt;&amp; /dev/null&quot; &quot;VAR=x /bin/command `/bin/othercommand` | /bin/cmd2 &amp;&amp; cmd3 &amp;&quot; etc.
+    /// 
+    /// If you set the command the arg_count/value property contents can change and be completely re-evaluated by parsing the command string into an argument array set along with interpreting escapes back into individual argument strings.</summary>
     public System.String Command {
         get { return GetCommand(); }
     }
     /// <summary>Use an array to fill this object
-/// Every element of a string is a argument.</summary>
-/// <value>An array where every array field is an argument</value>
+    /// Every element of a string is a argument.</summary>
+    /// <value>An array where every array field is an argument</value>
     public Eina.Array<System.String> CommandArray {
         set { SetCommandArray(value); }
     }
     /// <summary>Use a string to fill this object
-/// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
-/// <value>A command in form of a string</value>
+    /// The string will be split at every unescaped &apos; &apos;, every resulting substring will be a new argument to the command line.</summary>
+    /// <value>A command in form of a string</value>
     public System.String CommandString {
         set { SetCommandString(value); }
     }
     /// <summary>If true will notify object was closed.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if closed, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if closed, <c>false</c> otherwise</value>
     public bool Closed {
         get { return GetClosed(); }
     }
     /// <summary>If true will automatically close resources on exec() calls.
-/// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
+    /// When using file descriptors this should set FD_CLOEXEC so they are not inherited by the processes (children or self) doing exec().
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on exec(), <c>false</c> otherwise</value>
     public bool CloseOnExec {
         get { return GetCloseOnExec(); }
         set { SetCloseOnExec(value); }
     }
     /// <summary>If true will automatically close() on object invalidate.
-/// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
+    /// If the object was disconnected from its parent (including the main loop) without close, this property will state whenever it should be closed or not.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if close on invalidate, <c>false</c> otherwise</value>
     public bool CloseOnInvalidate {
         get { return GetCloseOnInvalidate(); }
         set { SetCloseOnInvalidate(value); }
     }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IReader.Read"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be read without blocking or failing, <c>false</c> otherwise</value>
     public bool CanRead {
         get { return GetCanRead(); }
         set { SetCanRead(value); }
     }
     /// <summary>If <c>true</c> will notify end of stream.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if end of stream, <c>false</c> otherwise</value>
     public bool Eos {
         get { return GetEos(); }
         set { SetEos(value); }
     }
     /// <summary>If <c>true</c> will notify <see cref="Efl.Io.IWriter.Write"/> can be called without blocking or failing.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if it can be written without blocking or failure, <c>false</c> otherwise</value>
     public bool CanWrite {
         get { return GetCanWrite(); }
         set { SetCanWrite(value); }
@@ -866,7 +835,7 @@ array.OwnContent = false;
             return Efl.Thread.efl_thread_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_threadio_indata_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -879,13 +848,13 @@ array.OwnContent = false;
         private static System.IntPtr indata_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_threadio_indata_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).GetIndata();
+                    _ret_var = ((Thread)ws.Target).GetIndata();
                 }
                 catch (Exception e)
                 {
@@ -915,13 +884,13 @@ array.OwnContent = false;
         private static void indata_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_threadio_indata_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Thread)wrapper).SetIndata(data);
+                    ((Thread)ws.Target).SetIndata(data);
                 }
                 catch (Exception e)
                 {
@@ -950,13 +919,13 @@ array.OwnContent = false;
         private static System.IntPtr outdata_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_threadio_outdata_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).GetOutdata();
+                    _ret_var = ((Thread)ws.Target).GetOutdata();
                 }
                 catch (Exception e)
                 {
@@ -986,13 +955,13 @@ array.OwnContent = false;
         private static void outdata_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_threadio_outdata_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Thread)wrapper).SetOutdata(data);
+                    ((Thread)ws.Target).SetOutdata(data);
                 }
                 catch (Exception e)
                 {
@@ -1021,14 +990,14 @@ array.OwnContent = false;
         private static void call(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, EFlThreadIOCallInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_threadio_call was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                             EFlThreadIOCallWrapper func_wrapper = new EFlThreadIOCallWrapper(func, func_data, func_free_cb);
             
                 try
                 {
-                    ((Thread)wrapper).Call(func_wrapper.ManagedCb);
+                    ((Thread)ws.Target).Call(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -1057,14 +1026,14 @@ array.OwnContent = false;
         private static System.IntPtr call_sync(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, EFlThreadIOCallSyncInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_threadio_call_sync was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                             EFlThreadIOCallSyncWrapper func_wrapper = new EFlThreadIOCallSyncWrapper(func, func_data, func_free_cb);
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).CallSync(func_wrapper.ManagedCb);
+                    _ret_var = ((Thread)ws.Target).CallSync(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -1094,13 +1063,13 @@ array.OwnContent = false;
         private static System.String command_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_command_line_command_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).GetCommand();
+                    _ret_var = ((Thread)ws.Target).GetCommand();
                 }
                 catch (Exception e)
                 {
@@ -1130,14 +1099,14 @@ array.OwnContent = false;
         private static bool command_array_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr array)
         {
             Eina.Log.Debug("function efl_core_command_line_command_array_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_array = new Eina.Array<System.String>(array, true, true);
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).SetCommandArray(_in_array);
+                    _ret_var = ((Thread)ws.Target).SetCommandArray(_in_array);
                 }
                 catch (Exception e)
                 {
@@ -1167,13 +1136,13 @@ array.OwnContent = false;
         private static bool command_string_set(System.IntPtr obj, System.IntPtr pd, System.String str)
         {
             Eina.Log.Debug("function efl_core_command_line_command_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).SetCommandString(str);
+                    _ret_var = ((Thread)ws.Target).SetCommandString(str);
                 }
                 catch (Exception e)
                 {
@@ -1203,13 +1172,13 @@ array.OwnContent = false;
         private static System.IntPtr command_access(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_core_command_line_command_access was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Accessor<System.String> _ret_var = default(Eina.Accessor<System.String>);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).CommandAccess();
+                    _ret_var = ((Thread)ws.Target).CommandAccess();
                 }
                 catch (Exception e)
                 {
@@ -1239,13 +1208,13 @@ array.OwnContent = false;
         private static bool closed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_closed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).GetClosed();
+                    _ret_var = ((Thread)ws.Target).GetClosed();
                 }
                 catch (Exception e)
                 {
@@ -1275,13 +1244,13 @@ array.OwnContent = false;
         private static bool close_on_exec_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).GetCloseOnExec();
+                    _ret_var = ((Thread)ws.Target).GetCloseOnExec();
                 }
                 catch (Exception e)
                 {
@@ -1311,13 +1280,13 @@ array.OwnContent = false;
         private static bool close_on_exec_set(System.IntPtr obj, System.IntPtr pd, bool close_on_exec)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_exec_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).SetCloseOnExec(close_on_exec);
+                    _ret_var = ((Thread)ws.Target).SetCloseOnExec(close_on_exec);
                 }
                 catch (Exception e)
                 {
@@ -1347,13 +1316,13 @@ array.OwnContent = false;
         private static bool close_on_invalidate_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).GetCloseOnInvalidate();
+                    _ret_var = ((Thread)ws.Target).GetCloseOnInvalidate();
                 }
                 catch (Exception e)
                 {
@@ -1383,13 +1352,13 @@ array.OwnContent = false;
         private static void close_on_invalidate_set(System.IntPtr obj, System.IntPtr pd, bool close_on_invalidate)
         {
             Eina.Log.Debug("function efl_io_closer_close_on_invalidate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Thread)wrapper).SetCloseOnInvalidate(close_on_invalidate);
+                    ((Thread)ws.Target).SetCloseOnInvalidate(close_on_invalidate);
                 }
                 catch (Exception e)
                 {
@@ -1418,13 +1387,13 @@ array.OwnContent = false;
         private static Eina.Error close(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_closer_close was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).Close();
+                    _ret_var = ((Thread)ws.Target).Close();
                 }
                 catch (Exception e)
                 {
@@ -1454,13 +1423,13 @@ array.OwnContent = false;
         private static bool can_read_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).GetCanRead();
+                    _ret_var = ((Thread)ws.Target).GetCanRead();
                 }
                 catch (Exception e)
                 {
@@ -1490,13 +1459,13 @@ array.OwnContent = false;
         private static void can_read_set(System.IntPtr obj, System.IntPtr pd, bool can_read)
         {
             Eina.Log.Debug("function efl_io_reader_can_read_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Thread)wrapper).SetCanRead(can_read);
+                    ((Thread)ws.Target).SetCanRead(can_read);
                 }
                 catch (Exception e)
                 {
@@ -1525,13 +1494,13 @@ array.OwnContent = false;
         private static bool eos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_reader_eos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).GetEos();
+                    _ret_var = ((Thread)ws.Target).GetEos();
                 }
                 catch (Exception e)
                 {
@@ -1561,13 +1530,13 @@ array.OwnContent = false;
         private static void eos_set(System.IntPtr obj, System.IntPtr pd, bool is_eos)
         {
             Eina.Log.Debug("function efl_io_reader_eos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Thread)wrapper).SetEos(is_eos);
+                    ((Thread)ws.Target).SetEos(is_eos);
                 }
                 catch (Exception e)
                 {
@@ -1596,13 +1565,13 @@ array.OwnContent = false;
         private static Eina.Error read(System.IntPtr obj, System.IntPtr pd, ref Eina.RwSlice rw_slice)
         {
             Eina.Log.Debug("function efl_io_reader_read was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).Read(ref rw_slice);
+                    _ret_var = ((Thread)ws.Target).Read(ref rw_slice);
                 }
                 catch (Exception e)
                 {
@@ -1632,13 +1601,13 @@ array.OwnContent = false;
         private static bool can_write_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).GetCanWrite();
+                    _ret_var = ((Thread)ws.Target).GetCanWrite();
                 }
                 catch (Exception e)
                 {
@@ -1668,13 +1637,13 @@ array.OwnContent = false;
         private static void can_write_set(System.IntPtr obj, System.IntPtr pd, bool can_write)
         {
             Eina.Log.Debug("function efl_io_writer_can_write_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Thread)wrapper).SetCanWrite(can_write);
+                    ((Thread)ws.Target).SetCanWrite(can_write);
                 }
                 catch (Exception e)
                 {
@@ -1703,13 +1672,13 @@ array.OwnContent = false;
         private static Eina.Error write(System.IntPtr obj, System.IntPtr pd, ref Eina.Slice slice, ref Eina.Slice remaining)
         {
             Eina.Log.Debug("function efl_io_writer_write was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 remaining = default(Eina.Slice);                            Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Thread)wrapper).Write(ref slice, ref remaining);
+                    _ret_var = ((Thread)ws.Target).Write(ref slice, ref remaining);
                 }
                 catch (Exception e)
                 {
@@ -1728,7 +1697,7 @@ array.OwnContent = false;
 
         private static efl_io_writer_write_delegate efl_io_writer_write_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index cea7f34..db08e23 100644 (file)
@@ -181,13 +181,13 @@ System.IntPtr CallSync(EFlThreadIOCallSync func);
     }
 }
 /// <summary>No description supplied.</summary>
-sealed public class IThreadIOConcrete : 
-
-IThreadIO
+sealed public class IThreadIOConcrete :
+    Efl.Eo.EoWrapper
+    , IThreadIO
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -202,86 +202,12 @@ IThreadIO
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Ecore)] internal static extern System.IntPtr
         efl_threadio_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IThreadIO"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IThreadIOConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IThreadIOConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IThreadIOConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <returns>No description supplied.</returns>
@@ -415,7 +341,7 @@ IThreadIO
             return Efl.IThreadIOConcrete.efl_threadio_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_threadio_indata_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -428,13 +354,13 @@ IThreadIO
         private static System.IntPtr indata_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_threadio_indata_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((IThreadIOConcrete)wrapper).GetIndata();
+                    _ret_var = ((IThreadIOConcrete)ws.Target).GetIndata();
                 }
                 catch (Exception e)
                 {
@@ -464,13 +390,13 @@ IThreadIO
         private static void indata_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_threadio_indata_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IThreadIOConcrete)wrapper).SetIndata(data);
+                    ((IThreadIOConcrete)ws.Target).SetIndata(data);
                 }
                 catch (Exception e)
                 {
@@ -499,13 +425,13 @@ IThreadIO
         private static System.IntPtr outdata_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_threadio_outdata_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((IThreadIOConcrete)wrapper).GetOutdata();
+                    _ret_var = ((IThreadIOConcrete)ws.Target).GetOutdata();
                 }
                 catch (Exception e)
                 {
@@ -535,13 +461,13 @@ IThreadIO
         private static void outdata_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_threadio_outdata_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IThreadIOConcrete)wrapper).SetOutdata(data);
+                    ((IThreadIOConcrete)ws.Target).SetOutdata(data);
                 }
                 catch (Exception e)
                 {
@@ -570,14 +496,14 @@ IThreadIO
         private static void call(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, EFlThreadIOCallInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_threadio_call was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                             EFlThreadIOCallWrapper func_wrapper = new EFlThreadIOCallWrapper(func, func_data, func_free_cb);
             
                 try
                 {
-                    ((IThreadIOConcrete)wrapper).Call(func_wrapper.ManagedCb);
+                    ((IThreadIOConcrete)ws.Target).Call(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -606,14 +532,14 @@ IThreadIO
         private static System.IntPtr call_sync(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, EFlThreadIOCallSyncInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_threadio_call_sync was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                             EFlThreadIOCallSyncWrapper func_wrapper = new EFlThreadIOCallSyncWrapper(func, func_data, func_free_cb);
             System.IntPtr _ret_var = default(System.IntPtr);
                 try
                 {
-                    _ret_var = ((IThreadIOConcrete)wrapper).CallSync(func_wrapper.ManagedCb);
+                    _ret_var = ((IThreadIOConcrete)ws.Target).CallSync(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -632,7 +558,7 @@ IThreadIO
 
         private static efl_threadio_call_sync_delegate efl_threadio_call_sync_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 07a22ee..57c2e24 100644 (file)
@@ -53,12 +53,16 @@ public struct Time
         this.Tm_isdst = Tm_isdst;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Time(IntPtr ptr)
     {
         var tmp = (Time.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Time.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Time.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -115,6 +119,8 @@ public struct Time
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -156,12 +162,16 @@ public struct Version
         this.Build_id = Build_id;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Version(IntPtr ptr)
     {
         var tmp = (Version.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Version.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Version.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -206,6 +216,8 @@ public struct Version
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_container.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_container.eo.cs
new file mode 100644 (file)
index 0000000..adbee9a
--- /dev/null
@@ -0,0 +1,1574 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Ui {
+
+namespace ActiveView {
+
+///<summary>Event argument wrapper for event <see cref="Efl.Ui.ActiveView.Container.TransitionStartEvt"/>.</summary>
+public class ContainerTransitionStartEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public Efl.Ui.ActiveView.TransitionEvent arg { get; set; }
+}
+///<summary>Event argument wrapper for event <see cref="Efl.Ui.ActiveView.Container.TransitionEndEvt"/>.</summary>
+public class ContainerTransitionEndEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public Efl.Ui.ActiveView.TransitionEvent arg { get; set; }
+}
+/// <summary>The Active View widget is a container for other sub-widgets (views), where only one sub-widget is active at any given time.
+/// Views are added using the <see cref="Efl.IPackLinear"/> interface and the active view is selected using <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/>.
+/// 
+/// The way the different views are rendered can be customized through the <see cref="Efl.Ui.ActiveView.Container.ViewManager"/> object. For example, only the active view might be shown, or it might be shown in a central position whereas the other views are displayed on the sides, or grayed-out. All views are displayed with the same size, selected with <see cref="Efl.Ui.ActiveView.Container.ActiveViewSize"/>.
+/// 
+/// Additionally, the transition from one view to another can be animated. This animation is also controlled by the <see cref="Efl.Ui.ActiveView.Container.ViewManager"/> object.
+/// 
+/// Also, an indicator widget can be used to show a visual cue of how many views are there and which one is the active one.
+/// 
+/// This class can be used to create other widgets like Pagers, Tabbed pagers or Stacks, where each view represents a &quot;page&quot; full of other widgets. All these cases can be implemented with a different <see cref="Efl.Ui.ActiveView.Container.ViewManager"/> and use the same <see cref="Efl.Ui.ActiveView.Container"/>.</summary>
+[Efl.Ui.ActiveView.Container.NativeMethods]
+public class Container : Efl.Ui.LayoutBase, Efl.IPack, Efl.IPackLinear
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(Container))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
+        efl_ui_active_view_container_class_get();
+    /// <summary>Initializes a new instance of the <see cref="Container"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    /// <param name="style">The widget style to use. See <see cref="Efl.Ui.Widget.SetStyle"/></param>
+    public Container(Efl.Object parent
+            , System.String style = null) : base(efl_ui_active_view_container_class_get(), typeof(Container), parent)
+    {
+        if (Efl.Eo.Globals.ParamHelperCheck(style))
+        {
+            SetStyle(Efl.Eo.Globals.GetParamHelper(style));
+        }
+
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="Container"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected Container(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="Container"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected Container(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>A transition animation has started.</summary>
+    public event EventHandler<Efl.Ui.ActiveView.ContainerTransitionStartEvt_Args> TransitionStartEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Ui.ActiveView.ContainerTransitionStartEvt_Args args = new Efl.Ui.ActiveView.ContainerTransitionStartEvt_Args();
+                        args.arg =  evt.Info;
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_UI_ACTIVE_VIEW_EVENT_TRANSITION_START";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_UI_ACTIVE_VIEW_EVENT_TRANSITION_START";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event TransitionStartEvt.</summary>
+    public void OnTransitionStartEvt(Efl.Ui.ActiveView.ContainerTransitionStartEvt_Args e)
+    {
+        var key = "_EFL_UI_ACTIVE_VIEW_EVENT_TRANSITION_START";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
+        {
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
+    }
+    /// <summary>A transition animation has ended.</summary>
+    public event EventHandler<Efl.Ui.ActiveView.ContainerTransitionEndEvt_Args> TransitionEndEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Ui.ActiveView.ContainerTransitionEndEvt_Args args = new Efl.Ui.ActiveView.ContainerTransitionEndEvt_Args();
+                        args.arg =  evt.Info;
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_UI_ACTIVE_VIEW_EVENT_TRANSITION_END";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_UI_ACTIVE_VIEW_EVENT_TRANSITION_END";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event TransitionEndEvt.</summary>
+    public void OnTransitionEndEvt(Efl.Ui.ActiveView.ContainerTransitionEndEvt_Args e)
+    {
+        var key = "_EFL_UI_ACTIVE_VIEW_EVENT_TRANSITION_END";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
+        {
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
+    }
+    /// <summary>This object defines how views are rendered and animated. If it is not set, only the active view is shown and transitions are instantaneous (not animated).</summary>
+    /// <returns>The View Manager object or <c>NULL</c>.</returns>
+    virtual public Efl.Ui.ActiveView.ViewManager GetViewManager() {
+         var _ret_var = Efl.Ui.ActiveView.Container.NativeMethods.efl_ui_active_view_manager_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>This object defines how views are rendered and animated. If it is not set, only the active view is shown and transitions are instantaneous (not animated).</summary>
+    /// <param name="view_manager">The View Manager object or <c>NULL</c>.</param>
+    virtual public void SetViewManager(Efl.Ui.ActiveView.ViewManager view_manager) {
+                                 Efl.Ui.ActiveView.Container.NativeMethods.efl_ui_active_view_manager_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),view_manager);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>An indicator object to use, which will display the current state of the Active View (number of views and active one). When this object is set, it is immediately updated to reflect the current state of the widget. Its location inside the container is controlled by the <see cref="Efl.Ui.ActiveView.Container.ViewManager"/>.</summary>
+    /// <returns>The Indicator object or <c>NULL</c>.</returns>
+    virtual public Efl.Ui.ActiveView.Indicator GetIndicator() {
+         var _ret_var = Efl.Ui.ActiveView.Container.NativeMethods.efl_ui_active_view_indicator_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>An indicator object to use, which will display the current state of the Active View (number of views and active one). When this object is set, it is immediately updated to reflect the current state of the widget. Its location inside the container is controlled by the <see cref="Efl.Ui.ActiveView.Container.ViewManager"/>.</summary>
+    /// <param name="indicator">The Indicator object or <c>NULL</c>.</param>
+    virtual public void SetIndicator(Efl.Ui.ActiveView.Indicator indicator) {
+                                 Efl.Ui.ActiveView.Container.NativeMethods.efl_ui_active_view_indicator_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),indicator);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Currently active view among all the views added to this widget.
+    /// Changing this value might trigger an animation.</summary>
+    /// <returns>Index of the active view, from 0 to the number of views - 1 (<see cref="Efl.IContainer.ContentCount"/> - 1).</returns>
+    virtual public int GetActiveIndex() {
+         var _ret_var = Efl.Ui.ActiveView.Container.NativeMethods.efl_ui_active_view_active_index_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Currently active view among all the views added to this widget.
+    /// Changing this value might trigger an animation.</summary>
+    /// <param name="index">Index of the active view, from 0 to the number of views - 1 (<see cref="Efl.IContainer.ContentCount"/> - 1).</param>
+    virtual public void SetActiveIndex(int index) {
+                                 Efl.Ui.ActiveView.Container.NativeMethods.efl_ui_active_view_active_index_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>When a new view is added to this widget, the indices for the previous views might change (for example, when adding a view at the beginning of the list with <see cref="Efl.IPackLinear.PackBegin"/> all previous view&apos;s indices are increased by one).
+    /// This property controls whether the Active View should remain the same view as before (<see cref="Efl.Ui.ActiveView.ContainerGravity.Content"/>) or if the Active View should be moved to the one with the same index as before (<see cref="Efl.Ui.ActiveView.ContainerGravity.Index"/>).
+    /// 
+    /// For example, <see cref="Efl.Ui.ActiveView.ContainerGravity.Index"/> can be used to build a Stack, where <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> is always 0 and new views are pushed onto the stack with <see cref="Efl.IPackLinear.PackBegin"/> and popped from the stack with <see cref="Efl.IPackLinear.PackUnpackAt"/> 0.</summary>
+    /// <returns>Active View behavior when adding new views. Default is <see cref="Efl.Ui.ActiveView.ContainerGravity.Content"/>.</returns>
+    virtual public Efl.Ui.ActiveView.ContainerGravity GetActiveViewGravity() {
+         var _ret_var = Efl.Ui.ActiveView.Container.NativeMethods.efl_ui_active_view_gravity_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>When a new view is added to this widget, the indices for the previous views might change (for example, when adding a view at the beginning of the list with <see cref="Efl.IPackLinear.PackBegin"/> all previous view&apos;s indices are increased by one).
+    /// This property controls whether the Active View should remain the same view as before (<see cref="Efl.Ui.ActiveView.ContainerGravity.Content"/>) or if the Active View should be moved to the one with the same index as before (<see cref="Efl.Ui.ActiveView.ContainerGravity.Index"/>).
+    /// 
+    /// For example, <see cref="Efl.Ui.ActiveView.ContainerGravity.Index"/> can be used to build a Stack, where <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> is always 0 and new views are pushed onto the stack with <see cref="Efl.IPackLinear.PackBegin"/> and popped from the stack with <see cref="Efl.IPackLinear.PackUnpackAt"/> 0.</summary>
+    /// <param name="gravity">Active View behavior when adding new views. Default is <see cref="Efl.Ui.ActiveView.ContainerGravity.Content"/>.</param>
+    virtual public void SetActiveViewGravity(Efl.Ui.ActiveView.ContainerGravity gravity) {
+                                 Efl.Ui.ActiveView.Container.NativeMethods.efl_ui_active_view_gravity_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),gravity);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>The size to use when displaying the Active View. This is used by the <see cref="Efl.Ui.ActiveView.Container.ViewManager"/> to perform the rendering. Views other than the Active one may or may not use this size.</summary>
+    /// <returns>Render size for the Active View. (-1, -1) means that all available space inside the container is used.</returns>
+    virtual public Eina.Size2D GetActiveViewSize() {
+         var _ret_var = Efl.Ui.ActiveView.Container.NativeMethods.efl_ui_active_view_size_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>The size to use when displaying the Active View. This is used by the <see cref="Efl.Ui.ActiveView.Container.ViewManager"/> to perform the rendering. Views other than the Active one may or may not use this size.</summary>
+    /// <param name="size">Render size for the Active View. (-1, -1) means that all available space inside the container is used.</param>
+    virtual public void SetActiveViewSize(Eina.Size2D size) {
+         Eina.Size2D.NativeStruct _in_size = size;
+                        Efl.Ui.ActiveView.Container.NativeMethods.efl_ui_active_view_size_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),_in_size);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
+    virtual public bool ClearPack() {
+         var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Removes all packed sub-objects without unreferencing them.
+    /// Use with caution.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
+    virtual public bool UnpackAll() {
+         var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
+    virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
+                                 var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Adds a sub-object to this container.
+    /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
+    /// 
+    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
+    /// <param name="subobj">The object to pack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
+    virtual public bool Pack(Efl.Gfx.IEntity subobj) {
+                                 var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Prepend an object at the beginning of this container.
+    /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, 0).
+    /// 
+    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
+    /// <param name="subobj">Object to pack at the beginning.</param>
+    /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
+    virtual public bool PackBegin(Efl.Gfx.IEntity subobj) {
+                                 var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_begin_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Append object at the end of this container.
+    /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, -1).
+    /// 
+    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
+    /// <param name="subobj">Object to pack at the end.</param>
+    /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
+    virtual public bool PackEnd(Efl.Gfx.IEntity subobj) {
+                                 var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_end_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Prepend an object before an existing sub-object.
+    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
+    /// <param name="subobj">Object to pack before <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
+    /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
+    virtual public bool PackBefore(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
+                                                         var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_before_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>Append an object after an existing sub-object.
+    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
+    /// <param name="subobj">Object to pack after <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
+    /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
+    virtual public bool PackAfter(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
+                                                         var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_after_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>Inserts <c>subobj</c> BEFORE the sub-object at position <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
+    /// 
+    /// If <c>index</c> is less than -<c>count</c>, it will trigger <see cref="Efl.IPackLinear.PackBegin"/>(<c>subobj</c>) whereas <c>index</c> greater than <c>count</c>-1 will trigger <see cref="Efl.IPackLinear.PackEnd"/>(<c>subobj</c>).
+    /// 
+    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
+    /// <param name="subobj">Object to pack.</param>
+    /// <param name="index">Index of existing sub-object to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
+    virtual public bool PackAt(Efl.Gfx.IEntity subobj, int index) {
+                                                         var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
+        Eina.Error.RaiseIfUnhandledException();
+                                        return _ret_var;
+ }
+    /// <summary>Sub-object at a given <c>index</c> in this container.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
+    /// 
+    /// If <c>index</c> is less than -<c>count</c>, it will return the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will return the last sub-object.</summary>
+    /// <param name="index">Index of the existing sub-object to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object contained at the given <c>index</c>.</returns>
+    virtual public Efl.Gfx.IEntity GetPackContent(int index) {
+                                 var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Get the index of a sub-object in this container.</summary>
+    /// <param name="subobj">An existing sub-object in this container.</param>
+    /// <returns>-1 in case <c>subobj</c> is not found, or the index of <c>subobj</c> in the range 0 to (<c>count</c>-1).</returns>
+    virtual public int GetPackIndex(Efl.Gfx.IEntity subobj) {
+                                 var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_index_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Pop out (remove) the sub-object at the specified <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
+    /// 
+    /// If <c>index</c> is less than -<c>count</c>, it will remove the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will remove the last sub-object.</summary>
+    /// <param name="index">Index of the sub-object to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object if it could be removed.</returns>
+    virtual public Efl.Gfx.IEntity PackUnpackAt(int index) {
+                                 var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_unpack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>This object defines how views are rendered and animated. If it is not set, only the active view is shown and transitions are instantaneous (not animated).</summary>
+    /// <value>The View Manager object or <c>NULL</c>.</value>
+    public Efl.Ui.ActiveView.ViewManager ViewManager {
+        get { return GetViewManager(); }
+        set { SetViewManager(value); }
+    }
+    /// <summary>An indicator object to use, which will display the current state of the Active View (number of views and active one). When this object is set, it is immediately updated to reflect the current state of the widget. Its location inside the container is controlled by the <see cref="Efl.Ui.ActiveView.Container.ViewManager"/>.</summary>
+    /// <value>The Indicator object or <c>NULL</c>.</value>
+    public Efl.Ui.ActiveView.Indicator Indicator {
+        get { return GetIndicator(); }
+        set { SetIndicator(value); }
+    }
+    /// <summary>Currently active view among all the views added to this widget.
+    /// Changing this value might trigger an animation.</summary>
+    /// <value>Index of the active view, from 0 to the number of views - 1 (<see cref="Efl.IContainer.ContentCount"/> - 1).</value>
+    public int ActiveIndex {
+        get { return GetActiveIndex(); }
+        set { SetActiveIndex(value); }
+    }
+    /// <summary>When a new view is added to this widget, the indices for the previous views might change (for example, when adding a view at the beginning of the list with <see cref="Efl.IPackLinear.PackBegin"/> all previous view&apos;s indices are increased by one).
+    /// This property controls whether the Active View should remain the same view as before (<see cref="Efl.Ui.ActiveView.ContainerGravity.Content"/>) or if the Active View should be moved to the one with the same index as before (<see cref="Efl.Ui.ActiveView.ContainerGravity.Index"/>).
+    /// 
+    /// For example, <see cref="Efl.Ui.ActiveView.ContainerGravity.Index"/> can be used to build a Stack, where <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> is always 0 and new views are pushed onto the stack with <see cref="Efl.IPackLinear.PackBegin"/> and popped from the stack with <see cref="Efl.IPackLinear.PackUnpackAt"/> 0.</summary>
+    /// <value>Active View behavior when adding new views. Default is <see cref="Efl.Ui.ActiveView.ContainerGravity.Content"/>.</value>
+    public Efl.Ui.ActiveView.ContainerGravity ActiveViewGravity {
+        get { return GetActiveViewGravity(); }
+        set { SetActiveViewGravity(value); }
+    }
+    /// <summary>The size to use when displaying the Active View. This is used by the <see cref="Efl.Ui.ActiveView.Container.ViewManager"/> to perform the rendering. Views other than the Active one may or may not use this size.</summary>
+    /// <value>Render size for the Active View. (-1, -1) means that all available space inside the container is used.</value>
+    public Eina.Size2D ActiveViewSize {
+        get { return GetActiveViewSize(); }
+        set { SetActiveViewSize(value); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Ui.ActiveView.Container.efl_ui_active_view_container_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Ui.LayoutBase.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_ui_active_view_manager_get_static_delegate == null)
+            {
+                efl_ui_active_view_manager_get_static_delegate = new efl_ui_active_view_manager_get_delegate(view_manager_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetViewManager") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_manager_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_manager_get_static_delegate) });
+            }
+
+            if (efl_ui_active_view_manager_set_static_delegate == null)
+            {
+                efl_ui_active_view_manager_set_static_delegate = new efl_ui_active_view_manager_set_delegate(view_manager_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetViewManager") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_manager_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_manager_set_static_delegate) });
+            }
+
+            if (efl_ui_active_view_indicator_get_static_delegate == null)
+            {
+                efl_ui_active_view_indicator_get_static_delegate = new efl_ui_active_view_indicator_get_delegate(indicator_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetIndicator") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_indicator_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_indicator_get_static_delegate) });
+            }
+
+            if (efl_ui_active_view_indicator_set_static_delegate == null)
+            {
+                efl_ui_active_view_indicator_set_static_delegate = new efl_ui_active_view_indicator_set_delegate(indicator_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetIndicator") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_indicator_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_indicator_set_static_delegate) });
+            }
+
+            if (efl_ui_active_view_active_index_get_static_delegate == null)
+            {
+                efl_ui_active_view_active_index_get_static_delegate = new efl_ui_active_view_active_index_get_delegate(active_index_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetActiveIndex") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_active_index_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_active_index_get_static_delegate) });
+            }
+
+            if (efl_ui_active_view_active_index_set_static_delegate == null)
+            {
+                efl_ui_active_view_active_index_set_static_delegate = new efl_ui_active_view_active_index_set_delegate(active_index_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetActiveIndex") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_active_index_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_active_index_set_static_delegate) });
+            }
+
+            if (efl_ui_active_view_gravity_get_static_delegate == null)
+            {
+                efl_ui_active_view_gravity_get_static_delegate = new efl_ui_active_view_gravity_get_delegate(active_view_gravity_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetActiveViewGravity") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_gravity_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_gravity_get_static_delegate) });
+            }
+
+            if (efl_ui_active_view_gravity_set_static_delegate == null)
+            {
+                efl_ui_active_view_gravity_set_static_delegate = new efl_ui_active_view_gravity_set_delegate(active_view_gravity_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetActiveViewGravity") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_gravity_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_gravity_set_static_delegate) });
+            }
+
+            if (efl_ui_active_view_size_get_static_delegate == null)
+            {
+                efl_ui_active_view_size_get_static_delegate = new efl_ui_active_view_size_get_delegate(active_view_size_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetActiveViewSize") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_size_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_size_get_static_delegate) });
+            }
+
+            if (efl_ui_active_view_size_set_static_delegate == null)
+            {
+                efl_ui_active_view_size_set_static_delegate = new efl_ui_active_view_size_set_delegate(active_view_size_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetActiveViewSize") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_size_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_size_set_static_delegate) });
+            }
+
+            if (efl_pack_clear_static_delegate == null)
+            {
+                efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "ClearPack") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_clear"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_clear_static_delegate) });
+            }
+
+            if (efl_pack_unpack_all_static_delegate == null)
+            {
+                efl_pack_unpack_all_static_delegate = new efl_pack_unpack_all_delegate(unpack_all);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "UnpackAll") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack_all"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_all_static_delegate) });
+            }
+
+            if (efl_pack_unpack_static_delegate == null)
+            {
+                efl_pack_unpack_static_delegate = new efl_pack_unpack_delegate(unpack);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Unpack") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_static_delegate) });
+            }
+
+            if (efl_pack_static_delegate == null)
+            {
+                efl_pack_static_delegate = new efl_pack_delegate(pack);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Pack") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_static_delegate) });
+            }
+
+            if (efl_pack_begin_static_delegate == null)
+            {
+                efl_pack_begin_static_delegate = new efl_pack_begin_delegate(pack_begin);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "PackBegin") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_begin"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_begin_static_delegate) });
+            }
+
+            if (efl_pack_end_static_delegate == null)
+            {
+                efl_pack_end_static_delegate = new efl_pack_end_delegate(pack_end);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "PackEnd") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_end"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_end_static_delegate) });
+            }
+
+            if (efl_pack_before_static_delegate == null)
+            {
+                efl_pack_before_static_delegate = new efl_pack_before_delegate(pack_before);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "PackBefore") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_before"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_before_static_delegate) });
+            }
+
+            if (efl_pack_after_static_delegate == null)
+            {
+                efl_pack_after_static_delegate = new efl_pack_after_delegate(pack_after);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "PackAfter") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_after"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_after_static_delegate) });
+            }
+
+            if (efl_pack_at_static_delegate == null)
+            {
+                efl_pack_at_static_delegate = new efl_pack_at_delegate(pack_at);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "PackAt") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_at"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_at_static_delegate) });
+            }
+
+            if (efl_pack_content_get_static_delegate == null)
+            {
+                efl_pack_content_get_static_delegate = new efl_pack_content_get_delegate(pack_content_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetPackContent") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_content_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_content_get_static_delegate) });
+            }
+
+            if (efl_pack_index_get_static_delegate == null)
+            {
+                efl_pack_index_get_static_delegate = new efl_pack_index_get_delegate(pack_index_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetPackIndex") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_index_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_index_get_static_delegate) });
+            }
+
+            if (efl_pack_unpack_at_static_delegate == null)
+            {
+                efl_pack_unpack_at_static_delegate = new efl_pack_unpack_at_delegate(pack_unpack_at);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "PackUnpackAt") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack_at"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_at_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Ui.ActiveView.Container.efl_ui_active_view_container_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))]
+        private delegate Efl.Ui.ActiveView.ViewManager efl_ui_active_view_manager_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))]
+        public delegate Efl.Ui.ActiveView.ViewManager efl_ui_active_view_manager_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_manager_get_api_delegate> efl_ui_active_view_manager_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_manager_get_api_delegate>(Module, "efl_ui_active_view_manager_get");
+
+        private static Efl.Ui.ActiveView.ViewManager view_manager_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_manager_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Ui.ActiveView.ViewManager _ret_var = default(Efl.Ui.ActiveView.ViewManager);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).GetViewManager();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_ui_active_view_manager_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_ui_active_view_manager_get_delegate efl_ui_active_view_manager_get_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_manager_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))] Efl.Ui.ActiveView.ViewManager view_manager);
+
+        
+        public delegate void efl_ui_active_view_manager_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))] Efl.Ui.ActiveView.ViewManager view_manager);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_manager_set_api_delegate> efl_ui_active_view_manager_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_manager_set_api_delegate>(Module, "efl_ui_active_view_manager_set");
+
+        private static void view_manager_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ActiveView.ViewManager view_manager)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_manager_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Container)ws.Target).SetViewManager(view_manager);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_active_view_manager_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), view_manager);
+            }
+        }
+
+        private static efl_ui_active_view_manager_set_delegate efl_ui_active_view_manager_set_static_delegate;
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))]
+        private delegate Efl.Ui.ActiveView.Indicator efl_ui_active_view_indicator_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))]
+        public delegate Efl.Ui.ActiveView.Indicator efl_ui_active_view_indicator_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_get_api_delegate> efl_ui_active_view_indicator_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_get_api_delegate>(Module, "efl_ui_active_view_indicator_get");
+
+        private static Efl.Ui.ActiveView.Indicator indicator_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_indicator_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Ui.ActiveView.Indicator _ret_var = default(Efl.Ui.ActiveView.Indicator);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).GetIndicator();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_ui_active_view_indicator_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_ui_active_view_indicator_get_delegate efl_ui_active_view_indicator_get_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_indicator_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))] Efl.Ui.ActiveView.Indicator indicator);
+
+        
+        public delegate void efl_ui_active_view_indicator_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))] Efl.Ui.ActiveView.Indicator indicator);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_set_api_delegate> efl_ui_active_view_indicator_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_set_api_delegate>(Module, "efl_ui_active_view_indicator_set");
+
+        private static void indicator_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ActiveView.Indicator indicator)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_indicator_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Container)ws.Target).SetIndicator(indicator);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_active_view_indicator_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), indicator);
+            }
+        }
+
+        private static efl_ui_active_view_indicator_set_delegate efl_ui_active_view_indicator_set_static_delegate;
+
+        
+        private delegate int efl_ui_active_view_active_index_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate int efl_ui_active_view_active_index_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_active_index_get_api_delegate> efl_ui_active_view_active_index_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_active_index_get_api_delegate>(Module, "efl_ui_active_view_active_index_get");
+
+        private static int active_index_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_active_index_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).GetActiveIndex();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_ui_active_view_active_index_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_ui_active_view_active_index_get_delegate efl_ui_active_view_active_index_get_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_active_index_set_delegate(System.IntPtr obj, System.IntPtr pd,  int index);
+
+        
+        public delegate void efl_ui_active_view_active_index_set_api_delegate(System.IntPtr obj,  int index);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_active_index_set_api_delegate> efl_ui_active_view_active_index_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_active_index_set_api_delegate>(Module, "efl_ui_active_view_active_index_set");
+
+        private static void active_index_set(System.IntPtr obj, System.IntPtr pd, int index)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_active_index_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Container)ws.Target).SetActiveIndex(index);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_active_view_active_index_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), index);
+            }
+        }
+
+        private static efl_ui_active_view_active_index_set_delegate efl_ui_active_view_active_index_set_static_delegate;
+
+        
+        private delegate Efl.Ui.ActiveView.ContainerGravity efl_ui_active_view_gravity_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.Ui.ActiveView.ContainerGravity efl_ui_active_view_gravity_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_gravity_get_api_delegate> efl_ui_active_view_gravity_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_gravity_get_api_delegate>(Module, "efl_ui_active_view_gravity_get");
+
+        private static Efl.Ui.ActiveView.ContainerGravity active_view_gravity_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_gravity_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Ui.ActiveView.ContainerGravity _ret_var = default(Efl.Ui.ActiveView.ContainerGravity);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).GetActiveViewGravity();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_ui_active_view_gravity_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_ui_active_view_gravity_get_delegate efl_ui_active_view_gravity_get_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_gravity_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.ActiveView.ContainerGravity gravity);
+
+        
+        public delegate void efl_ui_active_view_gravity_set_api_delegate(System.IntPtr obj,  Efl.Ui.ActiveView.ContainerGravity gravity);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_gravity_set_api_delegate> efl_ui_active_view_gravity_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_gravity_set_api_delegate>(Module, "efl_ui_active_view_gravity_set");
+
+        private static void active_view_gravity_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ActiveView.ContainerGravity gravity)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_gravity_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Container)ws.Target).SetActiveViewGravity(gravity);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_active_view_gravity_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), gravity);
+            }
+        }
+
+        private static efl_ui_active_view_gravity_set_delegate efl_ui_active_view_gravity_set_static_delegate;
+
+        
+        private delegate Eina.Size2D.NativeStruct efl_ui_active_view_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Eina.Size2D.NativeStruct efl_ui_active_view_size_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_size_get_api_delegate> efl_ui_active_view_size_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_size_get_api_delegate>(Module, "efl_ui_active_view_size_get");
+
+        private static Eina.Size2D.NativeStruct active_view_size_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_size_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Eina.Size2D _ret_var = default(Eina.Size2D);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).GetActiveViewSize();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_ui_active_view_size_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_ui_active_view_size_get_delegate efl_ui_active_view_size_get_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_size_set_delegate(System.IntPtr obj, System.IntPtr pd,  Eina.Size2D.NativeStruct size);
+
+        
+        public delegate void efl_ui_active_view_size_set_api_delegate(System.IntPtr obj,  Eina.Size2D.NativeStruct size);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_size_set_api_delegate> efl_ui_active_view_size_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_size_set_api_delegate>(Module, "efl_ui_active_view_size_set");
+
+        private static void active_view_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_size_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+        Eina.Size2D _in_size = size;
+                            
+                try
+                {
+                    ((Container)ws.Target).SetActiveViewSize(_in_size);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_active_view_size_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), size);
+            }
+        }
+
+        private static efl_ui_active_view_size_set_delegate efl_ui_active_view_size_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_clear_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_clear_api_delegate> efl_pack_clear_ptr = new Efl.Eo.FunctionWrapper<efl_pack_clear_api_delegate>(Module, "efl_pack_clear");
+
+        private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_pack_clear was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).ClearPack();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_clear_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_pack_clear_delegate efl_pack_clear_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_unpack_all_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_unpack_all_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_unpack_all_api_delegate> efl_pack_unpack_all_ptr = new Efl.Eo.FunctionWrapper<efl_pack_unpack_all_api_delegate>(Module, "efl_pack_unpack_all");
+
+        private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_pack_unpack_all was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).UnpackAll();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_unpack_all_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_pack_unpack_all_delegate efl_pack_unpack_all_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_unpack_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_unpack_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_unpack_api_delegate> efl_pack_unpack_ptr = new Efl.Eo.FunctionWrapper<efl_pack_unpack_api_delegate>(Module, "efl_pack_unpack");
+
+        private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
+        {
+            Eina.Log.Debug("function efl_pack_unpack was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).Unpack(subobj);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_unpack_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
+            }
+        }
+
+        private static efl_pack_unpack_delegate efl_pack_unpack_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_api_delegate> efl_pack_ptr = new Efl.Eo.FunctionWrapper<efl_pack_api_delegate>(Module, "efl_pack");
+
+        private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
+        {
+            Eina.Log.Debug("function efl_pack was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).Pack(subobj);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
+            }
+        }
+
+        private static efl_pack_delegate efl_pack_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_begin_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_begin_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_begin_api_delegate> efl_pack_begin_ptr = new Efl.Eo.FunctionWrapper<efl_pack_begin_api_delegate>(Module, "efl_pack_begin");
+
+        private static bool pack_begin(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
+        {
+            Eina.Log.Debug("function efl_pack_begin was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).PackBegin(subobj);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_begin_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
+            }
+        }
+
+        private static efl_pack_begin_delegate efl_pack_begin_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_end_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_end_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_end_api_delegate> efl_pack_end_ptr = new Efl.Eo.FunctionWrapper<efl_pack_end_api_delegate>(Module, "efl_pack_end");
+
+        private static bool pack_end(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
+        {
+            Eina.Log.Debug("function efl_pack_end was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).PackEnd(subobj);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_end_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
+            }
+        }
+
+        private static efl_pack_end_delegate efl_pack_end_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_before_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity existing);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_before_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity existing);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_before_api_delegate> efl_pack_before_ptr = new Efl.Eo.FunctionWrapper<efl_pack_before_api_delegate>(Module, "efl_pack_before");
+
+        private static bool pack_before(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
+        {
+            Eina.Log.Debug("function efl_pack_before was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).PackBefore(subobj, existing);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_before_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, existing);
+            }
+        }
+
+        private static efl_pack_before_delegate efl_pack_before_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_after_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity existing);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_after_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity existing);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_after_api_delegate> efl_pack_after_ptr = new Efl.Eo.FunctionWrapper<efl_pack_after_api_delegate>(Module, "efl_pack_after");
+
+        private static bool pack_after(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
+        {
+            Eina.Log.Debug("function efl_pack_after was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).PackAfter(subobj, existing);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_after_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, existing);
+            }
+        }
+
+        private static efl_pack_after_delegate efl_pack_after_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_at_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_at_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_at_api_delegate> efl_pack_at_ptr = new Efl.Eo.FunctionWrapper<efl_pack_at_api_delegate>(Module, "efl_pack_at");
+
+        private static bool pack_at(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
+        {
+            Eina.Log.Debug("function efl_pack_at was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).PackAt(subobj, index);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_at_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, index);
+            }
+        }
+
+        private static efl_pack_at_delegate efl_pack_at_static_delegate;
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        private delegate Efl.Gfx.IEntity efl_pack_content_get_delegate(System.IntPtr obj, System.IntPtr pd,  int index);
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        public delegate Efl.Gfx.IEntity efl_pack_content_get_api_delegate(System.IntPtr obj,  int index);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_content_get_api_delegate> efl_pack_content_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_content_get_api_delegate>(Module, "efl_pack_content_get");
+
+        private static Efl.Gfx.IEntity pack_content_get(System.IntPtr obj, System.IntPtr pd, int index)
+        {
+            Eina.Log.Debug("function efl_pack_content_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).GetPackContent(index);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_content_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), index);
+            }
+        }
+
+        private static efl_pack_content_get_delegate efl_pack_content_get_static_delegate;
+
+        
+        private delegate int efl_pack_index_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        
+        public delegate int efl_pack_index_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_index_get_api_delegate> efl_pack_index_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_index_get_api_delegate>(Module, "efl_pack_index_get");
+
+        private static int pack_index_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
+        {
+            Eina.Log.Debug("function efl_pack_index_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).GetPackIndex(subobj);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_index_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
+            }
+        }
+
+        private static efl_pack_index_get_delegate efl_pack_index_get_static_delegate;
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        private delegate Efl.Gfx.IEntity efl_pack_unpack_at_delegate(System.IntPtr obj, System.IntPtr pd,  int index);
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        public delegate Efl.Gfx.IEntity efl_pack_unpack_at_api_delegate(System.IntPtr obj,  int index);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_unpack_at_api_delegate> efl_pack_unpack_at_ptr = new Efl.Eo.FunctionWrapper<efl_pack_unpack_at_api_delegate>(Module, "efl_pack_unpack_at");
+
+        private static Efl.Gfx.IEntity pack_unpack_at(System.IntPtr obj, System.IntPtr pd, int index)
+        {
+            Eina.Log.Debug("function efl_pack_unpack_at was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
+                try
+                {
+                    _ret_var = ((Container)ws.Target).PackUnpackAt(index);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_unpack_at_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), index);
+            }
+        }
+
+        private static efl_pack_unpack_at_delegate efl_pack_unpack_at_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
+}
+
+namespace Efl {
+
+namespace Ui {
+
+namespace ActiveView {
+
+/// <summary>This enum controls the behavior of <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> when indices are shifted due to object addition or removal.</summary>
+public enum ContainerGravity
+{
+/// <summary>When a view is added or removed from the container, the <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> will be adjusted as necessary so it points to the same view as before.</summary>
+Content = 0,
+/// <summary>When a view is added or removed from the container, the <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> will remain the same, possibly pointing to a different view.</summary>
+Index = 1,
+}
+
+}
+
+}
+
+}
+
+namespace Efl {
+
+namespace Ui {
+
+namespace ActiveView {
+
+/// <summary>Information regarding transition events.</summary>
+[StructLayout(LayoutKind.Sequential)]
+public struct TransitionEvent
+{
+    /// <summary>The view index from where the transition started, -1 if not known.</summary>
+    public int From;
+    /// <summary>The view index to where the transition is headed, -1 if not known.</summary>
+    public int To;
+    ///<summary>Constructor for TransitionEvent.</summary>
+    public TransitionEvent(
+        int From = default(int),
+        int To = default(int)    )
+    {
+        this.From = From;
+        this.To = To;
+    }
+
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
+    public static implicit operator TransitionEvent(IntPtr ptr)
+    {
+        var tmp = (TransitionEvent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(TransitionEvent.NativeStruct));
+        return tmp;
+    }
+
+    #pragma warning disable CS1591
+
+    ///<summary>Internal wrapper for struct TransitionEvent.</summary>
+    [StructLayout(LayoutKind.Sequential)]
+    public struct NativeStruct
+    {
+        
+        public int From;
+        
+        public int To;
+        ///<summary>Implicit conversion to the internal/marshalling representation.</summary>
+        public static implicit operator TransitionEvent.NativeStruct(TransitionEvent _external_struct)
+        {
+            var _internal_struct = new TransitionEvent.NativeStruct();
+            _internal_struct.From = _external_struct.From;
+            _internal_struct.To = _external_struct.To;
+            return _internal_struct;
+        }
+
+        ///<summary>Implicit conversion to the managed representation.</summary>
+        public static implicit operator TransitionEvent(TransitionEvent.NativeStruct _internal_struct)
+        {
+            var _external_struct = new TransitionEvent();
+            _external_struct.From = _internal_struct.From;
+            _external_struct.To = _internal_struct.To;
+            return _external_struct;
+        }
+
+    }
+
+    #pragma warning restore CS1591
+
+}
+
+}
+
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_indicator.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_indicator.eo.cs
new file mode 100644 (file)
index 0000000..b1b56cf
--- /dev/null
@@ -0,0 +1,319 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Ui {
+
+namespace ActiveView {
+
+/// <summary>Object used by <see cref="Efl.Ui.ActiveView.Container"/> to render an indication of the active view&apos;s position among the rest of the container&apos;s views.
+/// An example would be Android&apos;s little dots in the home screen.</summary>
+[Efl.Ui.ActiveView.Indicator.NativeMethods]
+public abstract class Indicator : Efl.Object
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(Indicator))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
+        efl_ui_active_view_indicator_class_get();
+    /// <summary>Initializes a new instance of the <see cref="Indicator"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public Indicator(Efl.Object parent= null
+            ) : base(efl_ui_active_view_indicator_class_get(), typeof(Indicator), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="Indicator"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected Indicator(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    [Efl.Eo.PrivateNativeClass]
+    private class IndicatorRealized : Indicator
+    {
+        private IndicatorRealized(IntPtr ptr) : base(ptr)
+        {
+        }
+    }
+    /// <summary>Initializes a new instance of the <see cref="Indicator"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected Indicator(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>This method is called the first time an <see cref="Efl.Ui.ActiveView.Indicator"/> is assigned to an <see cref="Efl.Ui.ActiveView.Container"/>, binding them together.
+    /// This call can be used to setup the indicator part of the <c>active_view</c>.
+    /// 
+    /// The Active View of the container (if there is any) will be informed to the indicator by a later call to <see cref="Efl.Ui.ActiveView.Indicator.UpdatePosition"/>.</summary>
+    /// <param name="active_view">The container to bind this indicator to.</param>
+    virtual public void Bind(Efl.Ui.ActiveView.Container active_view) {
+                                 Efl.Ui.ActiveView.Indicator.NativeMethods.efl_ui_active_view_indicator_bind_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),active_view);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>A <c>subobj</c> has been added at position <c>index</c> in the bound container.
+    /// The manager should check the container&apos;s <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> since indices might have shifted due to the insertion of the new object.</summary>
+    /// <param name="subobj">The new object that has been added to the container.</param>
+    /// <param name="index">The index of the new object in the container&apos;s list.</param>
+    virtual public void AddContent(Efl.Gfx.IEntity subobj, int index) {
+                                                         Efl.Ui.ActiveView.Indicator.NativeMethods.efl_ui_active_view_indicator_content_add_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>The <c>subobj</c> at position <c>index</c> in the bound container has been removed.
+    /// The manager should check the container&apos;s <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> since indices might have shifted due to the removal of the object.</summary>
+    /// <param name="subobj">The object being removed from the container.</param>
+    /// <param name="index">The index this object had in the container&apos;s list.</param>
+    virtual public void DelContent(Efl.Gfx.IEntity subobj, int index) {
+                                                         Efl.Ui.ActiveView.Indicator.NativeMethods.efl_ui_active_view_indicator_content_del_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>This method tells the indicator that <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> has changed in the bound container.
+    /// <c>position</c> ranges from -1 to the number of views in the bound container (<see cref="Efl.IContainer.ContentCount"/>). Notice this allows moving to a position before the first view or past the last view, which might happen if the view is thumb-scrolled out-of-bounds. Indicators can choose to render these out-of-bounds positions or not.
+    /// 
+    /// Fractional values indicate positions in-between two views and should be respected to obtain a smooth transition.</summary>
+    /// <param name="position">The index of the active view, or a value in-between views if a transition is currently playing.</param>
+    virtual public void UpdatePosition(double position) {
+                                 Efl.Ui.ActiveView.Indicator.NativeMethods.efl_ui_active_view_indicator_position_update_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),position);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Ui.ActiveView.Indicator.efl_ui_active_view_indicator_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Object.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_ui_active_view_indicator_bind_static_delegate == null)
+            {
+                efl_ui_active_view_indicator_bind_static_delegate = new efl_ui_active_view_indicator_bind_delegate(bind);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Bind") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_indicator_bind"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_indicator_bind_static_delegate) });
+            }
+
+            if (efl_ui_active_view_indicator_content_add_static_delegate == null)
+            {
+                efl_ui_active_view_indicator_content_add_static_delegate = new efl_ui_active_view_indicator_content_add_delegate(content_add);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "AddContent") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_indicator_content_add"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_indicator_content_add_static_delegate) });
+            }
+
+            if (efl_ui_active_view_indicator_content_del_static_delegate == null)
+            {
+                efl_ui_active_view_indicator_content_del_static_delegate = new efl_ui_active_view_indicator_content_del_delegate(content_del);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "DelContent") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_indicator_content_del"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_indicator_content_del_static_delegate) });
+            }
+
+            if (efl_ui_active_view_indicator_position_update_static_delegate == null)
+            {
+                efl_ui_active_view_indicator_position_update_static_delegate = new efl_ui_active_view_indicator_position_update_delegate(position_update);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "UpdatePosition") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_indicator_position_update"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_indicator_position_update_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Ui.ActiveView.Indicator.efl_ui_active_view_indicator_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate void efl_ui_active_view_indicator_bind_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.ActiveView.Container active_view);
+
+        
+        public delegate void efl_ui_active_view_indicator_bind_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.ActiveView.Container active_view);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_bind_api_delegate> efl_ui_active_view_indicator_bind_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_bind_api_delegate>(Module, "efl_ui_active_view_indicator_bind");
+
+        private static void bind(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ActiveView.Container active_view)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_indicator_bind was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Indicator)ws.Target).Bind(active_view);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_active_view_indicator_bind_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), active_view);
+            }
+        }
+
+        private static efl_ui_active_view_indicator_bind_delegate efl_ui_active_view_indicator_bind_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_indicator_content_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
+
+        
+        public delegate void efl_ui_active_view_indicator_content_add_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_content_add_api_delegate> efl_ui_active_view_indicator_content_add_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_content_add_api_delegate>(Module, "efl_ui_active_view_indicator_content_add");
+
+        private static void content_add(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_indicator_content_add was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Indicator)ws.Target).AddContent(subobj, index);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_ui_active_view_indicator_content_add_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, index);
+            }
+        }
+
+        private static efl_ui_active_view_indicator_content_add_delegate efl_ui_active_view_indicator_content_add_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_indicator_content_del_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
+
+        
+        public delegate void efl_ui_active_view_indicator_content_del_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_content_del_api_delegate> efl_ui_active_view_indicator_content_del_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_content_del_api_delegate>(Module, "efl_ui_active_view_indicator_content_del");
+
+        private static void content_del(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_indicator_content_del was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Indicator)ws.Target).DelContent(subobj, index);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_ui_active_view_indicator_content_del_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, index);
+            }
+        }
+
+        private static efl_ui_active_view_indicator_content_del_delegate efl_ui_active_view_indicator_content_del_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_indicator_position_update_delegate(System.IntPtr obj, System.IntPtr pd,  double position);
+
+        
+        public delegate void efl_ui_active_view_indicator_position_update_api_delegate(System.IntPtr obj,  double position);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_position_update_api_delegate> efl_ui_active_view_indicator_position_update_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_indicator_position_update_api_delegate>(Module, "efl_ui_active_view_indicator_position_update");
+
+        private static void position_update(System.IntPtr obj, System.IntPtr pd, double position)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_indicator_position_update was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Indicator)ws.Target).UpdatePosition(position);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_active_view_indicator_position_update_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), position);
+            }
+        }
+
+        private static efl_ui_active_view_indicator_position_update_delegate efl_ui_active_view_indicator_position_update_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
+}
+
@@ -7,12 +7,12 @@ using System.Threading;
 using System.ComponentModel;
 namespace Efl {
 
-namespace Page {
+namespace Ui {
 
-/// <summary>Icon type page indicator
-/// This class offers icon type indicator for <see cref="Efl.Ui.Pager"/>. This type of page indicator creates the same number of icons as pages and arrange them in a linear order. An icon has two states: default and selected.</summary>
-[Efl.Page.IndicatorIcon.NativeMethods]
-public class IndicatorIcon : Efl.Page.Indicator, Efl.Eo.IWrapper
+namespace ActiveView {
+
+[Efl.Ui.ActiveView.IndicatorIcon.NativeMethods]
+public class IndicatorIcon : Efl.Ui.ActiveView.Indicator
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -31,11 +31,11 @@ public class IndicatorIcon : Efl.Page.Indicator, Efl.Eo.IWrapper
     }
 
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
-        efl_page_indicator_icon_class_get();
+        efl_ui_active_view_indicator_icon_class_get();
     /// <summary>Initializes a new instance of the <see cref="IndicatorIcon"/> class.</summary>
     /// <param name="parent">Parent instance.</param>
     public IndicatorIcon(Efl.Object parent= null
-            ) : base(efl_page_indicator_icon_class_get(), typeof(IndicatorIcon), parent)
+            ) : base(efl_ui_active_view_indicator_icon_class_get(), typeof(IndicatorIcon), parent)
     {
         FinishInstantiation();
     }
@@ -45,7 +45,7 @@ public class IndicatorIcon : Efl.Page.Indicator, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected IndicatorIcon(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="IndicatorIcon"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,40 +56,13 @@ public class IndicatorIcon : Efl.Page.Indicator, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
-        return Efl.Page.IndicatorIcon.efl_page_indicator_icon_class_get();
+        return Efl.Ui.ActiveView.IndicatorIcon.efl_ui_active_view_indicator_icon_class_get();
     }
     /// <summary>Wrapper for native methods and virtual method delegates.
     /// For internal use by generated code only.</summary>
-    public new class NativeMethods : Efl.Page.Indicator.NativeMethods
+    public new class NativeMethods : Efl.Ui.ActiveView.Indicator.NativeMethods
     {
         /// <summary>Gets the list of Eo operations to override.</summary>
         /// <returns>The list of Eo operations to be overload.</returns>
@@ -103,12 +76,12 @@ public class IndicatorIcon : Efl.Page.Indicator, Efl.Eo.IWrapper
         /// <returns>The native class pointer.</returns>
         public override IntPtr GetEflClass()
         {
-            return Efl.Page.IndicatorIcon.efl_page_indicator_icon_class_get();
+            return Efl.Ui.ActiveView.IndicatorIcon.efl_ui_active_view_indicator_icon_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -116,3 +89,5 @@ public class IndicatorIcon : Efl.Page.Indicator, Efl.Eo.IWrapper
 
 }
 
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager.eo.cs
new file mode 100644 (file)
index 0000000..766e77f
--- /dev/null
@@ -0,0 +1,549 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Ui {
+
+namespace ActiveView {
+
+///<summary>Event argument wrapper for event <see cref="Efl.Ui.ActiveView.ViewManager.PosUpdateEvt"/>.</summary>
+public class ViewManagerPosUpdateEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public double arg { get; set; }
+}
+/// <summary>Manager object used by <see cref="Efl.Ui.ActiveView.Container"/> to handle rendering and animation of its views, and user interaction.
+/// For instance, changes to the currently active view (<see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/>) can be animated with a transition. This object can also handle user interaction. For example, dragging the active view to one side to get to a different view (like an Android home screen). Such user interactions should end up setting a new <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/>. During a transition, the evolution of the current position should be exposed by emitting <c>pos_update</c> events.</summary>
+[Efl.Ui.ActiveView.ViewManager.NativeMethods]
+public abstract class ViewManager : Efl.Object
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(ViewManager))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
+        efl_ui_active_view_view_manager_class_get();
+    /// <summary>Initializes a new instance of the <see cref="ViewManager"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public ViewManager(Efl.Object parent= null
+            ) : base(efl_ui_active_view_view_manager_class_get(), typeof(ViewManager), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ViewManager"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected ViewManager(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    [Efl.Eo.PrivateNativeClass]
+    private class ViewManagerRealized : ViewManager
+    {
+        private ViewManagerRealized(IntPtr ptr) : base(ptr)
+        {
+        }
+    }
+    /// <summary>Initializes a new instance of the <see cref="ViewManager"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected ViewManager(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Index of the view currently being displayed. Fractional values indicate a position in-between views. For instance, when transitioning from view 2 to view 3, this event should be emitted with monotonically increasing values ranging from 2.0 to 3.0. Animations can perform any movement they want, but the reported <c>pos_update</c> must move in the same direction.</summary>
+    public event EventHandler<Efl.Ui.ActiveView.ViewManagerPosUpdateEvt_Args> PosUpdateEvt
+    {
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Ui.ActiveView.ViewManagerPosUpdateEvt_Args args = new Efl.Ui.ActiveView.ViewManagerPosUpdateEvt_Args();
+                        args.arg = Eina.PrimitiveConversion.PointerToManaged<double>(evt.Info);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_UI_ACTIVE_VIEW_VIEW_MANAGER_EVENT_POS_UPDATE";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_UI_ACTIVE_VIEW_VIEW_MANAGER_EVENT_POS_UPDATE";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
+            }
+        }
+    }
+    ///<summary>Method to raise event PosUpdateEvt.</summary>
+    public void OnPosUpdateEvt(Efl.Ui.ActiveView.ViewManagerPosUpdateEvt_Args e)
+    {
+        var key = "_EFL_UI_ACTIVE_VIEW_VIEW_MANAGER_EVENT_POS_UPDATE";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
+
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
+    }
+    /// <summary>Will be called whenever the <see cref="Efl.Ui.ActiveView.Container.ActiveViewSize"/> changes so the <see cref="Efl.Ui.ActiveView.ViewManager"/> can update itself.</summary>
+    /// <param name="size">The new size of the views.</param>
+    virtual public void SetViewSize(Eina.Size2D size) {
+         Eina.Size2D.NativeStruct _in_size = size;
+                        Efl.Ui.ActiveView.ViewManager.NativeMethods.efl_ui_active_view_view_manager_view_size_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),_in_size);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>This flag can be used to disable animations.</summary>
+    /// <returns><c>true</c> if you want animations to happen, <c>false</c> otherwise.</returns>
+    virtual public bool GetAnimationEnabled() {
+         var _ret_var = Efl.Ui.ActiveView.ViewManager.NativeMethods.efl_ui_active_view_view_manager_animation_enabled_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>This flag can be used to disable animations.</summary>
+    /// <param name="enable"><c>true</c> if you want animations to happen, <c>false</c> otherwise.</param>
+    virtual public void SetAnimationEnabled(bool enable) {
+                                 Efl.Ui.ActiveView.ViewManager.NativeMethods.efl_ui_active_view_view_manager_animation_enabled_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),enable);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>This method is called the first time an <see cref="Efl.Ui.ActiveView.ViewManager"/> is assigned to an <see cref="Efl.Ui.ActiveView.Container"/>, binding them together. The manager can read the current content of the container, subscribe to events, or do any initialization it requires.</summary>
+    /// <param name="active_view">The container to bind the view manager to.</param>
+    /// <param name="group">The graphical group where the views should be added with <see cref="Efl.Canvas.Group.AddGroupMember"/> and removed with <see cref="Efl.Canvas.Group.GroupMemberRemove"/>.</param>
+    virtual public void Bind(Efl.Ui.ActiveView.Container active_view, Efl.Canvas.Group group) {
+                                                         Efl.Ui.ActiveView.ViewManager.NativeMethods.efl_ui_active_view_view_manager_bind_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),active_view, group);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>A <c>subobj</c> has been added at position <c>index</c> in the bound container.
+    /// The manager should check the container&apos;s <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> since indices might have shifted due to the insertion of the new object.</summary>
+    /// <param name="subobj">The new object that has been added to the container.</param>
+    /// <param name="index">The index of the new object in the container&apos;s list.</param>
+    virtual public void AddContent(Efl.Gfx.IEntity subobj, int index) {
+                                                         Efl.Ui.ActiveView.ViewManager.NativeMethods.efl_ui_active_view_view_manager_content_add_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>The <c>subobj</c> at position <c>index</c> in the bound container has been removed.
+    /// The manager should check the container&apos;s <see cref="Efl.Ui.ActiveView.Container.ActiveIndex"/> since indices might have shifted due to the removal of the object.</summary>
+    /// <param name="subobj">The object being removed from the container.</param>
+    /// <param name="index">The index this object had in the container&apos;s list.</param>
+    virtual public void DelContent(Efl.Gfx.IEntity subobj, int index) {
+                                                         Efl.Ui.ActiveView.ViewManager.NativeMethods.efl_ui_active_view_view_manager_content_del_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Switch from one view to another. If there was no previous view, <c>from</c> might be -1. This function should display an animation if the <see cref="Efl.Ui.ActiveView.ViewManager"/> supports them.</summary>
+    /// <param name="from">Index of the starting view in the container&apos;s list. Might be -1 if unknown.</param>
+    /// <param name="to">Index of the target view in the container&apos;s list.</param>
+    virtual public void SwitchTo(int from, int to) {
+                                                         Efl.Ui.ActiveView.ViewManager.NativeMethods.efl_ui_active_view_view_manager_switch_to_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),from, to);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Will be called whenever the <see cref="Efl.Ui.ActiveView.Container.ActiveViewSize"/> changes so the <see cref="Efl.Ui.ActiveView.ViewManager"/> can update itself.</summary>
+    /// <value>The new size of the views.</value>
+    public Eina.Size2D ViewSize {
+        set { SetViewSize(value); }
+    }
+    /// <summary>This flag can be used to disable animations.</summary>
+    /// <value><c>true</c> if you want animations to happen, <c>false</c> otherwise.</value>
+    public bool AnimationEnabled {
+        get { return GetAnimationEnabled(); }
+        set { SetAnimationEnabled(value); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Ui.ActiveView.ViewManager.efl_ui_active_view_view_manager_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Object.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_ui_active_view_view_manager_view_size_set_static_delegate == null)
+            {
+                efl_ui_active_view_view_manager_view_size_set_static_delegate = new efl_ui_active_view_view_manager_view_size_set_delegate(view_size_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetViewSize") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_view_manager_view_size_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_view_manager_view_size_set_static_delegate) });
+            }
+
+            if (efl_ui_active_view_view_manager_animation_enabled_get_static_delegate == null)
+            {
+                efl_ui_active_view_view_manager_animation_enabled_get_static_delegate = new efl_ui_active_view_view_manager_animation_enabled_get_delegate(animation_enabled_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetAnimationEnabled") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_view_manager_animation_enabled_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_view_manager_animation_enabled_get_static_delegate) });
+            }
+
+            if (efl_ui_active_view_view_manager_animation_enabled_set_static_delegate == null)
+            {
+                efl_ui_active_view_view_manager_animation_enabled_set_static_delegate = new efl_ui_active_view_view_manager_animation_enabled_set_delegate(animation_enabled_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetAnimationEnabled") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_view_manager_animation_enabled_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_view_manager_animation_enabled_set_static_delegate) });
+            }
+
+            if (efl_ui_active_view_view_manager_bind_static_delegate == null)
+            {
+                efl_ui_active_view_view_manager_bind_static_delegate = new efl_ui_active_view_view_manager_bind_delegate(bind);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Bind") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_view_manager_bind"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_view_manager_bind_static_delegate) });
+            }
+
+            if (efl_ui_active_view_view_manager_content_add_static_delegate == null)
+            {
+                efl_ui_active_view_view_manager_content_add_static_delegate = new efl_ui_active_view_view_manager_content_add_delegate(content_add);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "AddContent") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_view_manager_content_add"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_view_manager_content_add_static_delegate) });
+            }
+
+            if (efl_ui_active_view_view_manager_content_del_static_delegate == null)
+            {
+                efl_ui_active_view_view_manager_content_del_static_delegate = new efl_ui_active_view_view_manager_content_del_delegate(content_del);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "DelContent") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_view_manager_content_del"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_view_manager_content_del_static_delegate) });
+            }
+
+            if (efl_ui_active_view_view_manager_switch_to_static_delegate == null)
+            {
+                efl_ui_active_view_view_manager_switch_to_static_delegate = new efl_ui_active_view_view_manager_switch_to_delegate(switch_to);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SwitchTo") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_active_view_view_manager_switch_to"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_active_view_view_manager_switch_to_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Ui.ActiveView.ViewManager.efl_ui_active_view_view_manager_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate void efl_ui_active_view_view_manager_view_size_set_delegate(System.IntPtr obj, System.IntPtr pd,  Eina.Size2D.NativeStruct size);
+
+        
+        public delegate void efl_ui_active_view_view_manager_view_size_set_api_delegate(System.IntPtr obj,  Eina.Size2D.NativeStruct size);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_view_size_set_api_delegate> efl_ui_active_view_view_manager_view_size_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_view_size_set_api_delegate>(Module, "efl_ui_active_view_view_manager_view_size_set");
+
+        private static void view_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_view_manager_view_size_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+        Eina.Size2D _in_size = size;
+                            
+                try
+                {
+                    ((ViewManager)ws.Target).SetViewSize(_in_size);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_active_view_view_manager_view_size_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), size);
+            }
+        }
+
+        private static efl_ui_active_view_view_manager_view_size_set_delegate efl_ui_active_view_view_manager_view_size_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_ui_active_view_view_manager_animation_enabled_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_ui_active_view_view_manager_animation_enabled_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_animation_enabled_get_api_delegate> efl_ui_active_view_view_manager_animation_enabled_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_animation_enabled_get_api_delegate>(Module, "efl_ui_active_view_view_manager_animation_enabled_get");
+
+        private static bool animation_enabled_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_view_manager_animation_enabled_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((ViewManager)ws.Target).GetAnimationEnabled();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_ui_active_view_view_manager_animation_enabled_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_ui_active_view_view_manager_animation_enabled_get_delegate efl_ui_active_view_view_manager_animation_enabled_get_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_view_manager_animation_enabled_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] bool enable);
+
+        
+        public delegate void efl_ui_active_view_view_manager_animation_enabled_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.U1)] bool enable);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_animation_enabled_set_api_delegate> efl_ui_active_view_view_manager_animation_enabled_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_animation_enabled_set_api_delegate>(Module, "efl_ui_active_view_view_manager_animation_enabled_set");
+
+        private static void animation_enabled_set(System.IntPtr obj, System.IntPtr pd, bool enable)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_view_manager_animation_enabled_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((ViewManager)ws.Target).SetAnimationEnabled(enable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_active_view_view_manager_animation_enabled_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), enable);
+            }
+        }
+
+        private static efl_ui_active_view_view_manager_animation_enabled_set_delegate efl_ui_active_view_view_manager_animation_enabled_set_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_view_manager_bind_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.ActiveView.Container active_view, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Group group);
+
+        
+        public delegate void efl_ui_active_view_view_manager_bind_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.ActiveView.Container active_view, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Group group);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_bind_api_delegate> efl_ui_active_view_view_manager_bind_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_bind_api_delegate>(Module, "efl_ui_active_view_view_manager_bind");
+
+        private static void bind(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ActiveView.Container active_view, Efl.Canvas.Group group)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_view_manager_bind was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((ViewManager)ws.Target).Bind(active_view, group);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_ui_active_view_view_manager_bind_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), active_view, group);
+            }
+        }
+
+        private static efl_ui_active_view_view_manager_bind_delegate efl_ui_active_view_view_manager_bind_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_view_manager_content_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
+
+        
+        public delegate void efl_ui_active_view_view_manager_content_add_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_content_add_api_delegate> efl_ui_active_view_view_manager_content_add_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_content_add_api_delegate>(Module, "efl_ui_active_view_view_manager_content_add");
+
+        private static void content_add(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_view_manager_content_add was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((ViewManager)ws.Target).AddContent(subobj, index);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_ui_active_view_view_manager_content_add_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, index);
+            }
+        }
+
+        private static efl_ui_active_view_view_manager_content_add_delegate efl_ui_active_view_view_manager_content_add_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_view_manager_content_del_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
+
+        
+        public delegate void efl_ui_active_view_view_manager_content_del_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_content_del_api_delegate> efl_ui_active_view_view_manager_content_del_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_content_del_api_delegate>(Module, "efl_ui_active_view_view_manager_content_del");
+
+        private static void content_del(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_view_manager_content_del was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((ViewManager)ws.Target).DelContent(subobj, index);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_ui_active_view_view_manager_content_del_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, index);
+            }
+        }
+
+        private static efl_ui_active_view_view_manager_content_del_delegate efl_ui_active_view_view_manager_content_del_static_delegate;
+
+        
+        private delegate void efl_ui_active_view_view_manager_switch_to_delegate(System.IntPtr obj, System.IntPtr pd,  int from,  int to);
+
+        
+        public delegate void efl_ui_active_view_view_manager_switch_to_api_delegate(System.IntPtr obj,  int from,  int to);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_switch_to_api_delegate> efl_ui_active_view_view_manager_switch_to_ptr = new Efl.Eo.FunctionWrapper<efl_ui_active_view_view_manager_switch_to_api_delegate>(Module, "efl_ui_active_view_view_manager_switch_to");
+
+        private static void switch_to(System.IntPtr obj, System.IntPtr pd, int from, int to)
+        {
+            Eina.Log.Debug("function efl_ui_active_view_view_manager_switch_to was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((ViewManager)ws.Target).SwitchTo(from, to);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_ui_active_view_view_manager_switch_to_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), from, to);
+            }
+        }
+
+        private static efl_ui_active_view_view_manager_switch_to_delegate efl_ui_active_view_view_manager_switch_to_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager_plain.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager_plain.eo.cs
new file mode 100644 (file)
index 0000000..8e8bbab
--- /dev/null
@@ -0,0 +1,93 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Ui {
+
+namespace ActiveView {
+
+[Efl.Ui.ActiveView.ViewManagerPlain.NativeMethods]
+public class ViewManagerPlain : Efl.Ui.ActiveView.ViewManager
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(ViewManagerPlain))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
+        efl_ui_active_view_view_manager_plain_class_get();
+    /// <summary>Initializes a new instance of the <see cref="ViewManagerPlain"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public ViewManagerPlain(Efl.Object parent= null
+            ) : base(efl_ui_active_view_view_manager_plain_class_get(), typeof(ViewManagerPlain), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ViewManagerPlain"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected ViewManagerPlain(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ViewManagerPlain"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected ViewManagerPlain(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Ui.ActiveView.ViewManagerPlain.efl_ui_active_view_view_manager_plain_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Ui.ActiveView.ViewManager.NativeMethods
+    {
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Ui.ActiveView.ViewManagerPlain.efl_ui_active_view_view_manager_plain_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager_scroll.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager_scroll.eo.cs
new file mode 100644 (file)
index 0000000..d842f7e
--- /dev/null
@@ -0,0 +1,93 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Ui {
+
+namespace ActiveView {
+
+[Efl.Ui.ActiveView.ViewManagerScroll.NativeMethods]
+public class ViewManagerScroll : Efl.Ui.ActiveView.ViewManager
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(ViewManagerScroll))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
+        efl_ui_active_view_view_manager_scroll_class_get();
+    /// <summary>Initializes a new instance of the <see cref="ViewManagerScroll"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public ViewManagerScroll(Efl.Object parent= null
+            ) : base(efl_ui_active_view_view_manager_scroll_class_get(), typeof(ViewManagerScroll), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ViewManagerScroll"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected ViewManagerScroll(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ViewManagerScroll"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected ViewManagerScroll(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Ui.ActiveView.ViewManagerScroll.efl_ui_active_view_view_manager_scroll_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Ui.ActiveView.ViewManager.NativeMethods
+    {
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Ui.ActiveView.ViewManagerScroll.efl_ui_active_view_view_manager_scroll_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager_stack.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_active_view_view_manager_stack.eo.cs
new file mode 100644 (file)
index 0000000..0c34fc4
--- /dev/null
@@ -0,0 +1,93 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Ui {
+
+namespace ActiveView {
+
+[Efl.Ui.ActiveView.ViewManagerStack.NativeMethods]
+public class ViewManagerStack : Efl.Ui.ActiveView.ViewManager
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(ViewManagerStack))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
+        efl_ui_active_view_view_manager_stack_class_get();
+    /// <summary>Initializes a new instance of the <see cref="ViewManagerStack"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public ViewManagerStack(Efl.Object parent= null
+            ) : base(efl_ui_active_view_view_manager_stack_class_get(), typeof(ViewManagerStack), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ViewManagerStack"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected ViewManagerStack(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ViewManagerStack"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected ViewManagerStack(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Ui.ActiveView.ViewManagerStack.efl_ui_active_view_view_manager_stack_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Ui.ActiveView.ViewManager.NativeMethods
+    {
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Ui.ActiveView.ViewManagerStack.efl_ui_active_view_view_manager_stack_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
+}
+
index a2db689..d3bbed6 100644 (file)
@@ -16,7 +16,7 @@ public class AlertPopupButtonClickedEvt_Args : EventArgs {
 }
 /// <summary>EFL UI Alert Popup class</summary>
 [Efl.Ui.AlertPopup.NativeMethods]
-public class AlertPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
+public class AlertPopup : Efl.Ui.Popup
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -55,7 +55,7 @@ public class AlertPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AlertPopup(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AlertPopup"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -66,33 +66,6 @@ public class AlertPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when alert popup was clicked</summary>
     public event EventHandler<Efl.Ui.AlertPopupButtonClickedEvt_Args> ButtonClickedEvt
     {
@@ -100,13 +73,12 @@ public class AlertPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.AlertPopupButtonClickedEvt_Args args = new Efl.Ui.AlertPopupButtonClickedEvt_Args();
+                        Efl.Ui.AlertPopupButtonClickedEvt_Args args = new Efl.Ui.AlertPopupButtonClickedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -200,7 +172,7 @@ public class AlertPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
             return Efl.Ui.AlertPopup.efl_ui_alert_popup_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_alert_popup_button_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.AlertPopupButton type, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object icon);
@@ -213,13 +185,13 @@ public class AlertPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
         private static void button_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.AlertPopupButton type, System.String text, Efl.Object icon)
         {
             Eina.Log.Debug("function efl_ui_alert_popup_button_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((AlertPopup)wrapper).SetButton(type, text, icon);
+                    ((AlertPopup)ws.Target).SetButton(type, text, icon);
                 }
                 catch (Exception e)
                 {
@@ -237,7 +209,7 @@ public class AlertPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
 
         private static efl_ui_alert_popup_button_set_delegate efl_ui_alert_popup_button_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -281,12 +253,16 @@ public struct AlertPopupButtonClickedEvent
         this.Button_type = Button_type;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator AlertPopupButtonClickedEvent(IntPtr ptr)
     {
         var tmp = (AlertPopupButtonClickedEvent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(AlertPopupButtonClickedEvent.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct AlertPopupButtonClickedEvent.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -311,6 +287,8 @@ public struct AlertPopupButtonClickedEvent
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index ad556d4..1c3426a 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI Alert Popup internal part class</summary>
 [Efl.Ui.AlertPopupPart.NativeMethods]
-public class AlertPopupPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
+public class AlertPopupPart : Efl.Ui.LayoutPartText
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class AlertPopupPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AlertPopupPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AlertPopupPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class AlertPopupPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.AlertPopupPart.efl_ui_alert_popup_part_class_get();
@@ -105,9 +78,9 @@ public class AlertPopupPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
             return Efl.Ui.AlertPopupPart.efl_ui_alert_popup_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 8a7b777..5e659c1 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>EFL UI Anchor Popup class</summary>
 [Efl.Ui.AnchorPopup.NativeMethods]
-public class AnchorPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
+public class AnchorPopup : Efl.Ui.Popup
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class AnchorPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected AnchorPopup(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="AnchorPopup"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class AnchorPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Returns the anchor object which the popup is following.</summary>
     /// <returns>The object which popup is following.</returns>
     virtual public Efl.Canvas.Object GetAnchor() {
@@ -122,7 +95,7 @@ public class AnchorPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                                                                                          }
     /// <summary>Returns the anchor object which the popup is following.</summary>
-/// <value>The object which popup is following.</value>
+    /// <value>The object which popup is following.</value>
     public Efl.Canvas.Object Anchor {
         get { return GetAnchor(); }
         set { SetAnchor(value); }
@@ -193,7 +166,7 @@ public class AnchorPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
             return Efl.Ui.AnchorPopup.efl_ui_anchor_popup_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Canvas.Object efl_ui_anchor_popup_anchor_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -206,13 +179,13 @@ public class AnchorPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
         private static Efl.Canvas.Object anchor_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_anchor_popup_anchor_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((AnchorPopup)wrapper).GetAnchor();
+                    _ret_var = ((AnchorPopup)ws.Target).GetAnchor();
                 }
                 catch (Exception e)
                 {
@@ -242,13 +215,13 @@ public class AnchorPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
         private static void anchor_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object anchor)
         {
             Eina.Log.Debug("function efl_ui_anchor_popup_anchor_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((AnchorPopup)wrapper).SetAnchor(anchor);
+                    ((AnchorPopup)ws.Target).SetAnchor(anchor);
                 }
                 catch (Exception e)
                 {
@@ -277,13 +250,13 @@ public class AnchorPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
         private static void align_priority_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.PopupAlign first, out Efl.Ui.PopupAlign second, out Efl.Ui.PopupAlign third, out Efl.Ui.PopupAlign fourth, out Efl.Ui.PopupAlign fifth)
         {
             Eina.Log.Debug("function efl_ui_anchor_popup_align_priority_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                 first = default(Efl.Ui.PopupAlign);        second = default(Efl.Ui.PopupAlign);        third = default(Efl.Ui.PopupAlign);        fourth = default(Efl.Ui.PopupAlign);        fifth = default(Efl.Ui.PopupAlign);                                                    
                 try
                 {
-                    ((AnchorPopup)wrapper).GetAlignPriority(out first, out second, out third, out fourth, out fifth);
+                    ((AnchorPopup)ws.Target).GetAlignPriority(out first, out second, out third, out fourth, out fifth);
                 }
                 catch (Exception e)
                 {
@@ -312,13 +285,13 @@ public class AnchorPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
         private static void align_priority_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.PopupAlign first, Efl.Ui.PopupAlign second, Efl.Ui.PopupAlign third, Efl.Ui.PopupAlign fourth, Efl.Ui.PopupAlign fifth)
         {
             Eina.Log.Debug("function efl_ui_anchor_popup_align_priority_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((AnchorPopup)wrapper).SetAlignPriority(first, second, third, fourth, fifth);
+                    ((AnchorPopup)ws.Target).SetAlignPriority(first, second, third, fourth, fifth);
                 }
                 catch (Exception e)
                 {
@@ -336,7 +309,7 @@ public class AnchorPopup : Efl.Ui.Popup, Efl.Eo.IWrapper
 
         private static efl_ui_anchor_popup_align_priority_set_delegate efl_ui_anchor_popup_align_priority_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index da1c53b..fc5c1c6 100644 (file)
@@ -9,91 +9,81 @@ namespace Efl {
 
 namespace Ui {
 
-/// <summary>Efl UI autorepeat interface</summary>
+/// <summary>Interface for autorepeating clicks.
+/// This interface abstracts functions for enabling / disabling this feature. When enabled, keeping a button pressed will continuously emit the <c>repeated</c> event until the button is released. The time it takes until it starts emitting the event is given by <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
 [Efl.Ui.IAutorepeatConcrete.NativeMethods]
 public interface IAutorepeat : 
     Efl.Eo.IWrapper, IDisposable
 {
-    /// <summary>The initial timeout before the autorepeat event is generated
+    /// <summary>The initial timeout before the autorepeat event is generated.
 /// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
 /// 
-/// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatEnabled"/>, <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-/// <returns>Timeout in seconds</returns>
+/// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatEnabled"/> and <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
+/// <returns>Timeout in seconds.</returns>
 double GetAutorepeatInitialTimeout();
-    /// <summary>The initial timeout before the autorepeat event is generated
+    /// <summary>The initial timeout before the autorepeat event is generated.
 /// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
 /// 
-/// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatEnabled"/>, <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-/// <param name="t">Timeout in seconds</param>
+/// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatEnabled"/> and <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
+/// <param name="t">Timeout in seconds.</param>
 void SetAutorepeatInitialTimeout(double t);
-    /// <summary>The interval between each generated autorepeat event
+    /// <summary>The interval between each generated autorepeat event.
 /// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
 /// 
-/// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>.</summary>
-/// <returns>Interval in seconds</returns>
+/// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>.</summary>
+/// <returns>Time interval in seconds.</returns>
 double GetAutorepeatGapTimeout();
-    /// <summary>The interval between each generated autorepeat event
+    /// <summary>The interval between each generated autorepeat event.
 /// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
 /// 
-/// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>.</summary>
-/// <param name="t">Interval in seconds</param>
+/// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>.</summary>
+/// <param name="t">Time interval in seconds.</param>
 void SetAutorepeatGapTimeout(double t);
-    /// <summary>Turn on/off the autorepeat event generated when the button is kept pressed
-/// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> signal when they are clicked.
-/// 
-/// When on, keeping a button pressed will continuously emit a <c>repeated</c> signal until the button is released. The time it takes until it starts emitting the signal is given by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-/// <returns>A bool to turn on/off the event</returns>
+    /// <summary>Turn on/off the autorepeat event generated when a button is kept pressed.
+/// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> event when they are clicked.</summary>
+/// <returns>A bool to turn on/off the repeat event generation.</returns>
 bool GetAutorepeatEnabled();
-    /// <summary>Turn on/off the autorepeat event generated when the button is kept pressed
-/// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> signal when they are clicked.
-/// 
-/// When on, keeping a button pressed will continuously emit a <c>repeated</c> signal until the button is released. The time it takes until it starts emitting the signal is given by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-/// <param name="on">A bool to turn on/off the event</param>
+    /// <summary>Turn on/off the autorepeat event generated when a button is kept pressed.
+/// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> event when they are clicked.</summary>
+/// <param name="on">A bool to turn on/off the repeat event generation.</param>
 void SetAutorepeatEnabled(bool on);
-    /// <summary>Whether the button supports autorepeat.</summary>
-/// <returns><c>true</c> if autorepeat is supported, <c>false</c> otherwise</returns>
-bool GetAutorepeatSupported();
-                                /// <summary>The initial timeout before the autorepeat event is generated
-/// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
-/// 
-/// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatEnabled"/>, <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-/// <value>Timeout in seconds</value>
+                            /// <summary>Called when a repeated event is emitted</summary>
+    event EventHandler RepeatedEvt;
+    /// <summary>The initial timeout before the autorepeat event is generated.
+    /// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
+    /// 
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatEnabled"/> and <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
+    /// <value>Timeout in seconds.</value>
     double AutorepeatInitialTimeout {
         get ;
         set ;
     }
-    /// <summary>The interval between each generated autorepeat event
-/// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
-/// 
-/// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>.</summary>
-/// <value>Interval in seconds</value>
+    /// <summary>The interval between each generated autorepeat event.
+    /// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
+    /// 
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>.</summary>
+    /// <value>Time interval in seconds.</value>
     double AutorepeatGapTimeout {
         get ;
         set ;
     }
-    /// <summary>Turn on/off the autorepeat event generated when the button is kept pressed
-/// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> signal when they are clicked.
-/// 
-/// When on, keeping a button pressed will continuously emit a <c>repeated</c> signal until the button is released. The time it takes until it starts emitting the signal is given by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-/// <value>A bool to turn on/off the event</value>
+    /// <summary>Turn on/off the autorepeat event generated when a button is kept pressed.
+    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> event when they are clicked.</summary>
+    /// <value>A bool to turn on/off the repeat event generation.</value>
     bool AutorepeatEnabled {
         get ;
         set ;
     }
-    /// <summary>Whether the button supports autorepeat.</summary>
-/// <value><c>true</c> if autorepeat is supported, <c>false</c> otherwise</value>
-    bool AutorepeatSupported {
-        get ;
-    }
 }
-/// <summary>Efl UI autorepeat interface</summary>
-sealed public class IAutorepeatConcrete : 
-
-IAutorepeat
+/// <summary>Interface for autorepeating clicks.
+/// This interface abstracts functions for enabling / disabling this feature. When enabled, keeping a button pressed will continuously emit the <c>repeated</c> event until the button is released. The time it takes until it starts emitting the event is given by <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
+sealed public class IAutorepeatConcrete :
+    Efl.Eo.EoWrapper
+    , IAutorepeat
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -108,184 +98,144 @@ IAutorepeat
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_autorepeat_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IAutorepeat"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IAutorepeatConcrete(System.IntPtr raw)
+    private IAutorepeatConcrete(System.IntPtr raw) : base(raw)
     {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IAutorepeatConcrete()
-    {
-        Dispose(false);
     }
 
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
+    /// <summary>Called when a repeated event is emitted</summary>
+    public event EventHandler RepeatedEvt
     {
-        if (handle != System.IntPtr.Zero)
+        add
         {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
+            lock (eventLock)
             {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        EventArgs args = EventArgs.Empty;
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_UI_AUTOREPEAT_EVENT_REPEATED";
+                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
             }
         }
 
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
+        remove
         {
-            return false;
+            lock (eventLock)
+            {
+                string key = "_EFL_UI_AUTOREPEAT_EVENT_REPEATED";
+                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+            }
         }
-        return this.NativeHandle == other.NativeHandle;
     }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
+    ///<summary>Method to raise event RepeatedEvt.</summary>
+    public void OnRepeatedEvt(EventArgs e)
     {
-        return this.NativeHandle.ToInt32();
-    }
+        var key = "_EFL_UI_AUTOREPEAT_EVENT_REPEATED";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
 
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-
-    /// <summary>The initial timeout before the autorepeat event is generated
+    /// <summary>The initial timeout before the autorepeat event is generated.
     /// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
     /// 
-    /// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatEnabled"/>, <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-    /// <returns>Timeout in seconds</returns>
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatEnabled"/> and <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
+    /// <returns>Timeout in seconds.</returns>
     public double GetAutorepeatInitialTimeout() {
          var _ret_var = Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_initial_timeout_get_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>The initial timeout before the autorepeat event is generated
+    /// <summary>The initial timeout before the autorepeat event is generated.
     /// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
     /// 
-    /// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatEnabled"/>, <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-    /// <param name="t">Timeout in seconds</param>
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatEnabled"/> and <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
+    /// <param name="t">Timeout in seconds.</param>
     public void SetAutorepeatInitialTimeout(double t) {
                                  Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_initial_timeout_set_ptr.Value.Delegate(this.NativeHandle,t);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>The interval between each generated autorepeat event
+    /// <summary>The interval between each generated autorepeat event.
     /// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
     /// 
-    /// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>.</summary>
-    /// <returns>Interval in seconds</returns>
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>.</summary>
+    /// <returns>Time interval in seconds.</returns>
     public double GetAutorepeatGapTimeout() {
          var _ret_var = Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_gap_timeout_get_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>The interval between each generated autorepeat event
+    /// <summary>The interval between each generated autorepeat event.
     /// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
     /// 
-    /// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>.</summary>
-    /// <param name="t">Interval in seconds</param>
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>.</summary>
+    /// <param name="t">Time interval in seconds.</param>
     public void SetAutorepeatGapTimeout(double t) {
                                  Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_gap_timeout_set_ptr.Value.Delegate(this.NativeHandle,t);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Turn on/off the autorepeat event generated when the button is kept pressed
-    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> signal when they are clicked.
-    /// 
-    /// When on, keeping a button pressed will continuously emit a <c>repeated</c> signal until the button is released. The time it takes until it starts emitting the signal is given by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-    /// <returns>A bool to turn on/off the event</returns>
+    /// <summary>Turn on/off the autorepeat event generated when a button is kept pressed.
+    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> event when they are clicked.</summary>
+    /// <returns>A bool to turn on/off the repeat event generation.</returns>
     public bool GetAutorepeatEnabled() {
          var _ret_var = Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_enabled_get_ptr.Value.Delegate(this.NativeHandle);
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Turn on/off the autorepeat event generated when the button is kept pressed
-    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> signal when they are clicked.
-    /// 
-    /// When on, keeping a button pressed will continuously emit a <c>repeated</c> signal until the button is released. The time it takes until it starts emitting the signal is given by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-    /// <param name="on">A bool to turn on/off the event</param>
+    /// <summary>Turn on/off the autorepeat event generated when a button is kept pressed.
+    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> event when they are clicked.</summary>
+    /// <param name="on">A bool to turn on/off the repeat event generation.</param>
     public void SetAutorepeatEnabled(bool on) {
                                  Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_enabled_set_ptr.Value.Delegate(this.NativeHandle,on);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Whether the button supports autorepeat.</summary>
-    /// <returns><c>true</c> if autorepeat is supported, <c>false</c> otherwise</returns>
-    public bool GetAutorepeatSupported() {
-         var _ret_var = Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_supported_get_ptr.Value.Delegate(this.NativeHandle);
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>The initial timeout before the autorepeat event is generated
-/// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
-/// 
-/// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatEnabled"/>, <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-/// <value>Timeout in seconds</value>
+    /// <summary>The initial timeout before the autorepeat event is generated.
+    /// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
+    /// 
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatEnabled"/> and <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
+    /// <value>Timeout in seconds.</value>
     public double AutorepeatInitialTimeout {
         get { return GetAutorepeatInitialTimeout(); }
         set { SetAutorepeatInitialTimeout(value); }
     }
-    /// <summary>The interval between each generated autorepeat event
-/// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
-/// 
-/// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>.</summary>
-/// <value>Interval in seconds</value>
+    /// <summary>The interval between each generated autorepeat event.
+    /// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
+    /// 
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>.</summary>
+    /// <value>Time interval in seconds.</value>
     public double AutorepeatGapTimeout {
         get { return GetAutorepeatGapTimeout(); }
         set { SetAutorepeatGapTimeout(value); }
     }
-    /// <summary>Turn on/off the autorepeat event generated when the button is kept pressed
-/// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> signal when they are clicked.
-/// 
-/// When on, keeping a button pressed will continuously emit a <c>repeated</c> signal until the button is released. The time it takes until it starts emitting the signal is given by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-/// <value>A bool to turn on/off the event</value>
+    /// <summary>Turn on/off the autorepeat event generated when a button is kept pressed.
+    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> event when they are clicked.</summary>
+    /// <value>A bool to turn on/off the repeat event generation.</value>
     public bool AutorepeatEnabled {
         get { return GetAutorepeatEnabled(); }
         set { SetAutorepeatEnabled(value); }
     }
-    /// <summary>Whether the button supports autorepeat.</summary>
-/// <value><c>true</c> if autorepeat is supported, <c>false</c> otherwise</value>
-    public bool AutorepeatSupported {
-        get { return GetAutorepeatSupported(); }
-    }
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.IAutorepeatConcrete.efl_ui_autorepeat_interface_get();
@@ -362,16 +312,6 @@ IAutorepeat
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_autorepeat_enabled_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_autorepeat_enabled_set_static_delegate) });
             }
 
-            if (efl_ui_autorepeat_supported_get_static_delegate == null)
-            {
-                efl_ui_autorepeat_supported_get_static_delegate = new efl_ui_autorepeat_supported_get_delegate(autorepeat_supported_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetAutorepeatSupported") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_autorepeat_supported_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_autorepeat_supported_get_static_delegate) });
-            }
-
             return descs;
         }
         /// <summary>Returns the Eo class for the native methods of this class.</summary>
@@ -381,7 +321,7 @@ IAutorepeat
             return Efl.Ui.IAutorepeatConcrete.efl_ui_autorepeat_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_ui_autorepeat_initial_timeout_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -394,13 +334,13 @@ IAutorepeat
         private static double autorepeat_initial_timeout_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_initial_timeout_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IAutorepeat)wrapper).GetAutorepeatInitialTimeout();
+                    _ret_var = ((IAutorepeat)ws.Target).GetAutorepeatInitialTimeout();
                 }
                 catch (Exception e)
                 {
@@ -430,13 +370,13 @@ IAutorepeat
         private static void autorepeat_initial_timeout_set(System.IntPtr obj, System.IntPtr pd, double t)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_initial_timeout_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IAutorepeat)wrapper).SetAutorepeatInitialTimeout(t);
+                    ((IAutorepeat)ws.Target).SetAutorepeatInitialTimeout(t);
                 }
                 catch (Exception e)
                 {
@@ -465,13 +405,13 @@ IAutorepeat
         private static double autorepeat_gap_timeout_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_gap_timeout_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IAutorepeat)wrapper).GetAutorepeatGapTimeout();
+                    _ret_var = ((IAutorepeat)ws.Target).GetAutorepeatGapTimeout();
                 }
                 catch (Exception e)
                 {
@@ -501,13 +441,13 @@ IAutorepeat
         private static void autorepeat_gap_timeout_set(System.IntPtr obj, System.IntPtr pd, double t)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_gap_timeout_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IAutorepeat)wrapper).SetAutorepeatGapTimeout(t);
+                    ((IAutorepeat)ws.Target).SetAutorepeatGapTimeout(t);
                 }
                 catch (Exception e)
                 {
@@ -536,13 +476,13 @@ IAutorepeat
         private static bool autorepeat_enabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IAutorepeat)wrapper).GetAutorepeatEnabled();
+                    _ret_var = ((IAutorepeat)ws.Target).GetAutorepeatEnabled();
                 }
                 catch (Exception e)
                 {
@@ -572,13 +512,13 @@ IAutorepeat
         private static void autorepeat_enabled_set(System.IntPtr obj, System.IntPtr pd, bool on)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IAutorepeat)wrapper).SetAutorepeatEnabled(on);
+                    ((IAutorepeat)ws.Target).SetAutorepeatEnabled(on);
                 }
                 catch (Exception e)
                 {
@@ -596,43 +536,7 @@ IAutorepeat
 
         private static efl_ui_autorepeat_enabled_set_delegate efl_ui_autorepeat_enabled_set_static_delegate;
 
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_ui_autorepeat_supported_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_ui_autorepeat_supported_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_autorepeat_supported_get_api_delegate> efl_ui_autorepeat_supported_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_autorepeat_supported_get_api_delegate>(Module, "efl_ui_autorepeat_supported_get");
-
-        private static bool autorepeat_supported_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_ui_autorepeat_supported_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((IAutorepeat)wrapper).GetAutorepeatSupported();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_ui_autorepeat_supported_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_ui_autorepeat_supported_get_delegate efl_ui_autorepeat_supported_get_static_delegate;
-
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 71eafa2..5238470 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>The bg (background) widget is used for setting (solid) background decorations for a window (unless it has transparency enabled) or for any container object. It works just like an image, but has some properties useful for backgrounds, such as setting it to tiled, centered, scaled or stretched.</summary>
 [Efl.Ui.Bg.NativeMethods]
-public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Efl.Gfx.IImageLoadController
+public class Bg : Efl.Ui.LayoutBase, Efl.IFile, Efl.Gfx.IImage, Efl.Gfx.IImageLoadController
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Bg(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Bg"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Image data has been preloaded.</summary>
     public event EventHandler ImagePreloadEvt
     {
@@ -95,10 +68,9 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -148,10 +120,9 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -201,10 +172,9 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -254,10 +224,9 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -307,13 +276,12 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args args = new Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args();
+                        Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args args = new Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args();
                         args.arg = (Eina.Error)Marshal.PtrToStructure(evt.Info, typeof(Eina.Error));
                         try
                         {
@@ -720,149 +688,149 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
     /// <summary>Whether to use high-quality image scaling algorithm for this image.
-/// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
-/// 
-/// <c>true</c> by default</summary>
-/// <value>Whether to use smooth scale or not.</value>
+    /// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
+    /// 
+    /// <c>true</c> by default</summary>
+    /// <value>Whether to use smooth scale or not.</value>
     public bool SmoothScale {
         get { return GetSmoothScale(); }
         set { SetSmoothScale(value); }
     }
     /// <summary>Control how the image is scaled.</summary>
-/// <value>Image scale type</value>
+    /// <value>Image scale type</value>
     public Efl.Gfx.ImageScaleType ScaleType {
         get { return GetScaleType(); }
         set { SetScaleType(value); }
     }
     /// <summary>The native width/height ratio of the image.</summary>
-/// <value>The image&apos;s ratio.</value>
+    /// <value>The image&apos;s ratio.</value>
     public double Ratio {
         get { return GetRatio(); }
     }
     /// <summary>Scaling factor applied to the image borders.
-/// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
-/// 
-/// Default value is 1.0 (no scaling).</summary>
-/// <value>The scale factor.</value>
+    /// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
+    /// 
+    /// Default value is 1.0 (no scaling).</summary>
+    /// <value>The scale factor.</value>
     public double BorderScale {
         get { return GetBorderScale(); }
         set { SetBorderScale(value); }
     }
     /// <summary>Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.
-/// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
-/// 
-/// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
-/// <value>Fill mode of the center region.</value>
+    /// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
+    /// 
+    /// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
+    /// <value>Fill mode of the center region.</value>
     public Efl.Gfx.BorderFillMode BorderCenterFill {
         get { return GetBorderCenterFill(); }
         set { SetBorderCenterFill(value); }
     }
     /// <summary>This represents the size of the original image in pixels.
-/// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
-/// 
-/// This is a read-only property, and may return 0x0.</summary>
-/// <value>The size in pixels.</value>
+    /// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
+    /// 
+    /// This is a read-only property, and may return 0x0.</summary>
+    /// <value>The size in pixels.</value>
     public Eina.Size2D ImageSize {
         get { return GetImageSize(); }
     }
     /// <summary>Get the content hint setting of a given image object of the canvas.
-/// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
-/// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
+    /// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
+    /// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
     public Efl.Gfx.ImageContentHint ContentHint {
         get { return GetContentHint(); }
         set { SetContentHint(value); }
     }
     /// <summary>Get the scale hint of a given image of the canvas.
-/// This function returns the scale hint value of the given image object of the canvas.</summary>
-/// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
+    /// This function returns the scale hint value of the given image object of the canvas.</summary>
+    /// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
     public Efl.Gfx.ImageScaleHint ScaleHint {
         get { return GetScaleHint(); }
         set { SetScaleHint(value); }
     }
     /// <summary>Gets the (last) file loading error for a given object.</summary>
-/// <value>The load error code.</value>
+    /// <value>The load error code.</value>
     public Eina.Error ImageLoadError {
         get { return GetImageLoadError(); }
     }
     /// <summary>The load size of an image.
-/// The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like svg.
-/// 
-/// By default, the load size is not specified, so it is 0x0.</summary>
-/// <value>The image load size.</value>
+    /// The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like svg.
+    /// 
+    /// By default, the load size is not specified, so it is 0x0.</summary>
+    /// <value>The image load size.</value>
     public Eina.Size2D LoadSize {
         get { return GetLoadSize(); }
         set { SetLoadSize(value); }
     }
     /// <summary>Get the DPI resolution of a loaded image object in the canvas.
-/// This function returns the DPI resolution of the given canvas image.</summary>
-/// <value>The DPI resolution.</value>
+    /// This function returns the DPI resolution of the given canvas image.</summary>
+    /// <value>The DPI resolution.</value>
     public double LoadDpi {
         get { return GetLoadDpi(); }
         set { SetLoadDpi(value); }
     }
     /// <summary>Indicates whether the <see cref="Efl.Gfx.IImageLoadController.LoadRegion"/> property is supported for the current file.</summary>
-/// <value><c>true</c> if region load of the image is supported, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if region load of the image is supported, <c>false</c> otherwise</value>
     public bool LoadRegionSupport {
         get { return GetLoadRegionSupport(); }
     }
     /// <summary>Retrieve the coordinates of a given image object&apos;s selective (source image) load region.</summary>
-/// <value>A region of the image.</value>
+    /// <value>A region of the image.</value>
     public Eina.Rect LoadRegion {
         get { return GetLoadRegion(); }
         set { SetLoadRegion(value); }
     }
     /// <summary>Defines whether the orientation information in the image file should be honored.
-/// The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is <c>false</c>, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.</summary>
-/// <value><c>true</c> means that it should honor the orientation information.</value>
+    /// The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is <c>false</c>, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.</summary>
+    /// <value><c>true</c> means that it should honor the orientation information.</value>
     public bool LoadOrientation {
         get { return GetLoadOrientation(); }
         set { SetLoadOrientation(value); }
     }
     /// <summary>The scale down factor is a divider on the original image size.
-/// Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.
-/// 
-/// This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.
-/// 
-/// Powers of two (2, 4, 8) are best supported (especially with JPEG)</summary>
-/// <value>The scale down dividing factor.</value>
+    /// Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.
+    /// 
+    /// This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.
+    /// 
+    /// Powers of two (2, 4, 8) are best supported (especially with JPEG)</summary>
+    /// <value>The scale down dividing factor.</value>
     public int LoadScaleDown {
         get { return GetLoadScaleDown(); }
         set { SetLoadScaleDown(value); }
     }
     /// <summary>Initial load should skip header check and leave it all to data load
-/// If this is true, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).</summary>
-/// <value>Will be true if header is to be skipped.</value>
+    /// If this is true, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).</summary>
+    /// <value>Will be true if header is to be skipped.</value>
     public bool LoadSkipHeader {
         get { return GetLoadSkipHeader(); }
         set { SetLoadSkipHeader(value); }
@@ -1303,7 +1271,7 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
             return Efl.Ui.Bg.efl_ui_bg_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.File efl_file_mmap_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1316,13 +1284,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetMmap();
+                    _ret_var = ((Bg)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -1352,13 +1320,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).SetMmap(f);
+                    _ret_var = ((Bg)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -1388,13 +1356,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetFile();
+                    _ret_var = ((Bg)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -1424,13 +1392,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).SetFile(file);
+                    _ret_var = ((Bg)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -1460,13 +1428,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetKey();
+                    _ret_var = ((Bg)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -1496,13 +1464,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetKey(key);
+                    ((Bg)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -1531,13 +1499,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetLoaded();
+                    _ret_var = ((Bg)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -1567,13 +1535,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).Load();
+                    _ret_var = ((Bg)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -1603,13 +1571,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Bg)wrapper).Unload();
+                    ((Bg)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -1638,13 +1606,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static bool smooth_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_smooth_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetSmoothScale();
+                    _ret_var = ((Bg)ws.Target).GetSmoothScale();
                 }
                 catch (Exception e)
                 {
@@ -1674,13 +1642,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void smooth_scale_set(System.IntPtr obj, System.IntPtr pd, bool smooth_scale)
         {
             Eina.Log.Debug("function efl_gfx_image_smooth_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetSmoothScale(smooth_scale);
+                    ((Bg)ws.Target).SetSmoothScale(smooth_scale);
                 }
                 catch (Exception e)
                 {
@@ -1709,13 +1677,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Efl.Gfx.ImageScaleType scale_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageScaleType _ret_var = default(Efl.Gfx.ImageScaleType);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetScaleType();
+                    _ret_var = ((Bg)ws.Target).GetScaleType();
                 }
                 catch (Exception e)
                 {
@@ -1745,13 +1713,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void scale_type_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageScaleType scale_type)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetScaleType(scale_type);
+                    ((Bg)ws.Target).SetScaleType(scale_type);
                 }
                 catch (Exception e)
                 {
@@ -1780,13 +1748,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static double ratio_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_ratio_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetRatio();
+                    _ret_var = ((Bg)ws.Target).GetRatio();
                 }
                 catch (Exception e)
                 {
@@ -1816,13 +1784,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void border_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_image_border_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((Bg)wrapper).GetBorder(out l, out r, out t, out b);
+                    ((Bg)ws.Target).GetBorder(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -1851,13 +1819,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void border_set(System.IntPtr obj, System.IntPtr pd, int l, int r, int t, int b)
         {
             Eina.Log.Debug("function efl_gfx_image_border_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Bg)wrapper).SetBorder(l, r, t, b);
+                    ((Bg)ws.Target).SetBorder(l, r, t, b);
                 }
                 catch (Exception e)
                 {
@@ -1886,13 +1854,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static double border_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_border_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetBorderScale();
+                    _ret_var = ((Bg)ws.Target).GetBorderScale();
                 }
                 catch (Exception e)
                 {
@@ -1922,13 +1890,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void border_scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_image_border_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetBorderScale(scale);
+                    ((Bg)ws.Target).SetBorderScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -1957,13 +1925,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Efl.Gfx.BorderFillMode border_center_fill_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_border_center_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.BorderFillMode _ret_var = default(Efl.Gfx.BorderFillMode);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetBorderCenterFill();
+                    _ret_var = ((Bg)ws.Target).GetBorderCenterFill();
                 }
                 catch (Exception e)
                 {
@@ -1993,13 +1961,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void border_center_fill_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.BorderFillMode fill)
         {
             Eina.Log.Debug("function efl_gfx_image_border_center_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetBorderCenterFill(fill);
+                    ((Bg)ws.Target).SetBorderCenterFill(fill);
                 }
                 catch (Exception e)
                 {
@@ -2028,13 +1996,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Eina.Size2D.NativeStruct image_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetImageSize();
+                    _ret_var = ((Bg)ws.Target).GetImageSize();
                 }
                 catch (Exception e)
                 {
@@ -2064,13 +2032,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Efl.Gfx.ImageContentHint content_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_content_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageContentHint _ret_var = default(Efl.Gfx.ImageContentHint);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetContentHint();
+                    _ret_var = ((Bg)ws.Target).GetContentHint();
                 }
                 catch (Exception e)
                 {
@@ -2100,13 +2068,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void content_hint_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageContentHint hint)
         {
             Eina.Log.Debug("function efl_gfx_image_content_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetContentHint(hint);
+                    ((Bg)ws.Target).SetContentHint(hint);
                 }
                 catch (Exception e)
                 {
@@ -2135,13 +2103,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Efl.Gfx.ImageScaleHint scale_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageScaleHint _ret_var = default(Efl.Gfx.ImageScaleHint);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetScaleHint();
+                    _ret_var = ((Bg)ws.Target).GetScaleHint();
                 }
                 catch (Exception e)
                 {
@@ -2171,13 +2139,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void scale_hint_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageScaleHint hint)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetScaleHint(hint);
+                    ((Bg)ws.Target).SetScaleHint(hint);
                 }
                 catch (Exception e)
                 {
@@ -2206,13 +2174,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Eina.Error image_load_error_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_error_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetImageLoadError();
+                    _ret_var = ((Bg)ws.Target).GetImageLoadError();
                 }
                 catch (Exception e)
                 {
@@ -2242,13 +2210,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Eina.Size2D.NativeStruct load_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetLoadSize();
+                    _ret_var = ((Bg)ws.Target).GetLoadSize();
                 }
                 catch (Exception e)
                 {
@@ -2278,14 +2246,14 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void load_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((Bg)wrapper).SetLoadSize(_in_size);
+                    ((Bg)ws.Target).SetLoadSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -2314,13 +2282,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static double load_dpi_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_dpi_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetLoadDpi();
+                    _ret_var = ((Bg)ws.Target).GetLoadDpi();
                 }
                 catch (Exception e)
                 {
@@ -2350,13 +2318,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void load_dpi_set(System.IntPtr obj, System.IntPtr pd, double dpi)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_dpi_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetLoadDpi(dpi);
+                    ((Bg)ws.Target).SetLoadDpi(dpi);
                 }
                 catch (Exception e)
                 {
@@ -2385,13 +2353,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static bool load_region_support_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_support_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetLoadRegionSupport();
+                    _ret_var = ((Bg)ws.Target).GetLoadRegionSupport();
                 }
                 catch (Exception e)
                 {
@@ -2421,13 +2389,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static Eina.Rect.NativeStruct load_region_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetLoadRegion();
+                    _ret_var = ((Bg)ws.Target).GetLoadRegion();
                 }
                 catch (Exception e)
                 {
@@ -2457,14 +2425,14 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void load_region_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct region)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_region = region;
                             
                 try
                 {
-                    ((Bg)wrapper).SetLoadRegion(_in_region);
+                    ((Bg)ws.Target).SetLoadRegion(_in_region);
                 }
                 catch (Exception e)
                 {
@@ -2493,13 +2461,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static bool load_orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_orientation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetLoadOrientation();
+                    _ret_var = ((Bg)ws.Target).GetLoadOrientation();
                 }
                 catch (Exception e)
                 {
@@ -2529,13 +2497,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void load_orientation_set(System.IntPtr obj, System.IntPtr pd, bool enable)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_orientation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetLoadOrientation(enable);
+                    ((Bg)ws.Target).SetLoadOrientation(enable);
                 }
                 catch (Exception e)
                 {
@@ -2564,13 +2532,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static int load_scale_down_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_scale_down_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetLoadScaleDown();
+                    _ret_var = ((Bg)ws.Target).GetLoadScaleDown();
                 }
                 catch (Exception e)
                 {
@@ -2600,13 +2568,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void load_scale_down_set(System.IntPtr obj, System.IntPtr pd, int div)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_scale_down_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetLoadScaleDown(div);
+                    ((Bg)ws.Target).SetLoadScaleDown(div);
                 }
                 catch (Exception e)
                 {
@@ -2635,13 +2603,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static bool load_skip_header_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_skip_header_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Bg)wrapper).GetLoadSkipHeader();
+                    _ret_var = ((Bg)ws.Target).GetLoadSkipHeader();
                 }
                 catch (Exception e)
                 {
@@ -2671,13 +2639,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void load_skip_header_set(System.IntPtr obj, System.IntPtr pd, bool skip)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_skip_header_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Bg)wrapper).SetLoadSkipHeader(skip);
+                    ((Bg)ws.Target).SetLoadSkipHeader(skip);
                 }
                 catch (Exception e)
                 {
@@ -2706,13 +2674,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void load_async_start(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_async_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Bg)wrapper).LoadAsyncStart();
+                    ((Bg)ws.Target).LoadAsyncStart();
                 }
                 catch (Exception e)
                 {
@@ -2741,13 +2709,13 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
         private static void load_async_cancel(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_async_cancel was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Bg)wrapper).LoadAsyncCancel();
+                    ((Bg)ws.Target).LoadAsyncCancel();
                 }
                 catch (Exception e)
                 {
@@ -2765,7 +2733,7 @@ public class Bg : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IImage,Ef
 
         private static efl_gfx_image_load_controller_load_async_cancel_delegate efl_gfx_image_load_controller_load_async_cancel_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 88209c8..3c6fdb4 100644 (file)
@@ -12,11 +12,11 @@ namespace Ui {
 /// <summary>The box widget.
 /// A box arranges objects in a linear fashion, governed by a layout function that defines the details of this arrangement.
 /// 
-/// By default, the box will use an internal function to set the layout to a single row, either vertical or horizontal. This layout is affected by a number of parameters. The values given by <see cref="Efl.IPack.GetPackPadding"/> and <see cref="Efl.IPack.GetPackAlign"/> and the hints set to each object in the box.
+/// By default, the box will use an internal function to set the layout to a single row, either vertical or horizontal. This layout is affected by a number of parameters. The values given by <see cref="Efl.Gfx.IArrangement.GetContentPadding"/> and <see cref="Efl.Gfx.IArrangement.GetContentAlign"/> and the hints set to each object in the box.
 /// 
 /// FIXME: THIS CLASS NEEDS GOOD UP TO DATE DOCUMENTATION. LEGACY BOX AND UI BOX BEHAVE SLIGHTLY DIFFERENTLY AND USE VASTLY DIFFERENT APIS.</summary>
 [Efl.Ui.Box.NativeMethods]
-public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.IPackLayout,Efl.IPackLinear,Efl.Ui.IDirection
+public class Box : Efl.Ui.Widget, Efl.IContainer, Efl.IPack, Efl.IPackLayout, Efl.IPackLinear, Efl.Gfx.IArrangement, Efl.Ui.ILayoutOrientable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -55,7 +55,7 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Box(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Box"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -66,34 +66,7 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -101,13 +74,12 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -149,7 +121,7 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -157,13 +129,12 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -212,10 +183,9 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -275,78 +245,48 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
                          }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     virtual public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     virtual public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
@@ -371,97 +311,125 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, 0).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the beginning.</param>
+    /// <param name="subobj">Object to pack at the beginning.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBegin(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_begin_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Append item at the end of this container.
+    /// <summary>Append object at the end of this container.
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, -1).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the end.</param>
+    /// <param name="subobj">Object to pack at the end.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackEnd(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_end_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Prepend item before other sub object.
+    /// <summary>Prepend an object before an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack before <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack before <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBefore(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_before_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Append item after other sub object.
+    /// <summary>Append an object after an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack after <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack after <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAfter(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_after_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Inserts <c>subobj</c> BEFORE the item at position <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Inserts <c>subobj</c> BEFORE the sub-object at position <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
     /// If <c>index</c> is less than -<c>count</c>, it will trigger <see cref="Efl.IPackLinear.PackBegin"/>(<c>subobj</c>) whereas <c>index</c> greater than <c>count</c>-1 will trigger <see cref="Efl.IPackLinear.PackEnd"/>(<c>subobj</c>).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack.</param>
-    /// <param name="index">Index of item to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <param name="subobj">Object to pack.</param>
+    /// <param name="index">Index of existing sub-object to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAt(Efl.Gfx.IEntity subobj, int index) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Content at a given <c>index</c> in this container.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Sub-object at a given <c>index</c> in this container.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will return the first item whereas <c>index</c> greater than <c>count</c>-1 will return the last item.</summary>
-    /// <param name="index">Index of the item to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The object contained at the given <c>index</c>.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will return the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will return the last sub-object.</summary>
+    /// <param name="index">Index of the existing sub-object to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object contained at the given <c>index</c>.</returns>
     virtual public Efl.Gfx.IEntity GetPackContent(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Get the index of a child in this container.</summary>
-    /// <param name="subobj">An object contained in this pack.</param>
-    /// <returns>-1 in case <c>subobj</c> is not a child of this object, or the index of this item in the range 0 to (<c>count</c>-1).</returns>
+    /// <summary>Get the index of a sub-object in this container.</summary>
+    /// <param name="subobj">An existing sub-object in this container.</param>
+    /// <returns>-1 in case <c>subobj</c> is not found, or the index of <c>subobj</c> in the range 0 to (<c>count</c>-1).</returns>
     virtual public int GetPackIndex(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_index_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Pop out (remove) the item at the specified <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Pop out (remove) the sub-object at the specified <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will remove the first item whereas <c>index</c> greater than <c>count</c>-1 will remove the last item.
-    /// 
-    /// Equivalent to <see cref="Efl.IPack.Unpack"/>(<see cref="Efl.IPackLinear.GetPackContent"/>(<c>index</c>)).</summary>
-    /// <param name="index">Index of item to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The child item if it could be removed.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will remove the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will remove the last sub-object.</summary>
+    /// <param name="index">Index of the sub-object to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object if it could be removed.</returns>
     virtual public Efl.Gfx.IEntity PackUnpackAt(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_unpack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
+    /// <summary>Alignment of the container within its bounds</summary>
+    /// <param name="align_horiz">Horizontal alignment</param>
+    /// <param name="align_vert">Vertical alignment</param>
+    virtual public void GetContentAlign(out double align_horiz, out double align_vert) {
+                                                         Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Alignment of the container within its bounds</summary>
+    /// <param name="align_horiz">Horizontal alignment</param>
+    /// <param name="align_vert">Vertical alignment</param>
+    virtual public void SetContentAlign(double align_horiz, double align_vert) {
+                                                         Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Padding between items contained in this object.</summary>
+    /// <param name="pad_horiz">Horizontal padding</param>
+    /// <param name="pad_vert">Vertical padding</param>
+    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+    virtual public void GetContentPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
+                                                                                 Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Padding between items contained in this object.</summary>
+    /// <param name="pad_horiz">Horizontal padding</param>
+    /// <param name="pad_vert">Vertical padding</param>
+    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+    virtual public void SetContentPadding(double pad_horiz, double pad_vert, bool scalable) {
+                                                                                 Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
     /// <summary>Control the direction of a given widget.
     /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <returns>Direction of the widget.</returns>
-    virtual public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+    virtual public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
@@ -470,25 +438,25 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <param name="dir">Direction of the widget.</param>
-    virtual public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+    virtual public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Control homogeneous mode.
-/// This will enable the homogeneous mode where children are of the same weight and of the same min size which is determined by maximum min size of children.</summary>
-/// <value><c>true</c> if the box is homogeneous, <c>false</c> otherwise</value>
+    /// This will enable the homogeneous mode where children are of the same weight and of the same min size which is determined by maximum min size of children.</summary>
+    /// <value><c>true</c> if the box is homogeneous, <c>false</c> otherwise</value>
     public bool Homogeneous {
         get { return GetHomogeneous(); }
         set { SetHomogeneous(value); }
     }
     /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
     }
     private static IntPtr GetEflClassStatic()
     {
@@ -546,46 +514,6 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_count"), func = Marshal.GetFunctionPointerForDelegate(efl_content_count_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -726,24 +654,64 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack_at"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_at_static_delegate) });
             }
 
-            if (efl_ui_direction_get_static_delegate == null)
+            if (efl_gfx_arrangement_content_align_get_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_align_get_static_delegate = new efl_gfx_arrangement_content_align_get_delegate(content_align_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetContentAlign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_align_get_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_align_set_static_delegate == null)
             {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
+                efl_gfx_arrangement_content_align_set_static_delegate = new efl_gfx_arrangement_content_align_set_delegate(content_align_set);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "SetContentAlign") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_align_set_static_delegate) });
             }
 
-            if (efl_ui_direction_set_static_delegate == null)
+            if (efl_gfx_arrangement_content_padding_get_static_delegate == null)
             {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
+                efl_gfx_arrangement_content_padding_get_static_delegate = new efl_gfx_arrangement_content_padding_get_delegate(content_padding_get);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "GetContentPadding") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_padding_get_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_padding_set_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_padding_set_static_delegate = new efl_gfx_arrangement_content_padding_set_delegate(content_padding_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetContentPadding") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_padding_set_static_delegate) });
+            }
+
+            if (efl_ui_layout_orientation_get_static_delegate == null)
+            {
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
+            }
+
+            if (efl_ui_layout_orientation_set_static_delegate == null)
+            {
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
             }
 
             descs.AddRange(base.GetEoOps(type));
@@ -756,7 +724,7 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
             return Efl.Ui.Box.efl_ui_box_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_box_homogeneous_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -769,13 +737,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static bool homogeneous_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_box_homogeneous_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Box)wrapper).GetHomogeneous();
+                    _ret_var = ((Box)ws.Target).GetHomogeneous();
                 }
                 catch (Exception e)
                 {
@@ -805,13 +773,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static void homogeneous_set(System.IntPtr obj, System.IntPtr pd, bool homogeneous)
         {
             Eina.Log.Debug("function efl_ui_box_homogeneous_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Box)wrapper).SetHomogeneous(homogeneous);
+                    ((Box)ws.Target).SetHomogeneous(homogeneous);
                 }
                 catch (Exception e)
                 {
@@ -840,13 +808,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((Box)wrapper).ContentIterate();
+                    _ret_var = ((Box)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -876,13 +844,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Box)wrapper).ContentCount();
+                    _ret_var = ((Box)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -901,146 +869,6 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((Box)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((Box)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((Box)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((Box)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -1052,13 +880,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Box)wrapper).ClearPack();
+                    _ret_var = ((Box)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -1088,13 +916,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Box)wrapper).UnpackAll();
+                    _ret_var = ((Box)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -1124,13 +952,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Box)wrapper).Unpack(subobj);
+                    _ret_var = ((Box)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1160,13 +988,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Box)wrapper).Pack(subobj);
+                    _ret_var = ((Box)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1196,13 +1024,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static void layout_request(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_request was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Box)wrapper).LayoutRequest();
+                    ((Box)ws.Target).LayoutRequest();
                 }
                 catch (Exception e)
                 {
@@ -1231,13 +1059,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static void layout_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Box)wrapper).UpdateLayout();
+                    ((Box)ws.Target).UpdateLayout();
                 }
                 catch (Exception e)
                 {
@@ -1266,13 +1094,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static bool pack_begin(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_begin was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Box)wrapper).PackBegin(subobj);
+                    _ret_var = ((Box)ws.Target).PackBegin(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1302,13 +1130,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static bool pack_end(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Box)wrapper).PackEnd(subobj);
+                    _ret_var = ((Box)ws.Target).PackEnd(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1338,13 +1166,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static bool pack_before(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_before was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Box)wrapper).PackBefore(subobj, existing);
+                    _ret_var = ((Box)ws.Target).PackBefore(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -1374,13 +1202,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static bool pack_after(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_after was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Box)wrapper).PackAfter(subobj, existing);
+                    _ret_var = ((Box)ws.Target).PackAfter(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -1410,13 +1238,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static bool pack_at(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
         {
             Eina.Log.Debug("function efl_pack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Box)wrapper).PackAt(subobj, index);
+                    _ret_var = ((Box)ws.Target).PackAt(subobj, index);
                 }
                 catch (Exception e)
                 {
@@ -1446,13 +1274,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static Efl.Gfx.IEntity pack_content_get(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Box)wrapper).GetPackContent(index);
+                    _ret_var = ((Box)ws.Target).GetPackContent(index);
                 }
                 catch (Exception e)
                 {
@@ -1482,13 +1310,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static int pack_index_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Box)wrapper).GetPackIndex(subobj);
+                    _ret_var = ((Box)ws.Target).GetPackIndex(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1518,13 +1346,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static Efl.Gfx.IEntity pack_unpack_at(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_unpack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Box)wrapper).PackUnpackAt(index);
+                    _ret_var = ((Box)ws.Target).PackUnpackAt(index);
                 }
                 catch (Exception e)
                 {
@@ -1544,23 +1372,163 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
         private static efl_pack_unpack_at_delegate efl_pack_unpack_at_static_delegate;
 
         
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate void efl_gfx_arrangement_content_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
+
+        
+        public delegate void efl_gfx_arrangement_content_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_get_api_delegate> efl_gfx_arrangement_content_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_get_api_delegate>(Module, "efl_gfx_arrangement_content_align_get");
+
+        private static void content_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_align_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        align_horiz = default(double);        align_vert = default(double);                            
+                try
+                {
+                    ((Box)ws.Target).GetContentAlign(out align_horiz, out align_vert);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_align_get_delegate efl_gfx_arrangement_content_align_get_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
+
+        
+        public delegate void efl_gfx_arrangement_content_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_set_api_delegate> efl_gfx_arrangement_content_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_set_api_delegate>(Module, "efl_gfx_arrangement_content_align_set");
+
+        private static void content_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_align_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Box)ws.Target).SetContentAlign(align_horiz, align_vert);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_align_set_delegate efl_gfx_arrangement_content_align_set_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
+
+        
+        public delegate void efl_gfx_arrangement_content_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_get_api_delegate> efl_gfx_arrangement_content_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_get_api_delegate>(Module, "efl_gfx_arrangement_content_padding_get");
+
+        private static void content_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_padding_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
+                try
+                {
+                    ((Box)ws.Target).GetContentPadding(out pad_horiz, out pad_vert, out scalable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_padding_get_delegate efl_gfx_arrangement_content_padding_get_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
+
+        
+        public delegate void efl_gfx_arrangement_content_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_set_api_delegate> efl_gfx_arrangement_content_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_set_api_delegate>(Module, "efl_gfx_arrangement_content_padding_set");
+
+        private static void content_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_padding_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    
+                try
+                {
+                    ((Box)ws.Target).SetContentPadding(pad_horiz, pad_vert, scalable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_padding_set_delegate efl_gfx_arrangement_content_padding_set_static_delegate;
+
+        
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
 
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
                 try
                 {
-                    _ret_var = ((Box)wrapper).GetDirection();
+                    _ret_var = ((Box)ws.Target).GetOrientation();
                 }
                 catch (Exception e)
                 {
@@ -1573,30 +1541,30 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
             }
             else
             {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
 
         
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
 
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Box)wrapper).SetDirection(dir);
+                    ((Box)ws.Target).SetOrientation(dir);
                 }
                 catch (Exception e)
                 {
@@ -1608,13 +1576,13 @@ public class Box : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.I
             }
             else
             {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
             }
         }
 
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index fcfcb93..b34a2dd 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>A custom layout engine for <see cref="Efl.Ui.Box"/>.</summary>
 [Efl.Ui.BoxFlow.NativeMethods]
-public class BoxFlow : Efl.Ui.Box, Efl.Eo.IWrapper
+public class BoxFlow : Efl.Ui.Box
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class BoxFlow : Efl.Ui.Box, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected BoxFlow(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="BoxFlow"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class BoxFlow : Efl.Ui.Box, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.BoxFlow.efl_ui_box_flow_class_get();
@@ -111,9 +84,9 @@ public class BoxFlow : Efl.Ui.Box, Efl.Eo.IWrapper
             return Efl.Ui.BoxFlow.efl_ui_box_flow_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index fe68ac7..432f02e 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>A custom layout engine for <see cref="Efl.Ui.Box"/> that stacks items.
 /// Items will be stacked on top of each other (in the Z direction).</summary>
 [Efl.Ui.BoxStack.NativeMethods]
-public class BoxStack : Efl.Ui.Box, Efl.Eo.IWrapper
+public class BoxStack : Efl.Ui.Box
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class BoxStack : Efl.Ui.Box, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected BoxStack(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="BoxStack"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class BoxStack : Efl.Ui.Box, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.BoxStack.efl_ui_box_stack_class_get();
@@ -112,9 +85,9 @@ public class BoxStack : Efl.Ui.Box, Efl.Eo.IWrapper
             return Efl.Ui.BoxStack.efl_ui_box_stack_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e7fff36..3e756f9 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Push-button widget
 /// Press it and run some function. It can contain a simple label and icon object and it also has an autorepeat feature.</summary>
 [Efl.Ui.Button.NativeMethods]
-public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,Efl.Ui.IAutorepeat,Efl.Ui.IClickable
+public class Button : Efl.Ui.LayoutBase, Efl.IContent, Efl.IText, Efl.Ui.IAutorepeat, Efl.Ui.IClickable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Button(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Button"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -97,13 +70,12 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -145,17 +117,16 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
+    /// <summary>Called when a repeated event is emitted</summary>
+    public event EventHandler RepeatedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -171,7 +142,7 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
                     }
                 };
 
-                string key = "_EFL_UI_EVENT_CLICKED";
+                string key = "_EFL_UI_AUTOREPEAT_EVENT_REPEATED";
                 AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
             }
         }
@@ -180,15 +151,15 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         {
             lock (eventLock)
             {
-                string key = "_EFL_UI_EVENT_CLICKED";
+                string key = "_EFL_UI_AUTOREPEAT_EVENT_REPEATED";
                 RemoveNativeEventHandler(efl.Libs.Efl, key, value);
             }
         }
     }
-    ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
+    ///<summary>Method to raise event RepeatedEvt.</summary>
+    public void OnRepeatedEvt(EventArgs e)
     {
-        var key = "_EFL_UI_EVENT_CLICKED";
+        var key = "_EFL_UI_AUTOREPEAT_EVENT_REPEATED";
         IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
         if (desc == IntPtr.Zero)
         {
@@ -198,20 +169,20 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
+    /// <summary>Called when object is in sequence pressed and unpressed, by the primary button</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedEvt_Args> ClickedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedEvt_Args args = new Efl.Ui.IClickableClickedEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -224,8 +195,8 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
                     }
                 };
 
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                string key = "_EFL_UI_EVENT_CLICKED";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -233,92 +204,47 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         {
             lock (eventLock)
             {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                string key = "_EFL_UI_EVENT_CLICKED";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
+    ///<summary>Method to raise event ClickedEvt.</summary>
+    public void OnClickedEvt(Efl.Ui.IClickableClickedEvt_Args e)
     {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        var key = "_EFL_UI_EVENT_CLICKED";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
-    {
-        add
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-
-        remove
+        finally
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.FreeHGlobal(info);
         }
     }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
+    /// <summary>Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedAnyEvt_Args> ClickedAnyEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableClickedAnyEvt_Args args = new Efl.Ui.IClickableClickedAnyEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -331,8 +257,8 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
                     }
                 };
 
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -340,40 +266,47 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         {
             lock (eventLock)
             {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
+    ///<summary>Method to raise event ClickedAnyEvt.</summary>
+    public void OnClickedAnyEvt(Efl.Ui.IClickableClickedAnyEvt_Args e)
     {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        var key = "_EFL_UI_EVENT_CLICKED_ANY";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
+        {
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object is pressed</summary>
+    /// <summary>Called when the object is pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -387,7 +320,7 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
                 };
 
                 string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -396,7 +329,7 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -404,31 +337,37 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
     public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object is no longer pressed</summary>
+    /// <summary>Called when the object is no longer pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -442,7 +381,7 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
                 };
 
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -451,7 +390,7 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -459,31 +398,37 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
     public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object receives a long press</summary>
+    /// <summary>Called when the object receives a long press, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -497,7 +442,7 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
                 };
 
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -506,7 +451,7 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -514,68 +459,22 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
     public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
         {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-
-        remove
+        finally
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
     /// <summary>Sub-object currently set as this object&apos;s single content.
     /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
@@ -623,110 +522,112 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
                                  Efl.ITextConcrete.NativeMethods.efl_text_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),text);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>The initial timeout before the autorepeat event is generated
+    /// <summary>The initial timeout before the autorepeat event is generated.
     /// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
     /// 
-    /// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatEnabled"/>, <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-    /// <returns>Timeout in seconds</returns>
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatEnabled"/> and <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
+    /// <returns>Timeout in seconds.</returns>
     virtual public double GetAutorepeatInitialTimeout() {
          var _ret_var = Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_initial_timeout_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>The initial timeout before the autorepeat event is generated
+    /// <summary>The initial timeout before the autorepeat event is generated.
     /// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
     /// 
-    /// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatEnabled"/>, <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-    /// <param name="t">Timeout in seconds</param>
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatEnabled"/> and <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
+    /// <param name="t">Timeout in seconds.</param>
     virtual public void SetAutorepeatInitialTimeout(double t) {
                                  Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_initial_timeout_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),t);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>The interval between each generated autorepeat event
+    /// <summary>The interval between each generated autorepeat event.
     /// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
     /// 
-    /// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>.</summary>
-    /// <returns>Interval in seconds</returns>
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>.</summary>
+    /// <returns>Time interval in seconds.</returns>
     virtual public double GetAutorepeatGapTimeout() {
          var _ret_var = Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_gap_timeout_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>The interval between each generated autorepeat event
+    /// <summary>The interval between each generated autorepeat event.
     /// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
     /// 
-    /// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>.</summary>
-    /// <param name="t">Interval in seconds</param>
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>.</summary>
+    /// <param name="t">Time interval in seconds.</param>
     virtual public void SetAutorepeatGapTimeout(double t) {
                                  Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_gap_timeout_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),t);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Turn on/off the autorepeat event generated when the button is kept pressed
-    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> signal when they are clicked.
-    /// 
-    /// When on, keeping a button pressed will continuously emit a <c>repeated</c> signal until the button is released. The time it takes until it starts emitting the signal is given by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-    /// <returns>A bool to turn on/off the event</returns>
+    /// <summary>Turn on/off the autorepeat event generated when a button is kept pressed.
+    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> event when they are clicked.</summary>
+    /// <returns>A bool to turn on/off the repeat event generation.</returns>
     virtual public bool GetAutorepeatEnabled() {
          var _ret_var = Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_enabled_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Turn on/off the autorepeat event generated when the button is kept pressed
-    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> signal when they are clicked.
-    /// 
-    /// When on, keeping a button pressed will continuously emit a <c>repeated</c> signal until the button is released. The time it takes until it starts emitting the signal is given by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-    /// <param name="on">A bool to turn on/off the event</param>
+    /// <summary>Turn on/off the autorepeat event generated when a button is kept pressed.
+    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> event when they are clicked.</summary>
+    /// <param name="on">A bool to turn on/off the repeat event generation.</param>
     virtual public void SetAutorepeatEnabled(bool on) {
                                  Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_enabled_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),on);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Whether the button supports autorepeat.</summary>
-    /// <returns><c>true</c> if autorepeat is supported, <c>false</c> otherwise</returns>
-    virtual public bool GetAutorepeatSupported() {
-         var _ret_var = Efl.Ui.IAutorepeatConcrete.NativeMethods.efl_ui_autorepeat_supported_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+    /// <summary>Change internal states that a button got pressed.
+    /// When the button is already pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Press(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_press_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
         Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
+                         }
+    /// <summary>Change internal states that a button got unpressed.
+    /// When the button is not pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Unpress(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_unpress_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>This aborts the internal state after a press call.
+    /// This will stop the timer for longpress. And set the state of the clickable mixin back into the unpressed state.</summary>
+    virtual public void ResetButtonState(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_button_state_reset_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
-    /// <summary>The initial timeout before the autorepeat event is generated
-/// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
-/// 
-/// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatEnabled"/>, <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-/// <value>Timeout in seconds</value>
+    /// <summary>The initial timeout before the autorepeat event is generated.
+    /// Sets the timeout, in seconds, since the button is pressed until the first <c>repeated</c> signal is emitted. If <c>t</c> is 0.0 or less, there won&apos;t be any delay and the event will be fired the moment the button is pressed.
+    /// 
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatEnabled"/> and <see cref="Efl.Ui.IAutorepeat.AutorepeatGapTimeout"/>.</summary>
+    /// <value>Timeout in seconds.</value>
     public double AutorepeatInitialTimeout {
         get { return GetAutorepeatInitialTimeout(); }
         set { SetAutorepeatInitialTimeout(value); }
     }
-    /// <summary>The interval between each generated autorepeat event
-/// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
-/// 
-/// See also <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>.</summary>
-/// <value>Interval in seconds</value>
+    /// <summary>The interval between each generated autorepeat event.
+    /// After the first <c>repeated</c> event is fired, all subsequent ones will follow after a delay of <c>t</c> seconds for each.
+    /// 
+    /// See also <see cref="Efl.Ui.IAutorepeat.AutorepeatInitialTimeout"/>.</summary>
+    /// <value>Time interval in seconds.</value>
     public double AutorepeatGapTimeout {
         get { return GetAutorepeatGapTimeout(); }
         set { SetAutorepeatGapTimeout(value); }
     }
-    /// <summary>Turn on/off the autorepeat event generated when the button is kept pressed
-/// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> signal when they are clicked.
-/// 
-/// When on, keeping a button pressed will continuously emit a <c>repeated</c> signal until the button is released. The time it takes until it starts emitting the signal is given by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatInitialTimeout"/>, and the time between each new emission by <see cref="Efl.Ui.IAutorepeat.SetAutorepeatGapTimeout"/>.</summary>
-/// <value>A bool to turn on/off the event</value>
+    /// <summary>Turn on/off the autorepeat event generated when a button is kept pressed.
+    /// When off, no autorepeat is performed and buttons emit a normal <c>clicked</c> event when they are clicked.</summary>
+    /// <value>A bool to turn on/off the repeat event generation.</value>
     public bool AutorepeatEnabled {
         get { return GetAutorepeatEnabled(); }
         set { SetAutorepeatEnabled(value); }
     }
-    /// <summary>Whether the button supports autorepeat.</summary>
-/// <value><c>true</c> if autorepeat is supported, <c>false</c> otherwise</value>
-    public bool AutorepeatSupported {
-        get { return GetAutorepeatSupported(); }
-    }
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.Button.efl_ui_button_class_get();
@@ -853,14 +754,34 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_autorepeat_enabled_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_autorepeat_enabled_set_static_delegate) });
             }
 
-            if (efl_ui_autorepeat_supported_get_static_delegate == null)
+            if (efl_ui_clickable_press_static_delegate == null)
+            {
+                efl_ui_clickable_press_static_delegate = new efl_ui_clickable_press_delegate(press);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Press") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_press"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_press_static_delegate) });
+            }
+
+            if (efl_ui_clickable_unpress_static_delegate == null)
+            {
+                efl_ui_clickable_unpress_static_delegate = new efl_ui_clickable_unpress_delegate(unpress);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Unpress") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_unpress"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_unpress_static_delegate) });
+            }
+
+            if (efl_ui_clickable_button_state_reset_static_delegate == null)
             {
-                efl_ui_autorepeat_supported_get_static_delegate = new efl_ui_autorepeat_supported_get_delegate(autorepeat_supported_get);
+                efl_ui_clickable_button_state_reset_static_delegate = new efl_ui_clickable_button_state_reset_delegate(button_state_reset);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "GetAutorepeatSupported") != null)
+            if (methods.FirstOrDefault(m => m.Name == "ResetButtonState") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_autorepeat_supported_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_autorepeat_supported_get_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_button_state_reset"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_button_state_reset_static_delegate) });
             }
 
             descs.AddRange(base.GetEoOps(type));
@@ -873,7 +794,7 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
             return Efl.Ui.Button.efl_ui_button_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -886,13 +807,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Button)wrapper).GetContent();
+                    _ret_var = ((Button)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -922,13 +843,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Button)wrapper).SetContent(content);
+                    _ret_var = ((Button)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -958,13 +879,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Button)wrapper).UnsetContent();
+                    _ret_var = ((Button)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -994,13 +915,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Button)wrapper).GetText();
+                    _ret_var = ((Button)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -1030,13 +951,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Button)wrapper).SetText(text);
+                    ((Button)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -1065,13 +986,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static double autorepeat_initial_timeout_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_initial_timeout_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Button)wrapper).GetAutorepeatInitialTimeout();
+                    _ret_var = ((Button)ws.Target).GetAutorepeatInitialTimeout();
                 }
                 catch (Exception e)
                 {
@@ -1101,13 +1022,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static void autorepeat_initial_timeout_set(System.IntPtr obj, System.IntPtr pd, double t)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_initial_timeout_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Button)wrapper).SetAutorepeatInitialTimeout(t);
+                    ((Button)ws.Target).SetAutorepeatInitialTimeout(t);
                 }
                 catch (Exception e)
                 {
@@ -1136,13 +1057,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static double autorepeat_gap_timeout_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_gap_timeout_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Button)wrapper).GetAutorepeatGapTimeout();
+                    _ret_var = ((Button)ws.Target).GetAutorepeatGapTimeout();
                 }
                 catch (Exception e)
                 {
@@ -1172,13 +1093,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static void autorepeat_gap_timeout_set(System.IntPtr obj, System.IntPtr pd, double t)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_gap_timeout_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Button)wrapper).SetAutorepeatGapTimeout(t);
+                    ((Button)ws.Target).SetAutorepeatGapTimeout(t);
                 }
                 catch (Exception e)
                 {
@@ -1207,13 +1128,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static bool autorepeat_enabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Button)wrapper).GetAutorepeatEnabled();
+                    _ret_var = ((Button)ws.Target).GetAutorepeatEnabled();
                 }
                 catch (Exception e)
                 {
@@ -1243,13 +1164,13 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
         private static void autorepeat_enabled_set(System.IntPtr obj, System.IntPtr pd, bool on)
         {
             Eina.Log.Debug("function efl_ui_autorepeat_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Button)wrapper).SetAutorepeatEnabled(on);
+                    ((Button)ws.Target).SetAutorepeatEnabled(on);
                 }
                 catch (Exception e)
                 {
@@ -1267,24 +1188,24 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
 
         private static efl_ui_autorepeat_enabled_set_delegate efl_ui_autorepeat_enabled_set_static_delegate;
 
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_ui_autorepeat_supported_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        
+        private delegate void efl_ui_clickable_press_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
 
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_ui_autorepeat_supported_get_api_delegate(System.IntPtr obj);
+        
+        public delegate void efl_ui_clickable_press_api_delegate(System.IntPtr obj,  uint button);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_autorepeat_supported_get_api_delegate> efl_ui_autorepeat_supported_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_autorepeat_supported_get_api_delegate>(Module, "efl_ui_autorepeat_supported_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate> efl_ui_clickable_press_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate>(Module, "efl_ui_clickable_press");
 
-        private static bool autorepeat_supported_get(System.IntPtr obj, System.IntPtr pd)
+        private static void press(System.IntPtr obj, System.IntPtr pd, uint button)
         {
-            Eina.Log.Debug("function efl_ui_autorepeat_supported_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_clickable_press was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            bool _ret_var = default(bool);
+                                    
                 try
                 {
-                    _ret_var = ((Button)wrapper).GetAutorepeatSupported();
+                    ((Button)ws.Target).Press(button);
                 }
                 catch (Exception e)
                 {
@@ -1292,18 +1213,87 @@ public class Button : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-        return _ret_var;
+                        
+            }
+            else
+            {
+                efl_ui_clickable_press_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_press_delegate efl_ui_clickable_press_static_delegate;
 
+        
+        private delegate void efl_ui_clickable_unpress_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_unpress_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate> efl_ui_clickable_unpress_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate>(Module, "efl_ui_clickable_unpress");
+
+        private static void unpress(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_unpress was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Button)ws.Target).Unpress(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_unpress_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_unpress_delegate efl_ui_clickable_unpress_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_button_state_reset_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_button_state_reset_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate> efl_ui_clickable_button_state_reset_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate>(Module, "efl_ui_clickable_button_state_reset");
+
+        private static void button_state_reset(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_button_state_reset was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Button)ws.Target).ResetButtonState(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
             }
             else
             {
-                return efl_ui_autorepeat_supported_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                efl_ui_clickable_button_state_reset_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
             }
         }
 
-        private static efl_ui_autorepeat_supported_get_delegate efl_ui_autorepeat_supported_get_static_delegate;
+        private static efl_ui_clickable_button_state_reset_delegate efl_ui_clickable_button_state_reset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 2a989ad..cb0cae8 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary button internal part class</summary>
 [Efl.Ui.ButtonLegacyPart.NativeMethods]
-public class ButtonLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
+public class ButtonLegacyPart : Efl.Ui.LayoutPartContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class ButtonLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ButtonLegacyPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ButtonLegacyPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class ButtonLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.ButtonLegacyPart.efl_ui_button_legacy_part_class_get();
@@ -105,9 +78,9 @@ public class ButtonLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
             return Efl.Ui.ButtonLegacyPart.efl_ui_button_legacy_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index bd667f2..89f4704 100644 (file)
@@ -16,7 +16,7 @@ namespace Ui {
 /// 
 /// The cache might decide to flush itself when the application event pause is triggered.</summary>
 [Efl.Ui.CachingFactory.NativeMethods]
-public class CachingFactory : Efl.Ui.WidgetFactory, Efl.Eo.IWrapper
+public class CachingFactory : Efl.Ui.WidgetFactory
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -55,7 +55,7 @@ public class CachingFactory : Efl.Ui.WidgetFactory, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected CachingFactory(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="CachingFactory"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -66,33 +66,6 @@ public class CachingFactory : Efl.Ui.WidgetFactory, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Define the maxium size in Bytes that all the object waiting on standby in the cache take. They must provide the <see cref="Efl.Cached.IItem"/> interface for an accurate accounting.</summary>
     /// <returns>When set to zero, there is no limit on the amount of memory the cache will use.</returns>
     virtual public uint GetMemoryLimit() {
@@ -120,13 +93,13 @@ public class CachingFactory : Efl.Ui.WidgetFactory, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Define the maxium size in Bytes that all the object waiting on standby in the cache take. They must provide the <see cref="Efl.Cached.IItem"/> interface for an accurate accounting.</summary>
-/// <value>When set to zero, there is no limit on the amount of memory the cache will use.</value>
+    /// <value>When set to zero, there is no limit on the amount of memory the cache will use.</value>
     public uint MemoryLimit {
         get { return GetMemoryLimit(); }
         set { SetMemoryLimit(value); }
     }
     /// <summary>Define how many maximum number of items are waiting on standby in the cache.</summary>
-/// <value>When set to zero, there is no limit to the amount of items stored in the cache.</value>
+    /// <value>When set to zero, there is no limit to the amount of items stored in the cache.</value>
     public uint ItemsLimit {
         get { return GetItemsLimit(); }
         set { SetItemsLimit(value); }
@@ -197,7 +170,7 @@ public class CachingFactory : Efl.Ui.WidgetFactory, Efl.Eo.IWrapper
             return Efl.Ui.CachingFactory.efl_ui_caching_factory_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate uint efl_ui_caching_factory_memory_limit_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -210,13 +183,13 @@ public class CachingFactory : Efl.Ui.WidgetFactory, Efl.Eo.IWrapper
         private static uint memory_limit_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_caching_factory_memory_limit_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((CachingFactory)wrapper).GetMemoryLimit();
+                    _ret_var = ((CachingFactory)ws.Target).GetMemoryLimit();
                 }
                 catch (Exception e)
                 {
@@ -246,13 +219,13 @@ public class CachingFactory : Efl.Ui.WidgetFactory, Efl.Eo.IWrapper
         private static void memory_limit_set(System.IntPtr obj, System.IntPtr pd, uint limit)
         {
             Eina.Log.Debug("function efl_ui_caching_factory_memory_limit_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((CachingFactory)wrapper).SetMemoryLimit(limit);
+                    ((CachingFactory)ws.Target).SetMemoryLimit(limit);
                 }
                 catch (Exception e)
                 {
@@ -281,13 +254,13 @@ public class CachingFactory : Efl.Ui.WidgetFactory, Efl.Eo.IWrapper
         private static uint items_limit_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_caching_factory_items_limit_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((CachingFactory)wrapper).GetItemsLimit();
+                    _ret_var = ((CachingFactory)ws.Target).GetItemsLimit();
                 }
                 catch (Exception e)
                 {
@@ -317,13 +290,13 @@ public class CachingFactory : Efl.Ui.WidgetFactory, Efl.Eo.IWrapper
         private static void items_limit_set(System.IntPtr obj, System.IntPtr pd, uint limit)
         {
             Eina.Log.Debug("function efl_ui_caching_factory_items_limit_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((CachingFactory)wrapper).SetItemsLimit(limit);
+                    ((CachingFactory)ws.Target).SetItemsLimit(limit);
                 }
                 catch (Exception e)
                 {
@@ -341,7 +314,7 @@ public class CachingFactory : Efl.Ui.WidgetFactory, Efl.Eo.IWrapper
 
         private static efl_ui_caching_factory_items_limit_set_delegate efl_ui_caching_factory_items_limit_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index a9fbea3..d0d17fa 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Calendar widget
 /// It helps applications to flexibly display a calendar with day of the week, date, year and month. Applications are able to set specific dates to be reported back, when selected, in the smart callbacks of the calendar widget.</summary>
 [Efl.Ui.Calendar.NativeMethods]
-public class Calendar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IFormat,Efl.Ui.Focus.IComposition
+public class Calendar : Efl.Ui.LayoutBase, Efl.Ui.IFormat, Efl.Ui.Focus.IComposition
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class Calendar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IFormat,Efl.Ui
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Calendar(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Calendar"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class Calendar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IFormat,Efl.Ui
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Emitted when the selected date in the calendar is changed</summary>
     public event EventHandler ChangedEvt
     {
@@ -96,10 +69,9 @@ public class Calendar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IFormat,Efl.Ui
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -291,59 +263,59 @@ logical_order.Own = false;
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>The first day of week to use on calendar widgets.
-/// This is the day that will appear in the left-most column (eg. Monday in France or Sunday in the US).</summary>
-/// <value>The first day of the week.</value>
+    /// This is the day that will appear in the left-most column (eg. Monday in France or Sunday in the US).</summary>
+    /// <value>The first day of the week.</value>
     public Efl.Ui.CalendarWeekday FirstDayOfWeek {
         get { return GetFirstDayOfWeek(); }
         set { SetFirstDayOfWeek(value); }
     }
     /// <summary>Minimum date on calendar.</summary>
-/// <value>Time structure containing the minimum date.</value>
+    /// <value>Time structure containing the minimum date.</value>
     public Efl.Time DateMin {
         get { return GetDateMin(); }
         set { SetDateMin(value); }
     }
     /// <summary>Maximum date on calendar.</summary>
-/// <value>Time structure containing the maximum date.</value>
+    /// <value>Time structure containing the maximum date.</value>
     public Efl.Time DateMax {
         get { return GetDateMax(); }
         set { SetDateMax(value); }
     }
     /// <summary>The selected date on calendar.</summary>
-/// <value>Time structure containing the selected date.</value>
+    /// <value>Time structure containing the selected date.</value>
     public Efl.Time Date {
         get { return GetDate(); }
         set { SetDate(value); }
     }
     /// <summary>Set the format function pointer to format the string.</summary>
-/// <value>The format function callback</value>
+    /// <value>The format function callback</value>
     public Efl.Ui.FormatFuncCb FormatCb {
         set { SetFormatCb(value); }
     }
     /// <summary>Control the format string for a given units label
-/// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
-/// 
-/// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
-/// <value>The format string for <c>obj</c>&apos;s units label.</value>
+    /// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
+    /// 
+    /// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
+    /// <value>The format string for <c>obj</c>&apos;s units label.</value>
     public System.String FormatString {
         get { return GetFormatString(); }
         set { SetFormatString(value); }
     }
     /// <summary>Set the order of elements that will be used for composition
-/// Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
-/// 
-/// If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
-/// 
-/// If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
-/// 
-/// If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.</summary>
-/// <value>The order to use</value>
+    /// Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
+    /// 
+    /// If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
+    /// 
+    /// If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
+    /// 
+    /// If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.</summary>
+    /// <value>The order to use</value>
     public Eina.List<Efl.Gfx.IEntity> CompositionElements {
         get { return GetCompositionElements(); }
         set { SetCompositionElements(value); }
     }
     /// <summary>Set to true if all children should be registered as logicals</summary>
-/// <value><c>true</c> or <c>false</c></value>
+    /// <value><c>true</c> or <c>false</c></value>
     public bool LogicalMode {
         get { return GetLogicalMode(); }
         set { SetLogicalMode(value); }
@@ -544,7 +516,7 @@ logical_order.Own = false;
             return Efl.Ui.Calendar.efl_ui_calendar_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Ui.CalendarWeekday efl_ui_calendar_first_day_of_week_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -557,13 +529,13 @@ logical_order.Own = false;
         private static Efl.Ui.CalendarWeekday first_day_of_week_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_calendar_first_day_of_week_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.CalendarWeekday _ret_var = default(Efl.Ui.CalendarWeekday);
                 try
                 {
-                    _ret_var = ((Calendar)wrapper).GetFirstDayOfWeek();
+                    _ret_var = ((Calendar)ws.Target).GetFirstDayOfWeek();
                 }
                 catch (Exception e)
                 {
@@ -593,13 +565,13 @@ logical_order.Own = false;
         private static void first_day_of_week_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.CalendarWeekday day)
         {
             Eina.Log.Debug("function efl_ui_calendar_first_day_of_week_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Calendar)wrapper).SetFirstDayOfWeek(day);
+                    ((Calendar)ws.Target).SetFirstDayOfWeek(day);
                 }
                 catch (Exception e)
                 {
@@ -628,13 +600,13 @@ logical_order.Own = false;
         private static Efl.Time.NativeStruct date_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_calendar_date_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Time _ret_var = default(Efl.Time);
                 try
                 {
-                    _ret_var = ((Calendar)wrapper).GetDateMin();
+                    _ret_var = ((Calendar)ws.Target).GetDateMin();
                 }
                 catch (Exception e)
                 {
@@ -664,14 +636,14 @@ logical_order.Own = false;
         private static bool date_min_set(System.IntPtr obj, System.IntPtr pd, Efl.Time.NativeStruct min)
         {
             Eina.Log.Debug("function efl_ui_calendar_date_min_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Time _in_min = min;
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Calendar)wrapper).SetDateMin(_in_min);
+                    _ret_var = ((Calendar)ws.Target).SetDateMin(_in_min);
                 }
                 catch (Exception e)
                 {
@@ -701,13 +673,13 @@ logical_order.Own = false;
         private static Efl.Time.NativeStruct date_max_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_calendar_date_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Time _ret_var = default(Efl.Time);
                 try
                 {
-                    _ret_var = ((Calendar)wrapper).GetDateMax();
+                    _ret_var = ((Calendar)ws.Target).GetDateMax();
                 }
                 catch (Exception e)
                 {
@@ -737,14 +709,14 @@ logical_order.Own = false;
         private static bool date_max_set(System.IntPtr obj, System.IntPtr pd, Efl.Time.NativeStruct max)
         {
             Eina.Log.Debug("function efl_ui_calendar_date_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Time _in_max = max;
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Calendar)wrapper).SetDateMax(_in_max);
+                    _ret_var = ((Calendar)ws.Target).SetDateMax(_in_max);
                 }
                 catch (Exception e)
                 {
@@ -774,13 +746,13 @@ logical_order.Own = false;
         private static Efl.Time.NativeStruct date_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_calendar_date_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Time _ret_var = default(Efl.Time);
                 try
                 {
-                    _ret_var = ((Calendar)wrapper).GetDate();
+                    _ret_var = ((Calendar)ws.Target).GetDate();
                 }
                 catch (Exception e)
                 {
@@ -810,14 +782,14 @@ logical_order.Own = false;
         private static bool date_set(System.IntPtr obj, System.IntPtr pd, Efl.Time.NativeStruct date)
         {
             Eina.Log.Debug("function efl_ui_calendar_date_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Time _in_date = date;
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Calendar)wrapper).SetDate(_in_date);
+                    _ret_var = ((Calendar)ws.Target).SetDate(_in_date);
                 }
                 catch (Exception e)
                 {
@@ -847,14 +819,14 @@ logical_order.Own = false;
         private static void format_cb_set(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_ui_format_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                             Efl.Ui.FormatFuncCbWrapper func_wrapper = new Efl.Ui.FormatFuncCbWrapper(func, func_data, func_free_cb);
             
                 try
                 {
-                    ((Calendar)wrapper).SetFormatCb(func_wrapper.ManagedCb);
+                    ((Calendar)ws.Target).SetFormatCb(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -883,13 +855,13 @@ logical_order.Own = false;
         private static System.String format_string_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_format_string_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Calendar)wrapper).GetFormatString();
+                    _ret_var = ((Calendar)ws.Target).GetFormatString();
                 }
                 catch (Exception e)
                 {
@@ -919,13 +891,13 @@ logical_order.Own = false;
         private static void format_string_set(System.IntPtr obj, System.IntPtr pd, System.String units)
         {
             Eina.Log.Debug("function efl_ui_format_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Calendar)wrapper).SetFormatString(units);
+                    ((Calendar)ws.Target).SetFormatString(units);
                 }
                 catch (Exception e)
                 {
@@ -954,13 +926,13 @@ logical_order.Own = false;
         private static System.IntPtr composition_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Gfx.IEntity> _ret_var = default(Eina.List<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((Calendar)wrapper).GetCompositionElements();
+                    _ret_var = ((Calendar)ws.Target).GetCompositionElements();
                 }
                 catch (Exception e)
                 {
@@ -990,14 +962,14 @@ logical_order.Own = false;
         private static void composition_elements_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr logical_order)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_elements_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_logical_order = new Eina.List<Efl.Gfx.IEntity>(logical_order, true, false);
                             
                 try
                 {
-                    ((Calendar)wrapper).SetCompositionElements(_in_logical_order);
+                    ((Calendar)ws.Target).SetCompositionElements(_in_logical_order);
                 }
                 catch (Exception e)
                 {
@@ -1026,13 +998,13 @@ logical_order.Own = false;
         private static bool logical_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_logical_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Calendar)wrapper).GetLogicalMode();
+                    _ret_var = ((Calendar)ws.Target).GetLogicalMode();
                 }
                 catch (Exception e)
                 {
@@ -1062,13 +1034,13 @@ logical_order.Own = false;
         private static void logical_mode_set(System.IntPtr obj, System.IntPtr pd, bool logical_mode)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_logical_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Calendar)wrapper).SetLogicalMode(logical_mode);
+                    ((Calendar)ws.Target).SetLogicalMode(logical_mode);
                 }
                 catch (Exception e)
                 {
@@ -1097,13 +1069,13 @@ logical_order.Own = false;
         private static void dirty(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_dirty was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Calendar)wrapper).Dirty();
+                    ((Calendar)ws.Target).Dirty();
                 }
                 catch (Exception e)
                 {
@@ -1132,13 +1104,13 @@ logical_order.Own = false;
         private static void prepare(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_prepare was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Calendar)wrapper).Prepare();
+                    ((Calendar)ws.Target).Prepare();
                 }
                 catch (Exception e)
                 {
@@ -1156,7 +1128,7 @@ logical_order.Own = false;
 
         private static efl_ui_focus_composition_prepare_delegate efl_ui_focus_composition_prepare_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 4e9a184..587dd42 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>EFL UI Calendar Item class</summary>
 [Efl.Ui.CalendarItem.NativeMethods]
-public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
+public class CalendarItem : Efl.Object, Efl.Ui.Focus.IObject
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected CalendarItem(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="CalendarItem"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Emitted if the focus state has changed.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.Ui.Focus.IObjectFocusChangedEvt_Args> FocusChangedEvt
@@ -90,14 +63,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IObjectFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -153,13 +125,12 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args();
+                        Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -209,13 +180,12 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args();
+                        Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -265,14 +235,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -328,13 +297,12 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args();
+                        Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -473,39 +441,39 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         return _ret_var;
  }
     /// <summary>Day number</summary>
-/// <value>Day number</value>
+    /// <value>Day number</value>
     public int DayNumber {
         get { return GetDayNumber(); }
         set { SetDayNumber(value); }
     }
     /// <summary>The geometry (that is, the bounding rectangle) used to calculate the relationship with other objects.
-/// (Since EFL 1.22)</summary>
-/// <value>The geometry to use.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The geometry to use.</value>
     public Eina.Rect FocusGeometry {
         get { return GetFocusGeometry(); }
     }
     /// <summary>Returns whether the widget is currently focused or not.
-/// (Since EFL 1.22)</summary>
-/// <value>The focused state of the object.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The focused state of the object.</value>
     public bool Focus {
         get { return GetFocus(); }
         set { SetFocus(value); }
     }
     /// <summary>This is the focus manager where this focus object is registered in. The element which is the <c>root</c> of a Efl.Ui.Focus.Manager will not have this focus manager as this object, but rather the second focus manager where it is registered in.
-/// (Since EFL 1.22)</summary>
-/// <value>The manager object</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The manager object</value>
     public Efl.Ui.Focus.IManager FocusManager {
         get { return GetFocusManager(); }
     }
     /// <summary>Describes which logical parent is used by this object.
-/// (Since EFL 1.22)</summary>
-/// <value>The focus parent.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The focus parent.</value>
     public Efl.Ui.Focus.IObject FocusParent {
         get { return GetFocusParent(); }
     }
     /// <summary>Indicates if a child of this object has focus set to true.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if a child has focus.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if a child has focus.</value>
     public bool ChildFocus {
         get { return GetChildFocus(); }
         set { SetChildFocus(value); }
@@ -656,7 +624,7 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
             return Efl.Ui.CalendarItem.efl_ui_calendar_item_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_ui_calendar_item_day_number_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -669,13 +637,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static int day_number_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_calendar_item_day_number_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((CalendarItem)wrapper).GetDayNumber();
+                    _ret_var = ((CalendarItem)ws.Target).GetDayNumber();
                 }
                 catch (Exception e)
                 {
@@ -705,13 +673,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static void day_number_set(System.IntPtr obj, System.IntPtr pd, int i)
         {
             Eina.Log.Debug("function efl_ui_calendar_item_day_number_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((CalendarItem)wrapper).SetDayNumber(i);
+                    ((CalendarItem)ws.Target).SetDayNumber(i);
                 }
                 catch (Exception e)
                 {
@@ -740,13 +708,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static Eina.Rect.NativeStruct focus_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((CalendarItem)wrapper).GetFocusGeometry();
+                    _ret_var = ((CalendarItem)ws.Target).GetFocusGeometry();
                 }
                 catch (Exception e)
                 {
@@ -776,13 +744,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static bool focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((CalendarItem)wrapper).GetFocus();
+                    _ret_var = ((CalendarItem)ws.Target).GetFocus();
                 }
                 catch (Exception e)
                 {
@@ -812,13 +780,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static void focus_set(System.IntPtr obj, System.IntPtr pd, bool focus)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((CalendarItem)wrapper).SetFocus(focus);
+                    ((CalendarItem)ws.Target).SetFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -847,13 +815,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static Efl.Ui.Focus.IManager focus_manager_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_manager_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((CalendarItem)wrapper).GetFocusManager();
+                    _ret_var = ((CalendarItem)ws.Target).GetFocusManager();
                 }
                 catch (Exception e)
                 {
@@ -883,13 +851,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static Efl.Ui.Focus.IObject focus_parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((CalendarItem)wrapper).GetFocusParent();
+                    _ret_var = ((CalendarItem)ws.Target).GetFocusParent();
                 }
                 catch (Exception e)
                 {
@@ -919,13 +887,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static bool child_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_child_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((CalendarItem)wrapper).GetChildFocus();
+                    _ret_var = ((CalendarItem)ws.Target).GetChildFocus();
                 }
                 catch (Exception e)
                 {
@@ -955,13 +923,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static void child_focus_set(System.IntPtr obj, System.IntPtr pd, bool child_focus)
         {
             Eina.Log.Debug("function efl_ui_focus_object_child_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((CalendarItem)wrapper).SetChildFocus(child_focus);
+                    ((CalendarItem)ws.Target).SetChildFocus(child_focus);
                 }
                 catch (Exception e)
                 {
@@ -990,13 +958,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static void setup_order(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_setup_order was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((CalendarItem)wrapper).SetupOrder();
+                    ((CalendarItem)ws.Target).SetupOrder();
                 }
                 catch (Exception e)
                 {
@@ -1025,13 +993,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static void setup_order_non_recursive(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_setup_order_non_recursive was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((CalendarItem)wrapper).SetupOrderNonRecursive();
+                    ((CalendarItem)ws.Target).SetupOrderNonRecursive();
                 }
                 catch (Exception e)
                 {
@@ -1060,13 +1028,13 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
         private static bool on_focus_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_on_focus_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((CalendarItem)wrapper).UpdateOnFocus();
+                    _ret_var = ((CalendarItem)ws.Target).UpdateOnFocus();
                 }
                 catch (Exception e)
                 {
@@ -1085,7 +1053,7 @@ public class CalendarItem : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IObject
 
         private static efl_ui_focus_object_on_focus_update_delegate efl_ui_focus_object_on_focus_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 565afd2..a323b25 100644 (file)
@@ -9,10 +9,15 @@ namespace Efl {
 
 namespace Ui {
 
+///<summary>Event argument wrapper for event <see cref="Efl.Ui.Check.SelectedChangedEvt"/>.</summary>
+public class CheckSelectedChangedEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public bool arg { get; set; }
+}
 /// <summary>Check widget
 /// The check widget allows for toggling a value between true and false. Check objects are a lot like radio objects in layout and functionality, except they do not work as a group, but independently, and only toggle the value of a boolean between false and true.</summary>
 [Efl.Ui.Check.NativeMethods]
-public class Check : Efl.Ui.Nstate, Efl.Eo.IWrapper
+public class Check : Efl.Ui.LayoutBase, Efl.IContent, Efl.IText
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +56,7 @@ public class Check : Efl.Ui.Nstate, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Check(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Check"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +67,122 @@ public class Check : Efl.Ui.Nstate, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
+    /// <summary>Emitted each time selected has changed</summary>
+    public event EventHandler<Efl.Ui.CheckSelectedChangedEvt_Args> SelectedChangedEvt
     {
-        var other = instance as Efl.Object;
-        if (other == null)
+        add
         {
-            return false;
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.Ui.CheckSelectedChangedEvt_Args args = new Efl.Ui.CheckSelectedChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_UI_CHECK_EVENT_SELECTED_CHANGED";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
+            }
         }
-        return this.NativeHandle == other.NativeHandle;
-    }
 
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_UI_CHECK_EVENT_SELECTED_CHANGED";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
+            }
+        }
     }
+    ///<summary>Method to raise event SelectedChangedEvt.</summary>
+    public void OnSelectedChangedEvt(Efl.Ui.CheckSelectedChangedEvt_Args e)
+    {
+        var key = "_EFL_UI_CHECK_EVENT_SELECTED_CHANGED";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
 
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg ? (byte) 1 : (byte) 0);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
+    }
+    /// <summary>Sent after the content is set or unset using the current content object.
+    /// (Since EFL 1.22)</summary>
+    public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_CONTENT_EVENT_CONTENT_CHANGED";
+                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_CONTENT_EVENT_CONTENT_CHANGED";
+                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+            }
+        }
     }
+    ///<summary>Method to raise event ContentChangedEvt.</summary>
+    public void OnContentChangedEvt(Efl.IContentContentChangedEvt_Args e)
+    {
+        var key = "_EFL_CONTENT_EVENT_CONTENT_CHANGED";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
 
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
     /// <summary>The on/off state of the check object.</summary>
     /// <returns><c>true</c> if the check object is selected, <c>false</c> otherwise</returns>
     virtual public bool GetSelected() {
@@ -102,19 +196,73 @@ public class Check : Efl.Ui.Nstate, Efl.Eo.IWrapper
                                  Efl.Ui.Check.NativeMethods.efl_ui_check_selected_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),value);
         Eina.Error.RaiseIfUnhandledException();
                          }
+    /// <summary>Sub-object currently set as this object&apos;s single content.
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <returns>The sub-object.</returns>
+    virtual public Efl.Gfx.IEntity GetContent() {
+         var _ret_var = Efl.IContentConcrete.NativeMethods.efl_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Sub-object currently set as this object&apos;s single content.
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <param name="content">The sub-object.</param>
+    /// <returns><c>true</c> if <c>content</c> was successfully swallowed.</returns>
+    virtual public bool SetContent(Efl.Gfx.IEntity content) {
+                                 var _ret_var = Efl.IContentConcrete.NativeMethods.efl_content_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),content);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Remove the sub-object currently set as content of this object and return it. This object becomes empty.
+    /// (Since EFL 1.22)</summary>
+    /// <returns>Unswallowed object</returns>
+    virtual public Efl.Gfx.IEntity UnsetContent() {
+         var _ret_var = Efl.IContentConcrete.NativeMethods.efl_content_unset_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Retrieves the text string currently being displayed by the given text object.
+    /// Do not free() the return value.
+    /// 
+    /// See also <see cref="Efl.IText.GetText"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <returns>Text string to display on it.</returns>
+    virtual public System.String GetText() {
+         var _ret_var = Efl.ITextConcrete.NativeMethods.efl_text_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Sets the text string to be displayed by the given text object.
+    /// See also <see cref="Efl.IText.GetText"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <param name="text">Text string to display on it.</param>
+    virtual public void SetText(System.String text) {
+                                 Efl.ITextConcrete.NativeMethods.efl_text_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),text);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>The on/off state of the check object.</summary>
-/// <value><c>true</c> if the check object is selected, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the check object is selected, <c>false</c> otherwise</value>
     public bool Selected {
         get { return GetSelected(); }
         set { SetSelected(value); }
     }
+    /// <summary>Sub-object currently set as this object&apos;s single content.
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
+    public Efl.Gfx.IEntity Content {
+        get { return GetContent(); }
+        set { SetContent(value); }
+    }
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.Check.efl_ui_check_class_get();
     }
     /// <summary>Wrapper for native methods and virtual method delegates.
     /// For internal use by generated code only.</summary>
-    public new class NativeMethods : Efl.Ui.Nstate.NativeMethods
+    public new class NativeMethods : Efl.Ui.LayoutBase.NativeMethods
     {
         private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
         /// <summary>Gets the list of Eo operations to override.</summary>
@@ -144,6 +292,56 @@ public class Check : Efl.Ui.Nstate, Efl.Eo.IWrapper
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_check_selected_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_check_selected_set_static_delegate) });
             }
 
+            if (efl_content_get_static_delegate == null)
+            {
+                efl_content_get_static_delegate = new efl_content_get_delegate(content_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetContent") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_get"), func = Marshal.GetFunctionPointerForDelegate(efl_content_get_static_delegate) });
+            }
+
+            if (efl_content_set_static_delegate == null)
+            {
+                efl_content_set_static_delegate = new efl_content_set_delegate(content_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetContent") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_set"), func = Marshal.GetFunctionPointerForDelegate(efl_content_set_static_delegate) });
+            }
+
+            if (efl_content_unset_static_delegate == null)
+            {
+                efl_content_unset_static_delegate = new efl_content_unset_delegate(content_unset);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "UnsetContent") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_unset"), func = Marshal.GetFunctionPointerForDelegate(efl_content_unset_static_delegate) });
+            }
+
+            if (efl_text_get_static_delegate == null)
+            {
+                efl_text_get_static_delegate = new efl_text_get_delegate(text_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetText") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_get_static_delegate) });
+            }
+
+            if (efl_text_set_static_delegate == null)
+            {
+                efl_text_set_static_delegate = new efl_text_set_delegate(text_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetText") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_set_static_delegate) });
+            }
+
             descs.AddRange(base.GetEoOps(type));
             return descs;
         }
@@ -154,7 +352,7 @@ public class Check : Efl.Ui.Nstate, Efl.Eo.IWrapper
             return Efl.Ui.Check.efl_ui_check_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_check_selected_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -167,13 +365,13 @@ public class Check : Efl.Ui.Nstate, Efl.Eo.IWrapper
         private static bool selected_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_check_selected_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Check)wrapper).GetSelected();
+                    _ret_var = ((Check)ws.Target).GetSelected();
                 }
                 catch (Exception e)
                 {
@@ -203,13 +401,13 @@ public class Check : Efl.Ui.Nstate, Efl.Eo.IWrapper
         private static void selected_set(System.IntPtr obj, System.IntPtr pd, bool value)
         {
             Eina.Log.Debug("function efl_ui_check_selected_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Check)wrapper).SetSelected(value);
+                    ((Check)ws.Target).SetSelected(value);
                 }
                 catch (Exception e)
                 {
@@ -227,7 +425,186 @@ public class Check : Efl.Ui.Nstate, Efl.Eo.IWrapper
 
         private static efl_ui_check_selected_set_delegate efl_ui_check_selected_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        public delegate Efl.Gfx.IEntity efl_content_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_content_get_api_delegate> efl_content_get_ptr = new Efl.Eo.FunctionWrapper<efl_content_get_api_delegate>(Module, "efl_content_get");
+
+        private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_content_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
+                try
+                {
+                    _ret_var = ((Check)ws.Target).GetContent();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_content_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_content_get_delegate efl_content_get_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_content_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity content);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_content_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity content);
+
+        public static Efl.Eo.FunctionWrapper<efl_content_set_api_delegate> efl_content_set_ptr = new Efl.Eo.FunctionWrapper<efl_content_set_api_delegate>(Module, "efl_content_set");
+
+        private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
+        {
+            Eina.Log.Debug("function efl_content_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((Check)ws.Target).SetContent(content);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_content_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), content);
+            }
+        }
+
+        private static efl_content_set_delegate efl_content_set_static_delegate;
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        private delegate Efl.Gfx.IEntity efl_content_unset_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        public delegate Efl.Gfx.IEntity efl_content_unset_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_content_unset_api_delegate> efl_content_unset_ptr = new Efl.Eo.FunctionWrapper<efl_content_unset_api_delegate>(Module, "efl_content_unset");
+
+        private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_content_unset was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
+                try
+                {
+                    _ret_var = ((Check)ws.Target).UnsetContent();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_content_unset_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_content_unset_delegate efl_content_unset_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_get_api_delegate> efl_text_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_get_api_delegate>(Module, "efl_text_get");
+
+        private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Check)ws.Target).GetText();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_get_delegate efl_text_get_static_delegate;
+
+        
+        private delegate void efl_text_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text);
+
+        
+        public delegate void efl_text_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_set_api_delegate> efl_text_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_set_api_delegate>(Module, "efl_text_set");
+
+        private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
+        {
+            Eina.Log.Debug("function efl_text_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Check)ws.Target).SetText(text);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), text);
+            }
+        }
+
+        private static efl_text_set_delegate efl_text_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 73eccfd..f28d78e 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary check internal part class</summary>
 [Efl.Ui.CheckLegacyPart.NativeMethods]
-public class CheckLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
+public class CheckLegacyPart : Efl.Ui.LayoutPartContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class CheckLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected CheckLegacyPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="CheckLegacyPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class CheckLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.CheckLegacyPart.efl_ui_check_legacy_part_class_get();
@@ -105,9 +78,9 @@ public class CheckLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
             return Efl.Ui.CheckLegacyPart.efl_ui_check_legacy_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 1a9cf59..3424643 100644 (file)
@@ -14,51 +14,61 @@ namespace Ui {
 public interface IClickable : 
     Efl.Eo.IWrapper, IDisposable
 {
-    /// <summary>Called when object is clicked</summary>
-    event EventHandler ClickedEvt;
-    /// <summary>Called when object receives a double click</summary>
-    event EventHandler ClickedDoubleEvt;
-    /// <summary>Called when object receives a triple click</summary>
-    event EventHandler ClickedTripleEvt;
-    /// <summary>Called when object receives a right click</summary>
-    event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt;
-    /// <summary>Called when the object is pressed</summary>
+    /// <summary>Change internal states that a button got pressed.
+/// When the button is already pressed, this is silently ignored.</summary>
+/// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+void Press(uint button);
+    /// <summary>Change internal states that a button got unpressed.
+/// When the button is not pressed, this is silently ignored.</summary>
+/// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+void Unpress(uint button);
+    /// <summary>This aborts the internal state after a press call.
+/// This will stop the timer for longpress. And set the state of the clickable mixin back into the unpressed state.</summary>
+void ResetButtonState(uint button);
+                /// <summary>Called when object is in sequence pressed and unpressed, by the primary button</summary>
+    event EventHandler<Efl.Ui.IClickableClickedEvt_Args> ClickedEvt;
+    /// <summary>Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.</summary>
+    event EventHandler<Efl.Ui.IClickableClickedAnyEvt_Args> ClickedAnyEvt;
+    /// <summary>Called when the object is pressed, event_info is the button that got pressed</summary>
     event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt;
-    /// <summary>Called when the object is no longer pressed</summary>
+    /// <summary>Called when the object is no longer pressed, event_info is the button that got pressed</summary>
     event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt;
-    /// <summary>Called when the object receives a long press</summary>
+    /// <summary>Called when the object receives a long press, event_info is the button that got pressed</summary>
     event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt;
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    event EventHandler RepeatedEvt;
 }
-///<summary>Event argument wrapper for event <see cref="Efl.Ui.IClickable.ClickedRightEvt"/>.</summary>
-public class IClickableClickedRightEvt_Args : EventArgs {
+///<summary>Event argument wrapper for event <see cref="Efl.Ui.IClickable.ClickedEvt"/>.</summary>
+public class IClickableClickedEvt_Args : EventArgs {
     ///<summary>Actual event payload.</summary>
-    public Efl.Object arg { get; set; }
+    public Efl.Ui.ClickableClicked arg { get; set; }
+}
+///<summary>Event argument wrapper for event <see cref="Efl.Ui.IClickable.ClickedAnyEvt"/>.</summary>
+public class IClickableClickedAnyEvt_Args : EventArgs {
+    ///<summary>Actual event payload.</summary>
+    public Efl.Ui.ClickableClicked arg { get; set; }
 }
 ///<summary>Event argument wrapper for event <see cref="Efl.Ui.IClickable.PressedEvt"/>.</summary>
 public class IClickablePressedEvt_Args : EventArgs {
     ///<summary>Actual event payload.</summary>
-    public Efl.Object arg { get; set; }
+    public int arg { get; set; }
 }
 ///<summary>Event argument wrapper for event <see cref="Efl.Ui.IClickable.UnpressedEvt"/>.</summary>
 public class IClickableUnpressedEvt_Args : EventArgs {
     ///<summary>Actual event payload.</summary>
-    public Efl.Object arg { get; set; }
+    public int arg { get; set; }
 }
 ///<summary>Event argument wrapper for event <see cref="Efl.Ui.IClickable.LongpressedEvt"/>.</summary>
 public class IClickableLongpressedEvt_Args : EventArgs {
     ///<summary>Actual event payload.</summary>
-    public Efl.Object arg { get; set; }
+    public int arg { get; set; }
 }
 /// <summary>Efl UI clickable interface</summary>
-sealed public class IClickableConcrete : 
-
-IClickable
+sealed public class IClickableConcrete :
+    Efl.Eo.EoWrapper
+    , IClickable
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -73,171 +83,28 @@ IClickable
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
-    [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
-        efl_ui_clickable_interface_get();
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
+        efl_ui_clickable_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IClickable"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IClickableConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IClickableConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
+    private IClickableConcrete(System.IntPtr raw) : base(raw)
     {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
+    /// <summary>Called when object is in sequence pressed and unpressed, by the primary button</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedEvt_Args> ClickedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedEvt_Args args = new Efl.Ui.IClickableClickedEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -251,7 +118,7 @@ IClickable
                 };
 
                 string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -260,90 +127,46 @@ IClickable
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
     ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
+    public void OnClickedEvt(Efl.Ui.IClickableClickedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
+    /// <summary>Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedAnyEvt_Args> ClickedAnyEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedAnyEvt_Args args = new Efl.Ui.IClickableClickedAnyEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -356,8 +179,8 @@ IClickable
                     }
                 };
 
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -365,94 +188,47 @@ IClickable
         {
             lock (eventLock)
             {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
+    ///<summary>Method to raise event ClickedAnyEvt.</summary>
+    public void OnClickedAnyEvt(Efl.Ui.IClickableClickedAnyEvt_Args e)
     {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        var key = "_EFL_UI_EVENT_CLICKED_ANY";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Called when the object is pressed</summary>
+    /// <summary>Called when the object is pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -466,7 +242,7 @@ IClickable
                 };
 
                 string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -475,7 +251,7 @@ IClickable
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -483,31 +259,37 @@ IClickable
     public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object is no longer pressed</summary>
+    /// <summary>Called when the object is no longer pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -521,7 +303,7 @@ IClickable
                 };
 
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -530,7 +312,7 @@ IClickable
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -538,31 +320,37 @@ IClickable
     public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object receives a long press</summary>
+    /// <summary>Called when the object receives a long press, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -576,7 +364,7 @@ IClickable
                 };
 
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -585,7 +373,7 @@ IClickable
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -593,97 +381,276 @@ IClickable
     public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
+    /// <summary>Change internal states that a button got pressed.
+    /// When the button is already pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    public void Press(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_press_ptr.Value.Delegate(this.NativeHandle,button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Change internal states that a button got unpressed.
+    /// When the button is not pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    public void Unpress(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_unpress_ptr.Value.Delegate(this.NativeHandle,button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>This aborts the internal state after a press call.
+    /// This will stop the timer for longpress. And set the state of the clickable mixin back into the unpressed state.</summary>
+    public void ResetButtonState(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_button_state_reset_ptr.Value.Delegate(this.NativeHandle,button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     private static IntPtr GetEflClassStatic()
     {
-        return Efl.Ui.IClickableConcrete.efl_ui_clickable_interface_get();
+        return Efl.Ui.IClickableConcrete.efl_ui_clickable_mixin_get();
     }
     /// <summary>Wrapper for native methods and virtual method delegates.
     /// For internal use by generated code only.</summary>
     public class NativeMethods  : Efl.Eo.NativeClass
     {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
         /// <summary>Gets the list of Eo operations to override.</summary>
         /// <returns>The list of Eo operations to be overload.</returns>
         public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
         {
             var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_ui_clickable_press_static_delegate == null)
+            {
+                efl_ui_clickable_press_static_delegate = new efl_ui_clickable_press_delegate(press);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Press") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_press"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_press_static_delegate) });
+            }
+
+            if (efl_ui_clickable_unpress_static_delegate == null)
+            {
+                efl_ui_clickable_unpress_static_delegate = new efl_ui_clickable_unpress_delegate(unpress);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Unpress") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_unpress"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_unpress_static_delegate) });
+            }
+
+            if (efl_ui_clickable_button_state_reset_static_delegate == null)
+            {
+                efl_ui_clickable_button_state_reset_static_delegate = new efl_ui_clickable_button_state_reset_delegate(button_state_reset);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "ResetButtonState") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_button_state_reset"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_button_state_reset_static_delegate) });
+            }
+
             return descs;
         }
         /// <summary>Returns the Eo class for the native methods of this class.</summary>
         /// <returns>The native class pointer.</returns>
         public override IntPtr GetEflClass()
         {
-            return Efl.Ui.IClickableConcrete.efl_ui_clickable_interface_get();
+            return Efl.Ui.IClickableConcrete.efl_ui_clickable_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate void efl_ui_clickable_press_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_press_api_delegate(System.IntPtr obj,  uint button);
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate> efl_ui_clickable_press_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate>(Module, "efl_ui_clickable_press");
 
+        private static void press(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_press was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((IClickableConcrete)ws.Target).Press(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_press_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_press_delegate efl_ui_clickable_press_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_unpress_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_unpress_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate> efl_ui_clickable_unpress_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate>(Module, "efl_ui_clickable_unpress");
+
+        private static void unpress(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_unpress was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((IClickableConcrete)ws.Target).Unpress(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_unpress_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_unpress_delegate efl_ui_clickable_unpress_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_button_state_reset_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_button_state_reset_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate> efl_ui_clickable_button_state_reset_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate>(Module, "efl_ui_clickable_button_state_reset");
+
+        private static void button_state_reset(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_button_state_reset was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((IClickableConcrete)ws.Target).ResetButtonState(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_button_state_reset_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_button_state_reset_delegate efl_ui_clickable_button_state_reset_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
 }
+
 }
+
+namespace Efl {
+
+namespace Ui {
+
+/// <summary>A struct that expresses a click in elementary.</summary>
+[StructLayout(LayoutKind.Sequential)]
+public struct ClickableClicked
+{
+    /// <summary>The amount of how often the clicked event was repeated in a certain amount of time</summary>
+    public int Repeated;
+    /// <summary>The Button that is pressed</summary>
+    public int Button;
+    ///<summary>Constructor for ClickableClicked.</summary>
+    public ClickableClicked(
+        int Repeated = default(int),
+        int Button = default(int)    )
+    {
+        this.Repeated = Repeated;
+        this.Button = Button;
+    }
+
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
+    public static implicit operator ClickableClicked(IntPtr ptr)
+    {
+        var tmp = (ClickableClicked.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ClickableClicked.NativeStruct));
+        return tmp;
+    }
+
+    #pragma warning disable CS1591
+
+    ///<summary>Internal wrapper for struct ClickableClicked.</summary>
+    [StructLayout(LayoutKind.Sequential)]
+    public struct NativeStruct
+    {
+        
+        public int Repeated;
+        
+        public int Button;
+        ///<summary>Implicit conversion to the internal/marshalling representation.</summary>
+        public static implicit operator ClickableClicked.NativeStruct(ClickableClicked _external_struct)
+        {
+            var _internal_struct = new ClickableClicked.NativeStruct();
+            _internal_struct.Repeated = _external_struct.Repeated;
+            _internal_struct.Button = _external_struct.Button;
+            return _internal_struct;
+        }
+
+        ///<summary>Implicit conversion to the managed representation.</summary>
+        public static implicit operator ClickableClicked(ClickableClicked.NativeStruct _internal_struct)
+        {
+            var _external_struct = new ClickableClicked();
+            _external_struct.Repeated = _internal_struct.Repeated;
+            _external_struct.Button = _internal_struct.Button;
+            return _external_struct;
+        }
+
+    }
+
+    #pragma warning restore CS1591
+
+}
+
 }
 
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_clickable_util.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_clickable_util.eo.cs
new file mode 100644 (file)
index 0000000..7ae13a3
--- /dev/null
@@ -0,0 +1,171 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Ui {
+
+[Efl.Ui.ClickableUtil.NativeMethods]
+public class ClickableUtil : Efl.Eo.EoWrapper
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(ClickableUtil))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
+        efl_ui_clickable_util_class_get();
+    /// <summary>Initializes a new instance of the <see cref="ClickableUtil"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public ClickableUtil(Efl.Object parent= null
+            ) : base(efl_ui_clickable_util_class_get(), typeof(ClickableUtil), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ClickableUtil"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected ClickableUtil(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ClickableUtil"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected ClickableUtil(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>This will listen to the standard events of a theme, and emit the events on clickable
+    /// This means, widgets themselfs do not neccessarily need to listen to the theme signals. This function does this, and calls the correct clickable functions.</summary>
+    /// <param name="kw_object">The object to listen on</param>
+    /// <param name="clickable">The object to call the clickable events on</param>
+    public static void BindToTheme(Efl.Canvas.Layout kw_object, Efl.Ui.IClickable clickable) {
+                                                         Efl.Ui.ClickableUtil.NativeMethods.efl_ui_clickable_util_bind_to_theme_ptr.Value.Delegate(kw_object, clickable);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>This will listen to the standard events on a object, and call the correct methods on clickable
+    /// This means, widgets themselfs do not neccessarily need to listen to the events on the object. This function does this, and calls the correct clickable functions.</summary>
+    /// <param name="kw_object">The object to listen on</param>
+    /// <param name="clickable">The object to call the clickable events on</param>
+    public static void BindToObject(Efl.Input.IInterface kw_object, Efl.Ui.IClickable clickable) {
+                                                         Efl.Ui.ClickableUtil.NativeMethods.efl_ui_clickable_util_bind_to_object_ptr.Value.Delegate(kw_object, clickable);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Ui.ClickableUtil.efl_ui_clickable_util_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public class NativeMethods  : Efl.Eo.NativeClass
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Ui.ClickableUtil.efl_ui_clickable_util_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate void efl_ui_clickable_util_bind_to_theme_delegate([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Layout kw_object, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.IClickable clickable);
+
+        
+        public delegate void efl_ui_clickable_util_bind_to_theme_api_delegate([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Layout kw_object, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.IClickable clickable);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_util_bind_to_theme_api_delegate> efl_ui_clickable_util_bind_to_theme_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_util_bind_to_theme_api_delegate>(Module, "efl_ui_clickable_util_bind_to_theme");
+
+        private static void bind_to_theme(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Layout kw_object, Efl.Ui.IClickable clickable)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_util_bind_to_theme was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ClickableUtil.BindToTheme(kw_object, clickable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_ui_clickable_util_bind_to_theme_ptr.Value.Delegate(kw_object, clickable);
+            }
+        }
+
+        
+        private delegate void efl_ui_clickable_util_bind_to_object_delegate([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.IInterface kw_object, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.IClickable clickable);
+
+        
+        public delegate void efl_ui_clickable_util_bind_to_object_api_delegate([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.IInterface kw_object, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.IClickable clickable);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_util_bind_to_object_api_delegate> efl_ui_clickable_util_bind_to_object_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_util_bind_to_object_api_delegate>(Module, "efl_ui_clickable_util_bind_to_object");
+
+        private static void bind_to_object(System.IntPtr obj, System.IntPtr pd, Efl.Input.IInterface kw_object, Efl.Ui.IClickable clickable)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_util_bind_to_object was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ClickableUtil.BindToObject(kw_object, clickable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_ui_clickable_util_bind_to_object_ptr.Value.Delegate(kw_object, clickable);
+            }
+        }
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
index 74fc4b4..58240e5 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI clock class</summary>
 [Efl.Ui.Clock.NativeMethods]
-public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
+public class Clock : Efl.Ui.LayoutBase
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Clock(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Clock"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when clock changed</summary>
     public event EventHandler ChangedEvt
     {
@@ -95,10 +68,9 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -334,74 +306,74 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                                                          }
     /// <summary>The current clock format. Format is a combination of allowed Libc date format specifiers like: &quot;%b %d, %Y %I : %M %p&quot;.
-/// Maximum allowed format length is 64 chars.
-/// 
-/// Format can include separators for each individual clock field except for AM/PM field.
-/// 
-/// Each separator can be a maximum of 6 UTF-8 bytes. Space is also taken as a separator.
-/// 
-/// These specifiers can be arranged in any order and the widget will display the fields accordingly.
-/// 
-/// Default format is taken as per the system locale settings.</summary>
-/// <value>The clock format.</value>
+    /// Maximum allowed format length is 64 chars.
+    /// 
+    /// Format can include separators for each individual clock field except for AM/PM field.
+    /// 
+    /// Each separator can be a maximum of 6 UTF-8 bytes. Space is also taken as a separator.
+    /// 
+    /// These specifiers can be arranged in any order and the widget will display the fields accordingly.
+    /// 
+    /// Default format is taken as per the system locale settings.</summary>
+    /// <value>The clock format.</value>
     public System.String Format {
         get { return GetFormat(); }
         set { SetFormat(value); }
     }
     /// <summary>Whether the given clock widget should be paused or not.
-/// This function pauses or starts the clock widget.</summary>
-/// <value><c>true</c> to pause clock, <c>false</c> otherwise</value>
+    /// This function pauses or starts the clock widget.</summary>
+    /// <value><c>true</c> to pause clock, <c>false</c> otherwise</value>
     public bool Pause {
         get { return GetPause(); }
         set { SetPause(value); }
     }
     /// <summary>Digits of the given clock widget should be editable when in editing mode.</summary>
-/// <value><c>true</c> to set edit mode, <c>false</c> otherwise</value>
+    /// <value><c>true</c> to set edit mode, <c>false</c> otherwise</value>
     public bool EditMode {
         get { return GetEditMode(); }
         set { SetEditMode(value); }
     }
     /// <summary>The lower boundary of a field.
-/// Year: years since 1900. Negative value represents year below 1900 (year value -30 represents 1870). Year default range is from 70 to 137.
-/// 
-/// Month: default value range is from 0 to 11.
-/// 
-/// Date: default value range is from 1 to 31 according to the month value.
-/// 
-/// Hour: default value will be in terms of 24 hr format (0~23)
-/// 
-/// Minute: default value range is from 0 to 59.</summary>
-/// <value>Time structure containing the minimum time value.</value>
+    /// Year: years since 1900. Negative value represents year below 1900 (year value -30 represents 1870). Year default range is from 70 to 137.
+    /// 
+    /// Month: default value range is from 0 to 11.
+    /// 
+    /// Date: default value range is from 1 to 31 according to the month value.
+    /// 
+    /// Hour: default value will be in terms of 24 hr format (0~23)
+    /// 
+    /// Minute: default value range is from 0 to 59.</summary>
+    /// <value>Time structure containing the minimum time value.</value>
     public Efl.Time TimeMin {
         get { return GetTimeMin(); }
         set { SetTimeMin(value); }
     }
     /// <summary>The upper boundary of a field.
-/// Year: years since 1900. Negative value represents year below 1900 (year value -30 represents 1870). Year default range is from 70 to 137.
-/// 
-/// Month: default value range is from 0 to 11.
-/// 
-/// Date: default value range is from 1 to 31 according to the month value.
-/// 
-/// Hour: default value will be in terms of 24 hr format (0~23)
-/// 
-/// Minute: default value range is from 0 to 59.</summary>
-/// <value>Time structure containing the maximum time value.</value>
+    /// Year: years since 1900. Negative value represents year below 1900 (year value -30 represents 1870). Year default range is from 70 to 137.
+    /// 
+    /// Month: default value range is from 0 to 11.
+    /// 
+    /// Date: default value range is from 1 to 31 according to the month value.
+    /// 
+    /// Hour: default value will be in terms of 24 hr format (0~23)
+    /// 
+    /// Minute: default value range is from 0 to 59.</summary>
+    /// <value>Time structure containing the maximum time value.</value>
     public Efl.Time TimeMax {
         get { return GetTimeMax(); }
         set { SetTimeMax(value); }
     }
     /// <summary>The current value of a clock object.
-/// Year: years since 1900. Negative value represents year below 1900 (year value -30 represents 1870). Year default range is from 70 to 137.
-/// 
-/// Month: default value range is from 0 to 11.
-/// 
-/// Date: default value range is from 1 to 31 according to the month value.
-/// 
-/// Hour: default value will be in terms of 24 hr format (0~23)
-/// 
-/// Minute: default value range is from 0 to 59.</summary>
-/// <value>Time structure containing the time value.</value>
+    /// Year: years since 1900. Negative value represents year below 1900 (year value -30 represents 1870). Year default range is from 70 to 137.
+    /// 
+    /// Month: default value range is from 0 to 11.
+    /// 
+    /// Date: default value range is from 1 to 31 according to the month value.
+    /// 
+    /// Hour: default value will be in terms of 24 hr format (0~23)
+    /// 
+    /// Minute: default value range is from 0 to 59.</summary>
+    /// <value>Time structure containing the time value.</value>
     public Efl.Time Time {
         get { return GetTime(); }
         set { SetTime(value); }
@@ -592,7 +564,7 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
             return Efl.Ui.Clock.efl_ui_clock_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_ui_clock_format_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -605,13 +577,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static System.String format_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_clock_format_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Clock)wrapper).GetFormat();
+                    _ret_var = ((Clock)ws.Target).GetFormat();
                 }
                 catch (Exception e)
                 {
@@ -641,13 +613,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void format_set(System.IntPtr obj, System.IntPtr pd, System.String fmt)
         {
             Eina.Log.Debug("function efl_ui_clock_format_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Clock)wrapper).SetFormat(fmt);
+                    ((Clock)ws.Target).SetFormat(fmt);
                 }
                 catch (Exception e)
                 {
@@ -676,13 +648,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static bool pause_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_clock_pause_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Clock)wrapper).GetPause();
+                    _ret_var = ((Clock)ws.Target).GetPause();
                 }
                 catch (Exception e)
                 {
@@ -712,13 +684,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void pause_set(System.IntPtr obj, System.IntPtr pd, bool paused)
         {
             Eina.Log.Debug("function efl_ui_clock_pause_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Clock)wrapper).SetPause(paused);
+                    ((Clock)ws.Target).SetPause(paused);
                 }
                 catch (Exception e)
                 {
@@ -747,13 +719,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static bool edit_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_clock_edit_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Clock)wrapper).GetEditMode();
+                    _ret_var = ((Clock)ws.Target).GetEditMode();
                 }
                 catch (Exception e)
                 {
@@ -783,13 +755,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void edit_mode_set(System.IntPtr obj, System.IntPtr pd, bool value)
         {
             Eina.Log.Debug("function efl_ui_clock_edit_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Clock)wrapper).SetEditMode(value);
+                    ((Clock)ws.Target).SetEditMode(value);
                 }
                 catch (Exception e)
                 {
@@ -818,13 +790,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static Efl.Time.NativeStruct time_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_clock_time_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Time _ret_var = default(Efl.Time);
                 try
                 {
-                    _ret_var = ((Clock)wrapper).GetTimeMin();
+                    _ret_var = ((Clock)ws.Target).GetTimeMin();
                 }
                 catch (Exception e)
                 {
@@ -854,14 +826,14 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void time_min_set(System.IntPtr obj, System.IntPtr pd, Efl.Time.NativeStruct mintime)
         {
             Eina.Log.Debug("function efl_ui_clock_time_min_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Time _in_mintime = mintime;
                             
                 try
                 {
-                    ((Clock)wrapper).SetTimeMin(_in_mintime);
+                    ((Clock)ws.Target).SetTimeMin(_in_mintime);
                 }
                 catch (Exception e)
                 {
@@ -890,13 +862,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static Efl.Time.NativeStruct time_max_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_clock_time_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Time _ret_var = default(Efl.Time);
                 try
                 {
-                    _ret_var = ((Clock)wrapper).GetTimeMax();
+                    _ret_var = ((Clock)ws.Target).GetTimeMax();
                 }
                 catch (Exception e)
                 {
@@ -926,14 +898,14 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void time_max_set(System.IntPtr obj, System.IntPtr pd, Efl.Time.NativeStruct maxtime)
         {
             Eina.Log.Debug("function efl_ui_clock_time_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Time _in_maxtime = maxtime;
                             
                 try
                 {
-                    ((Clock)wrapper).SetTimeMax(_in_maxtime);
+                    ((Clock)ws.Target).SetTimeMax(_in_maxtime);
                 }
                 catch (Exception e)
                 {
@@ -962,13 +934,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static Efl.Time.NativeStruct time_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_clock_time_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Time _ret_var = default(Efl.Time);
                 try
                 {
-                    _ret_var = ((Clock)wrapper).GetTime();
+                    _ret_var = ((Clock)ws.Target).GetTime();
                 }
                 catch (Exception e)
                 {
@@ -998,14 +970,14 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void time_set(System.IntPtr obj, System.IntPtr pd, Efl.Time.NativeStruct curtime)
         {
             Eina.Log.Debug("function efl_ui_clock_time_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Time _in_curtime = curtime;
                             
                 try
                 {
-                    ((Clock)wrapper).SetTime(_in_curtime);
+                    ((Clock)ws.Target).SetTime(_in_curtime);
                 }
                 catch (Exception e)
                 {
@@ -1034,13 +1006,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static bool field_visible_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ClockType fieldtype)
         {
             Eina.Log.Debug("function efl_ui_clock_field_visible_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Clock)wrapper).GetFieldVisible(fieldtype);
+                    _ret_var = ((Clock)ws.Target).GetFieldVisible(fieldtype);
                 }
                 catch (Exception e)
                 {
@@ -1070,13 +1042,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void field_visible_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ClockType fieldtype, bool visible)
         {
             Eina.Log.Debug("function efl_ui_clock_field_visible_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Clock)wrapper).SetFieldVisible(fieldtype, visible);
+                    ((Clock)ws.Target).SetFieldVisible(fieldtype, visible);
                 }
                 catch (Exception e)
                 {
@@ -1105,13 +1077,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void field_limit_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ClockType fieldtype, out int min, out int max)
         {
             Eina.Log.Debug("function efl_ui_clock_field_limit_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         min = default(int);        max = default(int);                                    
                 try
                 {
-                    ((Clock)wrapper).GetFieldLimit(fieldtype, out min, out max);
+                    ((Clock)ws.Target).GetFieldLimit(fieldtype, out min, out max);
                 }
                 catch (Exception e)
                 {
@@ -1140,13 +1112,13 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void field_limit_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ClockType fieldtype, int min, int max)
         {
             Eina.Log.Debug("function efl_ui_clock_field_limit_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Clock)wrapper).SetFieldLimit(fieldtype, min, max);
+                    ((Clock)ws.Target).SetFieldLimit(fieldtype, min, max);
                 }
                 catch (Exception e)
                 {
@@ -1164,7 +1136,7 @@ public class Clock : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
 
         private static efl_ui_clock_field_limit_set_delegate efl_ui_clock_field_limit_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 5c2842c..43f7b4f 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Datepicker widget
 /// This is a widget which allows the user to pick a date using internal spinner. User can use the internal spinner to select year, month, day or user can input value using internal entry.</summary>
 [Efl.Ui.Datepicker.NativeMethods]
-public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
+public class Datepicker : Efl.Ui.LayoutBase
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Datepicker(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Datepicker"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when date value is changed</summary>
     public event EventHandler ChangedEvt
     {
@@ -96,10 +69,9 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -306,7 +278,7 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
             return Efl.Ui.Datepicker.efl_ui_datepicker_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_datepicker_min_get_delegate(System.IntPtr obj, System.IntPtr pd,  out int year,  out int month,  out int day);
@@ -319,13 +291,13 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void min_get(System.IntPtr obj, System.IntPtr pd, out int year, out int month, out int day)
         {
             Eina.Log.Debug("function efl_ui_datepicker_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 year = default(int);        month = default(int);        day = default(int);                                    
                 try
                 {
-                    ((Datepicker)wrapper).GetMin(out year, out month, out day);
+                    ((Datepicker)ws.Target).GetMin(out year, out month, out day);
                 }
                 catch (Exception e)
                 {
@@ -354,13 +326,13 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void min_set(System.IntPtr obj, System.IntPtr pd, int year, int month, int day)
         {
             Eina.Log.Debug("function efl_ui_datepicker_min_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Datepicker)wrapper).SetMin(year, month, day);
+                    ((Datepicker)ws.Target).SetMin(year, month, day);
                 }
                 catch (Exception e)
                 {
@@ -389,13 +361,13 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void max_get(System.IntPtr obj, System.IntPtr pd, out int year, out int month, out int day)
         {
             Eina.Log.Debug("function efl_ui_datepicker_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 year = default(int);        month = default(int);        day = default(int);                                    
                 try
                 {
-                    ((Datepicker)wrapper).GetMax(out year, out month, out day);
+                    ((Datepicker)ws.Target).GetMax(out year, out month, out day);
                 }
                 catch (Exception e)
                 {
@@ -424,13 +396,13 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void max_set(System.IntPtr obj, System.IntPtr pd, int year, int month, int day)
         {
             Eina.Log.Debug("function efl_ui_datepicker_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Datepicker)wrapper).SetMax(year, month, day);
+                    ((Datepicker)ws.Target).SetMax(year, month, day);
                 }
                 catch (Exception e)
                 {
@@ -459,13 +431,13 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void date_get(System.IntPtr obj, System.IntPtr pd, out int year, out int month, out int day)
         {
             Eina.Log.Debug("function efl_ui_datepicker_date_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 year = default(int);        month = default(int);        day = default(int);                                    
                 try
                 {
-                    ((Datepicker)wrapper).GetDate(out year, out month, out day);
+                    ((Datepicker)ws.Target).GetDate(out year, out month, out day);
                 }
                 catch (Exception e)
                 {
@@ -494,13 +466,13 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void date_set(System.IntPtr obj, System.IntPtr pd, int year, int month, int day)
         {
             Eina.Log.Debug("function efl_ui_datepicker_date_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Datepicker)wrapper).SetDate(year, month, day);
+                    ((Datepicker)ws.Target).SetDate(year, month, day);
                 }
                 catch (Exception e)
                 {
@@ -518,7 +490,7 @@ public class Datepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
 
         private static efl_ui_datepicker_date_set_delegate efl_ui_datepicker_date_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_direction.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_direction.eo.cs
deleted file mode 100644 (file)
index 4340822..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-#pragma warning disable CS1591
-using System;
-using System.Runtime.InteropServices;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.ComponentModel;
-namespace Efl {
-
-namespace Ui {
-
-/// <summary>EFL UI object direction interface</summary>
-[Efl.Ui.IDirectionConcrete.NativeMethods]
-public interface IDirection : 
-    Efl.Eo.IWrapper, IDisposable
-{
-    /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <returns>Direction of the widget.</returns>
-Efl.Ui.Dir GetDirection();
-    /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <param name="dir">Direction of the widget.</param>
-void SetDirection(Efl.Ui.Dir dir);
-            /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    Efl.Ui.Dir Direction {
-        get ;
-        set ;
-    }
-}
-/// <summary>EFL UI object direction interface</summary>
-sealed public class IDirectionConcrete : 
-
-IDirection
-    
-{
-    ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
-    {
-        get
-        {
-            if (((object)this).GetType() == typeof(IDirectionConcrete))
-            {
-                return GetEflClassStatic();
-            }
-            else
-            {
-                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
-            }
-        }
-    }
-
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
-    [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
-        efl_ui_direction_interface_get();
-    /// <summary>Initializes a new instance of the <see cref="IDirection"/> class.
-    /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IDirectionConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IDirectionConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Control the direction of a given widget.
-    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-    /// 
-    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-    /// <returns>Direction of the widget.</returns>
-    public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate(this.NativeHandle);
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Control the direction of a given widget.
-    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-    /// 
-    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-    /// <param name="dir">Direction of the widget.</param>
-    public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate(this.NativeHandle,dir);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
-    }
-    private static IntPtr GetEflClassStatic()
-    {
-        return Efl.Ui.IDirectionConcrete.efl_ui_direction_interface_get();
-    }
-    /// <summary>Wrapper for native methods and virtual method delegates.
-    /// For internal use by generated code only.</summary>
-    public class NativeMethods  : Efl.Eo.NativeClass
-    {
-        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Efl);
-        /// <summary>Gets the list of Eo operations to override.</summary>
-        /// <returns>The list of Eo operations to be overload.</returns>
-        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
-        {
-            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
-            var methods = Efl.Eo.Globals.GetUserMethods(type);
-
-            if (efl_ui_direction_get_static_delegate == null)
-            {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
-            }
-
-            if (efl_ui_direction_set_static_delegate == null)
-            {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
-            }
-
-            return descs;
-        }
-        /// <summary>Returns the Eo class for the native methods of this class.</summary>
-        /// <returns>The native class pointer.</returns>
-        public override IntPtr GetEflClass()
-        {
-            return Efl.Ui.IDirectionConcrete.efl_ui_direction_interface_get();
-        }
-
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
-
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
-                try
-                {
-                    _ret_var = ((IDirection)wrapper).GetDirection();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
-
-        
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
-
-        
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
-
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
-        {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((IDirection)wrapper).SetDirection(dir);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
-            }
-        }
-
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
-
-        #pragma warning restore CA1707, SA1300, SA1600
-
-}
-}
-}
-
-}
-
-namespace Efl {
-
-namespace Ui {
-
-/// <summary>Direction for UI objects and layouts.
-/// Not to be confused with <see cref="Efl.Orient"/> which is for images and canvases. This enum is used to define how widgets should expand and orient themselves, not to rotate images.
-/// 
-/// See also <see cref="Efl.Ui.IDirection"/>.</summary>
-public enum Dir
-{
-/// <summary>Default direction. Each widget may have a different default.</summary>
-Default = 0,
-/// <summary>Horizontal direction, along the X axis. Usually left-to-right, but may be inverted to right-to-left if mirroring is on.</summary>
-Horizontal = 1,
-/// <summary>Vertical direction, along the Y axis. Usually downwards.</summary>
-Vertical = 2,
-/// <summary>Horizontal, left-to-right direction.</summary>
-Ltr = 3,
-/// <summary>Horizontal, right-to-left direction.</summary>
-Rtl = 4,
-/// <summary>Vertical, top-to-bottom direction.</summary>
-Down = 5,
-/// <summary>Vertical, bottom-to-top direction.</summary>
-Up = 6,
-/// <summary>Right is an alias for LTR.</summary>
-Right = 3,
-/// <summary>Left is an alias for RTL.</summary>
-Left = 4,
-}
-
-}
-
-}
-
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_direction_readonly.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_direction_readonly.eo.cs
deleted file mode 100644 (file)
index 6447a38..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-#pragma warning disable CS1591
-using System;
-using System.Runtime.InteropServices;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.ComponentModel;
-namespace Efl {
-
-namespace Ui {
-
-[Efl.Ui.IDirectionReadonlyConcrete.NativeMethods]
-public interface IDirectionReadonly : 
-    Efl.Ui.IDirection ,
-    Efl.Eo.IWrapper, IDisposable
-{
-}
-sealed public class IDirectionReadonlyConcrete : 
-
-IDirectionReadonly
-    , Efl.Ui.IDirection
-{
-    ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
-    {
-        get
-        {
-            if (((object)this).GetType() == typeof(IDirectionReadonlyConcrete))
-            {
-                return GetEflClassStatic();
-            }
-            else
-            {
-                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
-            }
-        }
-    }
-
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
-    [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
-        efl_ui_direction_readonly_mixin_get();
-    /// <summary>Initializes a new instance of the <see cref="IDirectionReadonly"/> class.
-    /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IDirectionReadonlyConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IDirectionReadonlyConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Control the direction of a given widget.
-    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-    /// 
-    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-    /// <returns>Direction of the widget.</returns>
-    public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate(this.NativeHandle);
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Control the direction of a given widget.
-    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-    /// 
-    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-    /// <param name="dir">Direction of the widget.</param>
-    public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate(this.NativeHandle,dir);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
-    }
-    private static IntPtr GetEflClassStatic()
-    {
-        return Efl.Ui.IDirectionReadonlyConcrete.efl_ui_direction_readonly_mixin_get();
-    }
-    /// <summary>Wrapper for native methods and virtual method delegates.
-    /// For internal use by generated code only.</summary>
-    public class NativeMethods  : Efl.Eo.NativeClass
-    {
-        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Efl);
-        /// <summary>Gets the list of Eo operations to override.</summary>
-        /// <returns>The list of Eo operations to be overload.</returns>
-        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
-        {
-            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
-            var methods = Efl.Eo.Globals.GetUserMethods(type);
-
-            if (efl_ui_direction_get_static_delegate == null)
-            {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
-            }
-
-            if (efl_ui_direction_set_static_delegate == null)
-            {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
-            }
-
-            return descs;
-        }
-        /// <summary>Returns the Eo class for the native methods of this class.</summary>
-        /// <returns>The native class pointer.</returns>
-        public override IntPtr GetEflClass()
-        {
-            return Efl.Ui.IDirectionReadonlyConcrete.efl_ui_direction_readonly_mixin_get();
-        }
-
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
-
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
-                try
-                {
-                    _ret_var = ((IDirectionReadonlyConcrete)wrapper).GetDirection();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
-
-        
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
-
-        
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
-
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
-        {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((IDirectionReadonlyConcrete)wrapper).SetDirection(dir);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
-            }
-        }
-
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
-
-        #pragma warning restore CA1707, SA1300, SA1600
-
-}
-}
-}
-
-}
-
index 27ae3eb..e5de274 100644 (file)
@@ -63,13 +63,13 @@ public class IDndDragDropEvt_Args : EventArgs {
     ///<summary>Actual event payload.</summary>
     public Efl.Ui.SelectionData arg { get; set; }
 }
-sealed public class IDndConcrete : 
-
-IDnd
+sealed public class IDndConcrete :
+    Efl.Eo.EoWrapper
+    , IDnd
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -84,155 +84,12 @@ IDnd
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_dnd_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IDnd"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IDndConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IDndConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IDndConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>accept drag data</summary>
@@ -242,13 +99,12 @@ IDnd
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDndDragAcceptEvt_Args args = new Efl.Ui.IDndDragAcceptEvt_Args();
+                        Efl.Ui.IDndDragAcceptEvt_Args args = new Efl.Ui.IDndDragAcceptEvt_Args();
                         args.arg = (bool)Marshal.PtrToStructure(evt.Info, typeof(bool));
                         try
                         {
@@ -304,10 +160,9 @@ IDnd
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -357,10 +212,9 @@ IDnd
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -410,10 +264,9 @@ IDnd
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -463,13 +316,12 @@ IDnd
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDndDragPosEvt_Args args = new Efl.Ui.IDndDragPosEvt_Args();
+                        Efl.Ui.IDndDragPosEvt_Args args = new Efl.Ui.IDndDragPosEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -526,13 +378,12 @@ IDnd
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDndDragDropEvt_Args args = new Efl.Ui.IDndDragDropEvt_Args();
+                        Efl.Ui.IDndDragDropEvt_Args args = new Efl.Ui.IDndDragDropEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -695,7 +546,7 @@ IDnd
             return Efl.Ui.IDndConcrete.efl_ui_dnd_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_dnd_drag_start_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.SelectionFormat format,  Eina.Slice data,  Efl.Ui.SelectionAction action,  IntPtr icon_func_data, Efl.Dnd.DragIconCreateInternal icon_func, EinaFreeCb icon_func_free_cb,  uint seat);
@@ -708,14 +559,14 @@ IDnd
         private static void drag_start(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, Eina.Slice data, Efl.Ui.SelectionAction action, IntPtr icon_func_data, Efl.Dnd.DragIconCreateInternal icon_func, EinaFreeCb icon_func_free_cb, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_drag_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                     Efl.Dnd.DragIconCreateWrapper icon_func_wrapper = new Efl.Dnd.DragIconCreateWrapper(icon_func, icon_func_data, icon_func_free_cb);
                     
                 try
                 {
-                    ((IDndConcrete)wrapper).DragStart(format, data, action, icon_func_wrapper.ManagedCb, seat);
+                    ((IDndConcrete)ws.Target).DragStart(format, data, action, icon_func_wrapper.ManagedCb, seat);
                 }
                 catch (Exception e)
                 {
@@ -744,13 +595,13 @@ IDnd
         private static void drag_action_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionAction action, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_drag_action_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IDndConcrete)wrapper).SetDragAction(action, seat);
+                    ((IDndConcrete)ws.Target).SetDragAction(action, seat);
                 }
                 catch (Exception e)
                 {
@@ -779,13 +630,13 @@ IDnd
         private static void drag_cancel(System.IntPtr obj, System.IntPtr pd, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_drag_cancel was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IDndConcrete)wrapper).DragCancel(seat);
+                    ((IDndConcrete)ws.Target).DragCancel(seat);
                 }
                 catch (Exception e)
                 {
@@ -814,13 +665,13 @@ IDnd
         private static void drop_target_add(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_drop_target_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IDndConcrete)wrapper).AddDropTarget(format, seat);
+                    ((IDndConcrete)ws.Target).AddDropTarget(format, seat);
                 }
                 catch (Exception e)
                 {
@@ -849,13 +700,13 @@ IDnd
         private static void drop_target_del(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_drop_target_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IDndConcrete)wrapper).DelDropTarget(format, seat);
+                    ((IDndConcrete)ws.Target).DelDropTarget(format, seat);
                 }
                 catch (Exception e)
                 {
@@ -873,7 +724,7 @@ IDnd
 
         private static efl_ui_dnd_drop_target_del_delegate efl_ui_dnd_drop_target_del_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index fdf4f16..b51b1fd 100644 (file)
@@ -36,19 +36,19 @@ void AddDropItem(Efl.Ui.SelectionFormat format, Efl.Dnd.ItemGet item_func, uint
     /// <param name="seat">Specified seat for multiple seats case.</param>
 void DelDropItem(uint seat);
                             /// <summary>The time since mouse down happens to drag starts.</summary>
-/// <value>The drag delay time</value>
+    /// <value>The drag delay time</value>
     double DragDelayTime {
         get ;
         set ;
     }
 }
-sealed public class IDndContainerConcrete : 
-
-IDndContainer
+sealed public class IDndContainerConcrete :
+    Efl.Eo.EoWrapper
+    , IDndContainer
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -63,86 +63,12 @@ IDndContainer
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_dnd_container_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IDndContainer"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IDndContainerConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IDndContainerConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IDndContainerConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>The time since mouse down happens to drag starts.</summary>
@@ -192,7 +118,7 @@ IDndContainer
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>The time since mouse down happens to drag starts.</summary>
-/// <value>The drag delay time</value>
+    /// <value>The drag delay time</value>
     public double DragDelayTime {
         get { return GetDragDelayTime(); }
         set { SetDragDelayTime(value); }
@@ -282,7 +208,7 @@ IDndContainer
             return Efl.Ui.IDndContainerConcrete.efl_ui_dnd_container_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_ui_dnd_container_drag_delay_time_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -295,13 +221,13 @@ IDndContainer
         private static double drag_delay_time_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_dnd_container_drag_delay_time_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IDndContainerConcrete)wrapper).GetDragDelayTime();
+                    _ret_var = ((IDndContainerConcrete)ws.Target).GetDragDelayTime();
                 }
                 catch (Exception e)
                 {
@@ -331,13 +257,13 @@ IDndContainer
         private static void drag_delay_time_set(System.IntPtr obj, System.IntPtr pd, double time)
         {
             Eina.Log.Debug("function efl_ui_dnd_container_drag_delay_time_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IDndContainerConcrete)wrapper).SetDragDelayTime(time);
+                    ((IDndContainerConcrete)ws.Target).SetDragDelayTime(time);
                 }
                 catch (Exception e)
                 {
@@ -366,8 +292,8 @@ IDndContainer
         private static void drag_item_add(System.IntPtr obj, System.IntPtr pd, IntPtr data_func_data, Efl.Dnd.DragDataGetInternal data_func, EinaFreeCb data_func_free_cb, IntPtr item_func_data, Efl.Dnd.ItemGetInternal item_func, EinaFreeCb item_func_free_cb, IntPtr icon_func_data, Efl.Dnd.DragIconCreateInternal icon_func, EinaFreeCb icon_func_free_cb, IntPtr icon_list_func_data, Efl.Dnd.DragIconListCreateInternal icon_list_func, EinaFreeCb icon_list_func_free_cb, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_container_drag_item_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                             Efl.Dnd.DragDataGetWrapper data_func_wrapper = new Efl.Dnd.DragDataGetWrapper(data_func, data_func_data, data_func_free_cb);
             Efl.Dnd.ItemGetWrapper item_func_wrapper = new Efl.Dnd.ItemGetWrapper(item_func, item_func_data, item_func_free_cb);
@@ -376,7 +302,7 @@ IDndContainer
                     
                 try
                 {
-                    ((IDndContainerConcrete)wrapper).AddDragItem(data_func_wrapper.ManagedCb, item_func_wrapper.ManagedCb, icon_func_wrapper.ManagedCb, icon_list_func_wrapper.ManagedCb, seat);
+                    ((IDndContainerConcrete)ws.Target).AddDragItem(data_func_wrapper.ManagedCb, item_func_wrapper.ManagedCb, icon_func_wrapper.ManagedCb, icon_list_func_wrapper.ManagedCb, seat);
                 }
                 catch (Exception e)
                 {
@@ -405,13 +331,13 @@ IDndContainer
         private static void drag_item_del(System.IntPtr obj, System.IntPtr pd, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_container_drag_item_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IDndContainerConcrete)wrapper).DelDragItem(seat);
+                    ((IDndContainerConcrete)ws.Target).DelDragItem(seat);
                 }
                 catch (Exception e)
                 {
@@ -440,14 +366,14 @@ IDndContainer
         private static void drop_item_add(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, IntPtr item_func_data, Efl.Dnd.ItemGetInternal item_func, EinaFreeCb item_func_free_cb, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_container_drop_item_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                     Efl.Dnd.ItemGetWrapper item_func_wrapper = new Efl.Dnd.ItemGetWrapper(item_func, item_func_data, item_func_free_cb);
                     
                 try
                 {
-                    ((IDndContainerConcrete)wrapper).AddDropItem(format, item_func_wrapper.ManagedCb, seat);
+                    ((IDndContainerConcrete)ws.Target).AddDropItem(format, item_func_wrapper.ManagedCb, seat);
                 }
                 catch (Exception e)
                 {
@@ -476,13 +402,13 @@ IDndContainer
         private static void drop_item_del(System.IntPtr obj, System.IntPtr pd, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_container_drop_item_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IDndContainerConcrete)wrapper).DelDropItem(seat);
+                    ((IDndContainerConcrete)ws.Target).DelDropItem(seat);
                 }
                 catch (Exception e)
                 {
@@ -500,7 +426,7 @@ IDndContainer
 
         private static efl_ui_dnd_container_drop_item_del_delegate efl_ui_dnd_container_drop_item_del_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 196073d..f1b4546 100644 (file)
@@ -327,7 +327,7 @@ namespace Dnd {
 [StructLayout(LayoutKind.Sequential)]
 public struct DragAccept
 {
-        public bool Accepted;
+    public bool Accepted;
     ///<summary>Constructor for DragAccept.</summary>
     public DragAccept(
         bool Accepted = default(bool)    )
@@ -335,12 +335,16 @@ public struct DragAccept
         this.Accepted = Accepted;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator DragAccept(IntPtr ptr)
     {
         var tmp = (DragAccept.NativeStruct)Marshal.PtrToStructure(ptr, typeof(DragAccept.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct DragAccept.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -365,6 +369,8 @@ public struct DragAccept
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -399,12 +405,16 @@ public struct DragPos
         this.Item = Item;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator DragPos(IntPtr ptr)
     {
         var tmp = (DragPos.NativeStruct)Marshal.PtrToStructure(ptr, typeof(DragPos.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct DragPos.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -442,6 +452,8 @@ public struct DragPos
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -472,12 +484,16 @@ public struct DragItemContainerDrop
         this.Pos = Pos;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator DragItemContainerDrop(IntPtr ptr)
     {
         var tmp = (DragItemContainerDrop.NativeStruct)Marshal.PtrToStructure(ptr, typeof(DragItemContainerDrop.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct DragItemContainerDrop.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -511,6 +527,8 @@ public struct DragItemContainerDrop
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 65dc459..480967a 100644 (file)
@@ -77,20 +77,20 @@ bool MoveDragStep(double dx, double dy);
 /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
 bool MoveDragPage(double dx, double dy);
                                                 /// <summary>Determines the draggable directions (read-only).
-/// The draggable directions are defined in the EDC file, inside the &quot;draggable&quot; section, by the attributes <c>x</c> and <c>y</c>. See the EDC reference documentation for more information.</summary>
-/// <value>The direction(s) premitted for drag.</value>
+    /// The draggable directions are defined in the EDC file, inside the &quot;draggable&quot; section, by the attributes <c>x</c> and <c>y</c>. See the EDC reference documentation for more information.</summary>
+    /// <value>The direction(s) premitted for drag.</value>
     Efl.Ui.DragDir DragDir {
         get ;
     }
 }
 /// <summary>Common interface for draggable objects and parts.</summary>
-sealed public class IDragConcrete : 
-
-IDrag
+sealed public class IDragConcrete :
+    Efl.Eo.EoWrapper
+    , IDrag
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -105,86 +105,12 @@ IDrag
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_drag_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IDrag"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IDragConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IDragConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IDragConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Gets the draggable object location.</summary>
@@ -294,8 +220,8 @@ IDrag
                                         return _ret_var;
  }
     /// <summary>Determines the draggable directions (read-only).
-/// The draggable directions are defined in the EDC file, inside the &quot;draggable&quot; section, by the attributes <c>x</c> and <c>y</c>. See the EDC reference documentation for more information.</summary>
-/// <value>The direction(s) premitted for drag.</value>
+    /// The draggable directions are defined in the EDC file, inside the &quot;draggable&quot; section, by the attributes <c>x</c> and <c>y</c>. See the EDC reference documentation for more information.</summary>
+    /// <value>The direction(s) premitted for drag.</value>
     public Efl.Ui.DragDir DragDir {
         get { return GetDragDir(); }
     }
@@ -434,7 +360,7 @@ IDrag
             return Efl.Ui.IDragConcrete.efl_ui_drag_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_drag_value_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double dx,  out double dy);
@@ -447,13 +373,13 @@ IDrag
         private static bool drag_value_get(System.IntPtr obj, System.IntPtr pd, out double dx, out double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         dx = default(double);        dy = default(double);                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).GetDragValue(out dx, out dy);
+                    _ret_var = ((IDrag)ws.Target).GetDragValue(out dx, out dy);
                 }
                 catch (Exception e)
                 {
@@ -483,13 +409,13 @@ IDrag
         private static bool drag_value_set(System.IntPtr obj, System.IntPtr pd, double dx, double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).SetDragValue(dx, dy);
+                    _ret_var = ((IDrag)ws.Target).SetDragValue(dx, dy);
                 }
                 catch (Exception e)
                 {
@@ -519,13 +445,13 @@ IDrag
         private static bool drag_size_get(System.IntPtr obj, System.IntPtr pd, out double dw, out double dh)
         {
             Eina.Log.Debug("function efl_ui_drag_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         dw = default(double);        dh = default(double);                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).GetDragSize(out dw, out dh);
+                    _ret_var = ((IDrag)ws.Target).GetDragSize(out dw, out dh);
                 }
                 catch (Exception e)
                 {
@@ -555,13 +481,13 @@ IDrag
         private static bool drag_size_set(System.IntPtr obj, System.IntPtr pd, double dw, double dh)
         {
             Eina.Log.Debug("function efl_ui_drag_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).SetDragSize(dw, dh);
+                    _ret_var = ((IDrag)ws.Target).SetDragSize(dw, dh);
                 }
                 catch (Exception e)
                 {
@@ -591,13 +517,13 @@ IDrag
         private static Efl.Ui.DragDir drag_dir_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_drag_dir_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.DragDir _ret_var = default(Efl.Ui.DragDir);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).GetDragDir();
+                    _ret_var = ((IDrag)ws.Target).GetDragDir();
                 }
                 catch (Exception e)
                 {
@@ -627,13 +553,13 @@ IDrag
         private static bool drag_step_get(System.IntPtr obj, System.IntPtr pd, out double dx, out double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_step_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         dx = default(double);        dy = default(double);                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).GetDragStep(out dx, out dy);
+                    _ret_var = ((IDrag)ws.Target).GetDragStep(out dx, out dy);
                 }
                 catch (Exception e)
                 {
@@ -663,13 +589,13 @@ IDrag
         private static bool drag_step_set(System.IntPtr obj, System.IntPtr pd, double dx, double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_step_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).SetDragStep(dx, dy);
+                    _ret_var = ((IDrag)ws.Target).SetDragStep(dx, dy);
                 }
                 catch (Exception e)
                 {
@@ -699,13 +625,13 @@ IDrag
         private static bool drag_page_get(System.IntPtr obj, System.IntPtr pd, out double dx, out double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_page_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         dx = default(double);        dy = default(double);                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).GetDragPage(out dx, out dy);
+                    _ret_var = ((IDrag)ws.Target).GetDragPage(out dx, out dy);
                 }
                 catch (Exception e)
                 {
@@ -735,13 +661,13 @@ IDrag
         private static bool drag_page_set(System.IntPtr obj, System.IntPtr pd, double dx, double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_page_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).SetDragPage(dx, dy);
+                    _ret_var = ((IDrag)ws.Target).SetDragPage(dx, dy);
                 }
                 catch (Exception e)
                 {
@@ -771,13 +697,13 @@ IDrag
         private static bool drag_step_move(System.IntPtr obj, System.IntPtr pd, double dx, double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_step_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).MoveDragStep(dx, dy);
+                    _ret_var = ((IDrag)ws.Target).MoveDragStep(dx, dy);
                 }
                 catch (Exception e)
                 {
@@ -807,13 +733,13 @@ IDrag
         private static bool drag_page_move(System.IntPtr obj, System.IntPtr pd, double dx, double dy)
         {
             Eina.Log.Debug("function efl_ui_drag_page_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDrag)wrapper).MoveDragPage(dx, dy);
+                    _ret_var = ((IDrag)ws.Target).MoveDragPage(dx, dy);
                 }
                 catch (Exception e)
                 {
@@ -832,7 +758,7 @@ IDrag
 
         private static efl_ui_drag_page_move_delegate efl_ui_drag_page_move_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 7e27db5..6c93203 100644 (file)
@@ -39,8 +39,8 @@ void SetDragTarget(bool set);
     /// <summary>Called when drag starts into left direction</summary>
     event EventHandler<Efl.Ui.IDraggableDragStartLeftEvt_Args> DragStartLeftEvt;
     /// <summary>Control whether the object&apos;s content is changed by drag and drop.
-/// If <c>drag_target</c> is true the object can be the target of a dragging object. The content of this object can then be changed into dragging content. For example, if an object deals with image and <c>drag_target</c> is true, the user can drag the new image and drop it into said object. This object&apos;s image can then be changed into a new image.</summary>
-/// <value>Turn on or off drop_target. Default is <c>false</c>.</value>
+    /// If <c>drag_target</c> is true the object can be the target of a dragging object. The content of this object can then be changed into dragging content. For example, if an object deals with image and <c>drag_target</c> is true, the user can drag the new image and drop it into said object. This object&apos;s image can then be changed into a new image.</summary>
+    /// <value>Turn on or off drop_target. Default is <c>false</c>.</value>
     bool DragTarget {
         get ;
         set ;
@@ -77,13 +77,13 @@ public class IDraggableDragStartLeftEvt_Args : EventArgs {
     public Efl.Object arg { get; set; }
 }
 /// <summary>Efl UI draggable interface</summary>
-sealed public class IDraggableConcrete : 
-
-IDraggable
+sealed public class IDraggableConcrete :
+    Efl.Eo.EoWrapper
+    , IDraggable
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -98,155 +98,12 @@ IDraggable
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_draggable_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IDraggable"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IDraggableConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IDraggableConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IDraggableConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when drag operation starts</summary>
@@ -256,13 +113,12 @@ IDraggable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragEvt_Args args = new Efl.Ui.IDraggableDragEvt_Args();
+                        Efl.Ui.IDraggableDragEvt_Args args = new Efl.Ui.IDraggableDragEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -311,10 +167,9 @@ IDraggable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -364,13 +219,12 @@ IDraggable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragStopEvt_Args args = new Efl.Ui.IDraggableDragStopEvt_Args();
+                        Efl.Ui.IDraggableDragStopEvt_Args args = new Efl.Ui.IDraggableDragStopEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -419,10 +273,9 @@ IDraggable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -472,13 +325,12 @@ IDraggable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragStartUpEvt_Args args = new Efl.Ui.IDraggableDragStartUpEvt_Args();
+                        Efl.Ui.IDraggableDragStartUpEvt_Args args = new Efl.Ui.IDraggableDragStartUpEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -527,13 +379,12 @@ IDraggable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragStartDownEvt_Args args = new Efl.Ui.IDraggableDragStartDownEvt_Args();
+                        Efl.Ui.IDraggableDragStartDownEvt_Args args = new Efl.Ui.IDraggableDragStartDownEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -582,13 +433,12 @@ IDraggable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragStartRightEvt_Args args = new Efl.Ui.IDraggableDragStartRightEvt_Args();
+                        Efl.Ui.IDraggableDragStartRightEvt_Args args = new Efl.Ui.IDraggableDragStartRightEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -637,13 +487,12 @@ IDraggable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragStartLeftEvt_Args args = new Efl.Ui.IDraggableDragStartLeftEvt_Args();
+                        Efl.Ui.IDraggableDragStartLeftEvt_Args args = new Efl.Ui.IDraggableDragStartLeftEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -701,8 +550,8 @@ IDraggable
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Control whether the object&apos;s content is changed by drag and drop.
-/// If <c>drag_target</c> is true the object can be the target of a dragging object. The content of this object can then be changed into dragging content. For example, if an object deals with image and <c>drag_target</c> is true, the user can drag the new image and drop it into said object. This object&apos;s image can then be changed into a new image.</summary>
-/// <value>Turn on or off drop_target. Default is <c>false</c>.</value>
+    /// If <c>drag_target</c> is true the object can be the target of a dragging object. The content of this object can then be changed into dragging content. For example, if an object deals with image and <c>drag_target</c> is true, the user can drag the new image and drop it into said object. This object&apos;s image can then be changed into a new image.</summary>
+    /// <value>Turn on or off drop_target. Default is <c>false</c>.</value>
     public bool DragTarget {
         get { return GetDragTarget(); }
         set { SetDragTarget(value); }
@@ -752,7 +601,7 @@ IDraggable
             return Efl.Ui.IDraggableConcrete.efl_ui_draggable_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_draggable_drag_target_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -765,13 +614,13 @@ IDraggable
         private static bool drag_target_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_draggable_drag_target_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IDraggable)wrapper).GetDragTarget();
+                    _ret_var = ((IDraggable)ws.Target).GetDragTarget();
                 }
                 catch (Exception e)
                 {
@@ -801,13 +650,13 @@ IDraggable
         private static void drag_target_set(System.IntPtr obj, System.IntPtr pd, bool set)
         {
             Eina.Log.Debug("function efl_ui_draggable_drag_target_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IDraggable)wrapper).SetDragTarget(set);
+                    ((IDraggable)ws.Target).SetDragTarget(set);
                 }
                 catch (Exception e)
                 {
@@ -825,7 +674,7 @@ IDraggable
 
         private static efl_ui_draggable_drag_target_set_delegate efl_ui_draggable_drag_target_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 0765882..19e22c1 100644 (file)
@@ -24,7 +24,13 @@ public interface IFactory :
     /// <summary>Release a UI object and disconnect from models.</summary>
 /// <param name="ui_view">Efl canvas</param>
 void Release(Efl.Gfx.IEntity ui_view);
-        System.Threading.Tasks.Task<Eina.Value> CreateAsync(Efl.IModel model,Efl.Gfx.IEntity parent, System.Threading.CancellationToken token = default(System.Threading.CancellationToken));
+        /// <summary>Async wrapper for <see cref="Create" />.</summary>
+    /// <param name="model">Efl model</param>
+    /// <param name="parent">Efl canvas</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
+    System.Threading.Tasks.Task<Eina.Value> CreateAsync(Efl.IModel model,Efl.Gfx.IEntity parent, System.Threading.CancellationToken token = default(System.Threading.CancellationToken));
+
         /// <summary>Event triggered when an item has been successfully created.</summary>
     event EventHandler<Efl.Ui.IFactoryCreatedEvt_Args> CreatedEvt;
 }
@@ -34,13 +40,13 @@ public class IFactoryCreatedEvt_Args : EventArgs {
     public Efl.Ui.FactoryItemCreatedEvent arg { get; set; }
 }
 /// <summary>Efl UI factory interface</summary>
-sealed public class IFactoryConcrete : 
-
-IFactory
+sealed public class IFactoryConcrete :
+    Efl.Eo.EoWrapper
+    , IFactory
     , Efl.Ui.IFactoryBind, Efl.Ui.IPropertyBind
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -55,155 +61,12 @@ IFactory
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_factory_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IFactory"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IFactoryConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IFactoryConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IFactoryConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Event triggered when an item has been successfully created.</summary>
@@ -213,13 +76,12 @@ IFactory
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IFactoryCreatedEvt_Args args = new Efl.Ui.IFactoryCreatedEvt_Args();
+                        Efl.Ui.IFactoryCreatedEvt_Args args = new Efl.Ui.IFactoryCreatedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -276,13 +138,12 @@ IFactory
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IPropertyBindPropertiesChangedEvt_Args args = new Efl.Ui.IPropertyBindPropertiesChangedEvt_Args();
+                        Efl.Ui.IPropertyBindPropertiesChangedEvt_Args args = new Efl.Ui.IPropertyBindPropertiesChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -339,13 +200,12 @@ IFactory
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IPropertyBindPropertyBoundEvt_Args args = new Efl.Ui.IPropertyBindPropertyBoundEvt_Args();
+                        Efl.Ui.IPropertyBindPropertyBoundEvt_Args args = new Efl.Ui.IPropertyBindPropertyBoundEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -425,11 +285,17 @@ IFactory
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
+    /// <summary>Async wrapper for <see cref="Create" />.</summary>
+    /// <param name="model">Efl model</param>
+    /// <param name="parent">Efl canvas</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> CreateAsync(Efl.IModel model,Efl.Gfx.IEntity parent, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = Create( model, parent);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.IFactoryConcrete.efl_ui_factory_interface_get();
@@ -495,7 +361,7 @@ IFactory
             return Efl.Ui.IFactoryConcrete.efl_ui_factory_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Eina.FutureMarshaler))]
         private delegate  Eina.Future efl_ui_factory_create_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.IModel model, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity parent);
@@ -508,13 +374,13 @@ IFactory
         private static  Eina.Future create(System.IntPtr obj, System.IntPtr pd, Efl.IModel model, Efl.Gfx.IEntity parent)
         {
             Eina.Log.Debug("function efl_ui_factory_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((IFactory)wrapper).Create(model, parent);
+                    _ret_var = ((IFactory)ws.Target).Create(model, parent);
                 }
                 catch (Exception e)
                 {
@@ -544,13 +410,13 @@ IFactory
         private static void release(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity ui_view)
         {
             Eina.Log.Debug("function efl_ui_factory_release was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IFactory)wrapper).Release(ui_view);
+                    ((IFactory)ws.Target).Release(ui_view);
                 }
                 catch (Exception e)
                 {
@@ -579,13 +445,13 @@ IFactory
         private static void factory_bind(System.IntPtr obj, System.IntPtr pd, System.String key, Efl.Ui.IFactory factory)
         {
             Eina.Log.Debug("function efl_ui_factory_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IFactory)wrapper).FactoryBind(key, factory);
+                    ((IFactory)ws.Target).FactoryBind(key, factory);
                 }
                 catch (Exception e)
                 {
@@ -614,13 +480,13 @@ IFactory
         private static Eina.Error property_bind(System.IntPtr obj, System.IntPtr pd, System.String key, System.String property)
         {
             Eina.Log.Debug("function efl_ui_property_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((IFactory)wrapper).PropertyBind(key, property);
+                    _ret_var = ((IFactory)ws.Target).PropertyBind(key, property);
                 }
                 catch (Exception e)
                 {
@@ -639,7 +505,7 @@ IFactory
 
         private static efl_ui_property_bind_delegate efl_ui_property_bind_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -668,12 +534,16 @@ public struct FactoryItemCreatedEvent
         this.Item = Item;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator FactoryItemCreatedEvent(IntPtr ptr)
     {
         var tmp = (FactoryItemCreatedEvent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(FactoryItemCreatedEvent.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct FactoryItemCreatedEvent.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -704,6 +574,8 @@ public struct FactoryItemCreatedEvent
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 19de093..3618bbe 100644 (file)
@@ -20,13 +20,13 @@ public interface IFactoryBind :
 void FactoryBind(System.String key, Efl.Ui.IFactory factory);
     }
 /// <summary>Efl UI Property interface. view object can have <see cref="Efl.IModel"/> and need to set cotent with those model stored data. the interface can help binding the factory to create object with model property data. see <see cref="Efl.IModel"/> see <see cref="Efl.Ui.IFactory"/></summary>
-sealed public class IFactoryBindConcrete : 
-
-IFactoryBind
+sealed public class IFactoryBindConcrete :
+    Efl.Eo.EoWrapper
+    , IFactoryBind
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -41,86 +41,12 @@ IFactoryBind
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_factory_bind_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IFactoryBind"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IFactoryBindConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IFactoryBindConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IFactoryBindConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>bind the factory with the given key string. when the data is ready or changed, factory create the object and bind the data to the key action and process promised work. Note: the input <see cref="Efl.Ui.IFactory"/> need to be <see cref="Efl.Ui.IPropertyBind.PropertyBind"/> at least once.</summary>
@@ -165,7 +91,7 @@ IFactoryBind
             return Efl.Ui.IFactoryBindConcrete.efl_ui_factory_bind_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_factory_bind_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.IFactory factory);
@@ -178,13 +104,13 @@ IFactoryBind
         private static void factory_bind(System.IntPtr obj, System.IntPtr pd, System.String key, Efl.Ui.IFactory factory)
         {
             Eina.Log.Debug("function efl_ui_factory_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IFactoryBind)wrapper).FactoryBind(key, factory);
+                    ((IFactoryBind)ws.Target).FactoryBind(key, factory);
                 }
                 catch (Exception e)
                 {
@@ -202,7 +128,7 @@ IFactoryBind
 
         private static efl_ui_factory_bind_delegate efl_ui_factory_bind_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index ff6f028..ec13e6f 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI flip class</summary>
 [Efl.Ui.Flip.NativeMethods]
-public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.IPackLinear
+public class Flip : Efl.Ui.Widget, Efl.IContainer, Efl.IPack, Efl.IPackLinear
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Flip(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Flip"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when flip animation begins</summary>
     public event EventHandler AnimateBeginEvt
     {
@@ -95,10 +68,9 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -148,10 +120,9 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -194,7 +165,7 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -202,13 +173,12 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -250,7 +220,7 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -258,13 +228,12 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -341,14 +310,14 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
     /// See also <see cref="Efl.Ui.Flip.SetInteraction"/>.</summary>
     /// <param name="dir">The hit area to set.</param>
     /// <param name="hitsize">The amount of that dimension (0.0 to 1.0) to use.</param>
-    virtual public void SetInteractionDirectionHitsize(Efl.Ui.Dir dir, double hitsize) {
+    virtual public void SetInteractionDirectionHitsize(Efl.Ui.LayoutOrientation dir, double hitsize) {
                                                          Efl.Ui.Flip.NativeMethods.efl_ui_flip_interaction_direction_hitsize_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir, hitsize);
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Get the amount of the flip that is sensitive to interactive flip.</summary>
     /// <param name="dir">The direction to check.</param>
     /// <returns>The size set for that direction.</returns>
-    virtual public double GetInteractionDirectionHitsize(Efl.Ui.Dir dir) {
+    virtual public double GetInteractionDirectionHitsize(Efl.Ui.LayoutOrientation dir) {
                                  var _ret_var = Efl.Ui.Flip.NativeMethods.efl_ui_flip_interaction_direction_hitsize_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
@@ -359,14 +328,14 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
     /// You can also set the appropriate hit area size by calling <see cref="Efl.Ui.Flip.SetInteractionDirectionHitsize"/>. By default, a minimum hit area will be created on the opposite edge of the flip.</summary>
     /// <param name="dir">The direction to change.</param>
     /// <param name="enabled">If that direction is enabled or not.</param>
-    virtual public void SetInteractionDirectionEnabled(Efl.Ui.Dir dir, bool enabled) {
+    virtual public void SetInteractionDirectionEnabled(Efl.Ui.LayoutOrientation dir, bool enabled) {
                                                          Efl.Ui.Flip.NativeMethods.efl_ui_flip_interaction_direction_enabled_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir, enabled);
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Get the enabled state of that flip direction.</summary>
     /// <param name="dir">The direction to check.</param>
     /// <returns>If that direction is enabled or not.</returns>
-    virtual public bool GetInteractionDirectionEnabled(Efl.Ui.Dir dir) {
+    virtual public bool GetInteractionDirectionEnabled(Efl.Ui.LayoutOrientation dir) {
                                  var _ret_var = Efl.Ui.Flip.NativeMethods.efl_ui_flip_interaction_direction_enabled_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
@@ -392,78 +361,48 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
                                          }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     virtual public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     virtual public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
@@ -474,98 +413,96 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, 0).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the beginning.</param>
+    /// <param name="subobj">Object to pack at the beginning.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBegin(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_begin_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Append item at the end of this container.
+    /// <summary>Append object at the end of this container.
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, -1).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the end.</param>
+    /// <param name="subobj">Object to pack at the end.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackEnd(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_end_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Prepend item before other sub object.
+    /// <summary>Prepend an object before an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack before <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack before <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBefore(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_before_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Append item after other sub object.
+    /// <summary>Append an object after an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack after <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack after <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAfter(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_after_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Inserts <c>subobj</c> BEFORE the item at position <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Inserts <c>subobj</c> BEFORE the sub-object at position <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
     /// If <c>index</c> is less than -<c>count</c>, it will trigger <see cref="Efl.IPackLinear.PackBegin"/>(<c>subobj</c>) whereas <c>index</c> greater than <c>count</c>-1 will trigger <see cref="Efl.IPackLinear.PackEnd"/>(<c>subobj</c>).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack.</param>
-    /// <param name="index">Index of item to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <param name="subobj">Object to pack.</param>
+    /// <param name="index">Index of existing sub-object to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAt(Efl.Gfx.IEntity subobj, int index) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Content at a given <c>index</c> in this container.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Sub-object at a given <c>index</c> in this container.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will return the first item whereas <c>index</c> greater than <c>count</c>-1 will return the last item.</summary>
-    /// <param name="index">Index of the item to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The object contained at the given <c>index</c>.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will return the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will return the last sub-object.</summary>
+    /// <param name="index">Index of the existing sub-object to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object contained at the given <c>index</c>.</returns>
     virtual public Efl.Gfx.IEntity GetPackContent(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Get the index of a child in this container.</summary>
-    /// <param name="subobj">An object contained in this pack.</param>
-    /// <returns>-1 in case <c>subobj</c> is not a child of this object, or the index of this item in the range 0 to (<c>count</c>-1).</returns>
+    /// <summary>Get the index of a sub-object in this container.</summary>
+    /// <param name="subobj">An existing sub-object in this container.</param>
+    /// <returns>-1 in case <c>subobj</c> is not found, or the index of <c>subobj</c> in the range 0 to (<c>count</c>-1).</returns>
     virtual public int GetPackIndex(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_index_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Pop out (remove) the item at the specified <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
-    /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will remove the first item whereas <c>index</c> greater than <c>count</c>-1 will remove the last item.
+    /// <summary>Pop out (remove) the sub-object at the specified <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// Equivalent to <see cref="Efl.IPack.Unpack"/>(<see cref="Efl.IPackLinear.GetPackContent"/>(<c>index</c>)).</summary>
-    /// <param name="index">Index of item to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The child item if it could be removed.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will remove the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will remove the last sub-object.</summary>
+    /// <param name="index">Index of the sub-object to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object if it could be removed.</returns>
     virtual public Efl.Gfx.IEntity PackUnpackAt(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_unpack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
     /// <summary>Get the interactive flip mode.</summary>
-/// <value>The interactive flip mode to use.</value>
+    /// <value>The interactive flip mode to use.</value>
     public Efl.Ui.FlipInteraction Interaction {
         get { return GetInteraction(); }
         set { SetInteraction(value); }
     }
     /// <summary>Get flip front visibility state.</summary>
-/// <value><c>true</c> if front front is showing, <c>false</c> if the back is showing.</value>
+    /// <value><c>true</c> if front front is showing, <c>false</c> if the back is showing.</value>
     public bool FrontVisible {
         get { return GetFrontVisible(); }
     }
@@ -695,46 +632,6 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_count"), func = Marshal.GetFunctionPointerForDelegate(efl_content_count_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -865,7 +762,7 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
             return Efl.Ui.Flip.efl_ui_flip_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Ui.FlipInteraction efl_ui_flip_interaction_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -878,13 +775,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static Efl.Ui.FlipInteraction interaction_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_flip_interaction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.FlipInteraction _ret_var = default(Efl.Ui.FlipInteraction);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).GetInteraction();
+                    _ret_var = ((Flip)ws.Target).GetInteraction();
                 }
                 catch (Exception e)
                 {
@@ -914,13 +811,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static void interaction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.FlipInteraction mode)
         {
             Eina.Log.Debug("function efl_ui_flip_interaction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Flip)wrapper).SetInteraction(mode);
+                    ((Flip)ws.Target).SetInteraction(mode);
                 }
                 catch (Exception e)
                 {
@@ -949,13 +846,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static bool front_visible_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_flip_front_visible_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).GetFrontVisible();
+                    _ret_var = ((Flip)ws.Target).GetFrontVisible();
                 }
                 catch (Exception e)
                 {
@@ -975,23 +872,23 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static efl_ui_flip_front_visible_get_delegate efl_ui_flip_front_visible_get_static_delegate;
 
         
-        private delegate void efl_ui_flip_interaction_direction_hitsize_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir,  double hitsize);
+        private delegate void efl_ui_flip_interaction_direction_hitsize_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir,  double hitsize);
 
         
-        public delegate void efl_ui_flip_interaction_direction_hitsize_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir,  double hitsize);
+        public delegate void efl_ui_flip_interaction_direction_hitsize_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir,  double hitsize);
 
         public static Efl.Eo.FunctionWrapper<efl_ui_flip_interaction_direction_hitsize_set_api_delegate> efl_ui_flip_interaction_direction_hitsize_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_flip_interaction_direction_hitsize_set_api_delegate>(Module, "efl_ui_flip_interaction_direction_hitsize_set");
 
-        private static void interaction_direction_hitsize_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir, double hitsize)
+        private static void interaction_direction_hitsize_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir, double hitsize)
         {
             Eina.Log.Debug("function efl_ui_flip_interaction_direction_hitsize_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Flip)wrapper).SetInteractionDirectionHitsize(dir, hitsize);
+                    ((Flip)ws.Target).SetInteractionDirectionHitsize(dir, hitsize);
                 }
                 catch (Exception e)
                 {
@@ -1010,23 +907,23 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static efl_ui_flip_interaction_direction_hitsize_set_delegate efl_ui_flip_interaction_direction_hitsize_set_static_delegate;
 
         
-        private delegate double efl_ui_flip_interaction_direction_hitsize_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        private delegate double efl_ui_flip_interaction_direction_hitsize_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         
-        public delegate double efl_ui_flip_interaction_direction_hitsize_get_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        public delegate double efl_ui_flip_interaction_direction_hitsize_get_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
         public static Efl.Eo.FunctionWrapper<efl_ui_flip_interaction_direction_hitsize_get_api_delegate> efl_ui_flip_interaction_direction_hitsize_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_flip_interaction_direction_hitsize_get_api_delegate>(Module, "efl_ui_flip_interaction_direction_hitsize_get");
 
-        private static double interaction_direction_hitsize_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static double interaction_direction_hitsize_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
             Eina.Log.Debug("function efl_ui_flip_interaction_direction_hitsize_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).GetInteractionDirectionHitsize(dir);
+                    _ret_var = ((Flip)ws.Target).GetInteractionDirectionHitsize(dir);
                 }
                 catch (Exception e)
                 {
@@ -1046,23 +943,23 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static efl_ui_flip_interaction_direction_hitsize_get_delegate efl_ui_flip_interaction_direction_hitsize_get_static_delegate;
 
         
-        private delegate void efl_ui_flip_interaction_direction_enabled_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir, [MarshalAs(UnmanagedType.U1)] bool enabled);
+        private delegate void efl_ui_flip_interaction_direction_enabled_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir, [MarshalAs(UnmanagedType.U1)] bool enabled);
 
         
-        public delegate void efl_ui_flip_interaction_direction_enabled_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir, [MarshalAs(UnmanagedType.U1)] bool enabled);
+        public delegate void efl_ui_flip_interaction_direction_enabled_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir, [MarshalAs(UnmanagedType.U1)] bool enabled);
 
         public static Efl.Eo.FunctionWrapper<efl_ui_flip_interaction_direction_enabled_set_api_delegate> efl_ui_flip_interaction_direction_enabled_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_flip_interaction_direction_enabled_set_api_delegate>(Module, "efl_ui_flip_interaction_direction_enabled_set");
 
-        private static void interaction_direction_enabled_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir, bool enabled)
+        private static void interaction_direction_enabled_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir, bool enabled)
         {
             Eina.Log.Debug("function efl_ui_flip_interaction_direction_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Flip)wrapper).SetInteractionDirectionEnabled(dir, enabled);
+                    ((Flip)ws.Target).SetInteractionDirectionEnabled(dir, enabled);
                 }
                 catch (Exception e)
                 {
@@ -1081,23 +978,23 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static efl_ui_flip_interaction_direction_enabled_set_delegate efl_ui_flip_interaction_direction_enabled_set_static_delegate;
 
         [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_ui_flip_interaction_direction_enabled_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        private delegate bool efl_ui_flip_interaction_direction_enabled_get_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_ui_flip_interaction_direction_enabled_get_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        public delegate bool efl_ui_flip_interaction_direction_enabled_get_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
         public static Efl.Eo.FunctionWrapper<efl_ui_flip_interaction_direction_enabled_get_api_delegate> efl_ui_flip_interaction_direction_enabled_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_flip_interaction_direction_enabled_get_api_delegate>(Module, "efl_ui_flip_interaction_direction_enabled_get");
 
-        private static bool interaction_direction_enabled_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static bool interaction_direction_enabled_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
             Eina.Log.Debug("function efl_ui_flip_interaction_direction_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).GetInteractionDirectionEnabled(dir);
+                    _ret_var = ((Flip)ws.Target).GetInteractionDirectionEnabled(dir);
                 }
                 catch (Exception e)
                 {
@@ -1127,13 +1024,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static void go(System.IntPtr obj, System.IntPtr pd, Efl.Ui.FlipMode mode)
         {
             Eina.Log.Debug("function efl_ui_flip_go was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Flip)wrapper).Go(mode);
+                    ((Flip)ws.Target).Go(mode);
                 }
                 catch (Exception e)
                 {
@@ -1162,13 +1059,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static void go_to(System.IntPtr obj, System.IntPtr pd, bool front, Efl.Ui.FlipMode mode)
         {
             Eina.Log.Debug("function efl_ui_flip_go_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Flip)wrapper).GoTo(front, mode);
+                    ((Flip)ws.Target).GoTo(front, mode);
                 }
                 catch (Exception e)
                 {
@@ -1197,13 +1094,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).ContentIterate();
+                    _ret_var = ((Flip)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -1233,13 +1130,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).ContentCount();
+                    _ret_var = ((Flip)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -1258,146 +1155,6 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((Flip)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((Flip)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((Flip)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((Flip)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -1409,13 +1166,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).ClearPack();
+                    _ret_var = ((Flip)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -1445,13 +1202,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).UnpackAll();
+                    _ret_var = ((Flip)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -1481,13 +1238,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).Unpack(subobj);
+                    _ret_var = ((Flip)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1517,13 +1274,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).Pack(subobj);
+                    _ret_var = ((Flip)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1553,13 +1310,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static bool pack_begin(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_begin was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).PackBegin(subobj);
+                    _ret_var = ((Flip)ws.Target).PackBegin(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1589,13 +1346,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static bool pack_end(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).PackEnd(subobj);
+                    _ret_var = ((Flip)ws.Target).PackEnd(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1625,13 +1382,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static bool pack_before(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_before was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).PackBefore(subobj, existing);
+                    _ret_var = ((Flip)ws.Target).PackBefore(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -1661,13 +1418,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static bool pack_after(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_after was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).PackAfter(subobj, existing);
+                    _ret_var = ((Flip)ws.Target).PackAfter(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -1697,13 +1454,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static bool pack_at(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
         {
             Eina.Log.Debug("function efl_pack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).PackAt(subobj, index);
+                    _ret_var = ((Flip)ws.Target).PackAt(subobj, index);
                 }
                 catch (Exception e)
                 {
@@ -1733,13 +1490,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static Efl.Gfx.IEntity pack_content_get(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).GetPackContent(index);
+                    _ret_var = ((Flip)ws.Target).GetPackContent(index);
                 }
                 catch (Exception e)
                 {
@@ -1769,13 +1526,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static int pack_index_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).GetPackIndex(subobj);
+                    _ret_var = ((Flip)ws.Target).GetPackIndex(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1805,13 +1562,13 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
         private static Efl.Gfx.IEntity pack_unpack_at(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_unpack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Flip)wrapper).PackUnpackAt(index);
+                    _ret_var = ((Flip)ws.Target).PackUnpackAt(index);
                 }
                 catch (Exception e)
                 {
@@ -1830,7 +1587,7 @@ public class Flip : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.
 
         private static efl_pack_unpack_at_delegate efl_pack_unpack_at_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index fefb6b4..9222c75 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI flip internal class</summary>
 [Efl.Ui.FlipPart.NativeMethods]
-public class FlipPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent
+public class FlipPart : Efl.Ui.WidgetPart, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class FlipPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected FlipPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="FlipPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class FlipPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -90,13 +63,12 @@ public class FlipPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -166,9 +138,9 @@ public class FlipPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent
         return _ret_var;
  }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
@@ -229,7 +201,7 @@ public class FlipPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent
             return Efl.Ui.FlipPart.efl_ui_flip_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -242,13 +214,13 @@ public class FlipPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((FlipPart)wrapper).GetContent();
+                    _ret_var = ((FlipPart)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -278,13 +250,13 @@ public class FlipPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((FlipPart)wrapper).SetContent(content);
+                    _ret_var = ((FlipPart)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -314,13 +286,13 @@ public class FlipPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((FlipPart)wrapper).UnsetContent();
+                    _ret_var = ((FlipPart)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -339,7 +311,7 @@ public class FlipPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 6e4389d..3773f97 100644 (file)
@@ -49,20 +49,20 @@ void Dirty();
 /// You can use this function to call composition_elements.</summary>
 void Prepare();
                             /// <summary>Set the order of elements that will be used for composition
-/// Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
-/// 
-/// If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
-/// 
-/// If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
-/// 
-/// If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.</summary>
-/// <value>The order to use</value>
+    /// Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
+    /// 
+    /// If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
+    /// 
+    /// If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
+    /// 
+    /// If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.</summary>
+    /// <value>The order to use</value>
     Eina.List<Efl.Gfx.IEntity> CompositionElements {
         get ;
         set ;
     }
     /// <summary>Set to true if all children should be registered as logicals</summary>
-/// <value><c>true</c> or <c>false</c></value>
+    /// <value><c>true</c> or <c>false</c></value>
     bool LogicalMode {
         get ;
         set ;
@@ -70,13 +70,13 @@ void Prepare();
 }
 /// <summary>This defines the inheriting widget as Composition widget.
 /// A composition widget is a widget that&apos;s the logical parent of another set of widgets which can be used for interaction.</summary>
-sealed public class ICompositionConcrete : 
-
-IComposition
+sealed public class ICompositionConcrete :
+    Efl.Eo.EoWrapper
+    , IComposition
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -91,86 +91,12 @@ IComposition
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_focus_composition_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IComposition"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ICompositionConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ICompositionConcrete()
+    private ICompositionConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Set the order of elements that will be used for composition
@@ -227,20 +153,20 @@ logical_order.Own = false;
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Set the order of elements that will be used for composition
-/// Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
-/// 
-/// If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
-/// 
-/// If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
-/// 
-/// If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.</summary>
-/// <value>The order to use</value>
+    /// Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
+    /// 
+    /// If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
+    /// 
+    /// If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
+    /// 
+    /// If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.</summary>
+    /// <value>The order to use</value>
     public Eina.List<Efl.Gfx.IEntity> CompositionElements {
         get { return GetCompositionElements(); }
         set { SetCompositionElements(value); }
     }
     /// <summary>Set to true if all children should be registered as logicals</summary>
-/// <value><c>true</c> or <c>false</c></value>
+    /// <value><c>true</c> or <c>false</c></value>
     public bool LogicalMode {
         get { return GetLogicalMode(); }
         set { SetLogicalMode(value); }
@@ -330,7 +256,7 @@ logical_order.Own = false;
             return Efl.Ui.Focus.ICompositionConcrete.efl_ui_focus_composition_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_ui_focus_composition_elements_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -343,13 +269,13 @@ logical_order.Own = false;
         private static System.IntPtr composition_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Gfx.IEntity> _ret_var = default(Eina.List<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((ICompositionConcrete)wrapper).GetCompositionElements();
+                    _ret_var = ((ICompositionConcrete)ws.Target).GetCompositionElements();
                 }
                 catch (Exception e)
                 {
@@ -379,14 +305,14 @@ logical_order.Own = false;
         private static void composition_elements_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr logical_order)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_elements_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_logical_order = new Eina.List<Efl.Gfx.IEntity>(logical_order, true, false);
                             
                 try
                 {
-                    ((ICompositionConcrete)wrapper).SetCompositionElements(_in_logical_order);
+                    ((ICompositionConcrete)ws.Target).SetCompositionElements(_in_logical_order);
                 }
                 catch (Exception e)
                 {
@@ -415,13 +341,13 @@ logical_order.Own = false;
         private static bool logical_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_logical_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ICompositionConcrete)wrapper).GetLogicalMode();
+                    _ret_var = ((ICompositionConcrete)ws.Target).GetLogicalMode();
                 }
                 catch (Exception e)
                 {
@@ -451,13 +377,13 @@ logical_order.Own = false;
         private static void logical_mode_set(System.IntPtr obj, System.IntPtr pd, bool logical_mode)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_logical_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ICompositionConcrete)wrapper).SetLogicalMode(logical_mode);
+                    ((ICompositionConcrete)ws.Target).SetLogicalMode(logical_mode);
                 }
                 catch (Exception e)
                 {
@@ -486,13 +412,13 @@ logical_order.Own = false;
         private static void dirty(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_dirty was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ICompositionConcrete)wrapper).Dirty();
+                    ((ICompositionConcrete)ws.Target).Dirty();
                 }
                 catch (Exception e)
                 {
@@ -521,13 +447,13 @@ logical_order.Own = false;
         private static void prepare(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_prepare was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ICompositionConcrete)wrapper).Prepare();
+                    ((ICompositionConcrete)ws.Target).Prepare();
                 }
                 catch (Exception e)
                 {
@@ -545,7 +471,7 @@ logical_order.Own = false;
 
         private static efl_ui_focus_composition_prepare_delegate efl_ui_focus_composition_prepare_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 75b87ca..db51cdd 100644 (file)
@@ -35,7 +35,7 @@ void GetBehaviour(out bool enable_on_visible, out bool cycle);
 /// <param name="cycle">If <c>true</c> the focus will cycle in the layer, if <c>false</c></param>
 void SetBehaviour(bool enable_on_visible, bool cycle);
                     /// <summary>Enable property</summary>
-/// <value><c>true</c> to set enable the layer <c>false</c> to disable it</value>
+    /// <value><c>true</c> to set enable the layer <c>false</c> to disable it</value>
     bool Enable {
         get ;
         set ;
@@ -45,13 +45,13 @@ void SetBehaviour(bool enable_on_visible, bool cycle);
 /// A focus layer is the uppermost one which received input and handles all focus related events for as long as it exists and is visible. It&apos;s NOT possible to escape this layer with focus movement.
 /// 
 /// Once the object is hidden or destroyed the focus will go back to the mainwindow, where it was before.</summary>
-sealed public class ILayerConcrete : 
-
-ILayer
+sealed public class ILayerConcrete :
+    Efl.Eo.EoWrapper
+    , ILayer
     , Efl.Ui.IWidgetFocusManager, Efl.Ui.Focus.IManager
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -66,155 +66,12 @@ ILayer
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_focus_layer_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="ILayer"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ILayerConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ILayerConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
+    private ILayerConcrete(System.IntPtr raw) : base(raw)
     {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Redirect object has changed, the old manager is passed as an event argument.
@@ -225,13 +82,12 @@ ILayer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -281,10 +137,9 @@ ILayer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -335,10 +190,9 @@ ILayer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -389,13 +243,12 @@ ILayer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -445,14 +298,13 @@ ILayer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -700,38 +552,38 @@ ILayer
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Enable property</summary>
-/// <value><c>true</c> to set enable the layer <c>false</c> to disable it</value>
+    /// <value><c>true</c> to set enable the layer <c>false</c> to disable it</value>
     public bool Enable {
         get { return GetEnable(); }
         set { SetEnable(value); }
     }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
@@ -991,7 +843,7 @@ ILayer
             return Efl.Ui.Focus.ILayerConcrete.efl_ui_focus_layer_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_focus_layer_enable_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1004,13 +856,13 @@ ILayer
         private static bool enable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_enable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).GetEnable();
+                    _ret_var = ((ILayerConcrete)ws.Target).GetEnable();
                 }
                 catch (Exception e)
                 {
@@ -1040,13 +892,13 @@ ILayer
         private static void enable_set(System.IntPtr obj, System.IntPtr pd, bool v)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_enable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ILayerConcrete)wrapper).SetEnable(v);
+                    ((ILayerConcrete)ws.Target).SetEnable(v);
                 }
                 catch (Exception e)
                 {
@@ -1075,13 +927,13 @@ ILayer
         private static void behaviour_get(System.IntPtr obj, System.IntPtr pd, out bool enable_on_visible, out bool cycle)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_behaviour_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         enable_on_visible = default(bool);        cycle = default(bool);                            
                 try
                 {
-                    ((ILayerConcrete)wrapper).GetBehaviour(out enable_on_visible, out cycle);
+                    ((ILayerConcrete)ws.Target).GetBehaviour(out enable_on_visible, out cycle);
                 }
                 catch (Exception e)
                 {
@@ -1110,13 +962,13 @@ ILayer
         private static void behaviour_set(System.IntPtr obj, System.IntPtr pd, bool enable_on_visible, bool cycle)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_behaviour_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ILayerConcrete)wrapper).SetBehaviour(enable_on_visible, cycle);
+                    ((ILayerConcrete)ws.Target).SetBehaviour(enable_on_visible, cycle);
                 }
                 catch (Exception e)
                 {
@@ -1145,13 +997,13 @@ ILayer
         private static Efl.Ui.Focus.IManager focus_manager_create(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_manager_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).FocusManagerCreate(root);
+                    _ret_var = ((ILayerConcrete)ws.Target).FocusManagerCreate(root);
                 }
                 catch (Exception e)
                 {
@@ -1181,13 +1033,13 @@ ILayer
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).GetManagerFocus();
+                    _ret_var = ((ILayerConcrete)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -1217,13 +1069,13 @@ ILayer
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ILayerConcrete)wrapper).SetManagerFocus(focus);
+                    ((ILayerConcrete)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -1252,13 +1104,13 @@ ILayer
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).GetRedirect();
+                    _ret_var = ((ILayerConcrete)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -1288,13 +1140,13 @@ ILayer
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ILayerConcrete)wrapper).SetRedirect(redirect);
+                    ((ILayerConcrete)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -1323,13 +1175,13 @@ ILayer
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).GetBorderElements();
+                    _ret_var = ((ILayerConcrete)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -1359,14 +1211,14 @@ ILayer
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((ILayerConcrete)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -1396,13 +1248,13 @@ ILayer
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).GetRoot();
+                    _ret_var = ((ILayerConcrete)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -1432,13 +1284,13 @@ ILayer
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).SetRoot(root);
+                    _ret_var = ((ILayerConcrete)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -1468,13 +1320,13 @@ ILayer
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).Move(direction);
+                    _ret_var = ((ILayerConcrete)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -1504,13 +1356,13 @@ ILayer
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((ILayerConcrete)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -1540,13 +1392,13 @@ ILayer
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).RequestSubchild(root);
+                    _ret_var = ((ILayerConcrete)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -1576,13 +1428,13 @@ ILayer
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).Fetch(child);
+                    _ret_var = ((ILayerConcrete)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -1612,13 +1464,13 @@ ILayer
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((ILayerConcrete)wrapper).LogicalEnd();
+                    _ret_var = ((ILayerConcrete)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -1648,13 +1500,13 @@ ILayer
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ILayerConcrete)wrapper).ResetHistory();
+                    ((ILayerConcrete)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -1683,13 +1535,13 @@ ILayer
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ILayerConcrete)wrapper).PopHistoryStack();
+                    ((ILayerConcrete)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -1718,13 +1570,13 @@ ILayer
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ILayerConcrete)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((ILayerConcrete)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -1753,13 +1605,13 @@ ILayer
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ILayerConcrete)wrapper).FreezeDirtyLogic();
+                    ((ILayerConcrete)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -1788,13 +1640,13 @@ ILayer
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ILayerConcrete)wrapper).DirtyLogicUnfreeze();
+                    ((ILayerConcrete)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -1812,7 +1664,7 @@ ILayer
 
         private static efl_ui_focus_manager_dirty_logic_unfreeze_delegate efl_ui_focus_manager_dirty_logic_unfreeze_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 58e9652..ffbf796 100644 (file)
@@ -128,32 +128,32 @@ void DirtyLogicUnfreeze();
     /// (Since EFL 1.22)</summary>
     event EventHandler<Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args> DirtyLogicFreezeChangedEvt;
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     Efl.Ui.Focus.IObject ManagerFocus {
         get ;
         set ;
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     Efl.Ui.Focus.IManager Redirect {
         get ;
         set ;
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get ;
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     Efl.Ui.Focus.IObject Root {
         get ;
         set ;
@@ -177,13 +177,13 @@ public class IManagerDirtyLogicFreezeChangedEvt_Args : EventArgs {
 /// <summary>Interface for managing focus objects
 /// This interface is built in order to support movement of the focus property in a set of widgets. The movement of the focus property can happen in a tree manner, or a graph manner. The movement is also keeping track of the history of focused elements. The tree interpretation differentiates between logical and non-logical widgets, a logical widget cannot receive focus whereas a non-logical one can.
 /// (Since EFL 1.22)</summary>
-sealed public class IManagerConcrete : 
-
-IManager
+sealed public class IManagerConcrete :
+    Efl.Eo.EoWrapper
+    , IManager
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -198,155 +198,12 @@ IManager
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_focus_manager_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IManager"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IManagerConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IManagerConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IManagerConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Redirect object has changed, the old manager is passed as an event argument.
@@ -357,13 +214,12 @@ IManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -413,10 +269,9 @@ IManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -467,10 +322,9 @@ IManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -521,13 +375,12 @@ IManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -577,14 +430,13 @@ IManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -795,32 +647,32 @@ IManager
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
@@ -1030,7 +882,7 @@ IManager
             return Efl.Ui.Focus.IManagerConcrete.efl_ui_focus_manager_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Ui.Focus.IObject efl_ui_focus_manager_focus_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1043,13 +895,13 @@ IManager
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).GetManagerFocus();
+                    _ret_var = ((IManager)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -1079,13 +931,13 @@ IManager
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IManager)wrapper).SetManagerFocus(focus);
+                    ((IManager)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -1114,13 +966,13 @@ IManager
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).GetRedirect();
+                    _ret_var = ((IManager)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -1150,13 +1002,13 @@ IManager
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IManager)wrapper).SetRedirect(redirect);
+                    ((IManager)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -1185,13 +1037,13 @@ IManager
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).GetBorderElements();
+                    _ret_var = ((IManager)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -1221,14 +1073,14 @@ IManager
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((IManager)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -1258,13 +1110,13 @@ IManager
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).GetRoot();
+                    _ret_var = ((IManager)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -1294,13 +1146,13 @@ IManager
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).SetRoot(root);
+                    _ret_var = ((IManager)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -1330,13 +1182,13 @@ IManager
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).Move(direction);
+                    _ret_var = ((IManager)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -1366,13 +1218,13 @@ IManager
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((IManager)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -1402,13 +1254,13 @@ IManager
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).RequestSubchild(root);
+                    _ret_var = ((IManager)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -1438,13 +1290,13 @@ IManager
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).Fetch(child);
+                    _ret_var = ((IManager)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -1474,13 +1326,13 @@ IManager
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((IManager)wrapper).LogicalEnd();
+                    _ret_var = ((IManager)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -1510,13 +1362,13 @@ IManager
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IManager)wrapper).ResetHistory();
+                    ((IManager)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -1545,13 +1397,13 @@ IManager
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IManager)wrapper).PopHistoryStack();
+                    ((IManager)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -1580,13 +1432,13 @@ IManager
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IManager)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((IManager)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -1615,13 +1467,13 @@ IManager
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IManager)wrapper).FreezeDirtyLogic();
+                    ((IManager)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -1650,13 +1502,13 @@ IManager
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IManager)wrapper).DirtyLogicUnfreeze();
+                    ((IManager)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -1674,7 +1526,7 @@ IManager
 
         private static efl_ui_focus_manager_dirty_logic_unfreeze_delegate efl_ui_focus_manager_dirty_logic_unfreeze_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -1743,12 +1595,16 @@ public struct Relations
         this.Position_in_history = Position_in_history;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Relations(IntPtr ptr)
     {
         var tmp = (Relations.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Relations.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Relations.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1818,6 +1674,8 @@ public struct Relations
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -1850,12 +1708,16 @@ public struct ManagerLogicalEndDetail
         this.Element = Element;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ManagerLogicalEndDetail(IntPtr ptr)
     {
         var tmp = (ManagerLogicalEndDetail.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ManagerLogicalEndDetail.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ManagerLogicalEndDetail.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1885,6 +1747,8 @@ public struct ManagerLogicalEndDetail
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 5197780..856fea4 100644 (file)
@@ -14,7 +14,7 @@ namespace Focus {
 /// <summary>Calculates the directions of Efl.Ui.Focus.Direction
 /// Each registered item will get an other registered object in each direction. You can get items for the currently focused item if you call request move.</summary>
 [Efl.Ui.Focus.ManagerCalc.NativeMethods]
-public class ManagerCalc : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IManager
+public class ManagerCalc : Efl.Object, Efl.Ui.Focus.IManager
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -47,7 +47,7 @@ public class ManagerCalc : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IManager
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ManagerCalc(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ManagerCalc"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -58,33 +58,6 @@ public class ManagerCalc : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IManager
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Redirect object has changed, the old manager is passed as an event argument.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.Ui.Focus.IManagerRedirectChangedEvt_Args> RedirectChangedEvt
@@ -93,13 +66,12 @@ public class ManagerCalc : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -149,10 +121,9 @@ public class ManagerCalc : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -203,10 +174,9 @@ public class ManagerCalc : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -257,13 +227,12 @@ public class ManagerCalc : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -313,14 +282,13 @@ public class ManagerCalc : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.Focus.IManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -599,32 +567,32 @@ children.Own = false;
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
@@ -905,7 +873,7 @@ children.Own = false;
             return Efl.Ui.Focus.ManagerCalc.efl_ui_focus_manager_calc_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_focus_manager_calc_register_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Focus.IObject child, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Focus.IObject parent, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Focus.IManager redirect);
@@ -918,13 +886,13 @@ children.Own = false;
         private static bool register(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child, Efl.Ui.Focus.IObject parent, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_calc_register was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).Register(child, parent, redirect);
+                    _ret_var = ((ManagerCalc)ws.Target).Register(child, parent, redirect);
                 }
                 catch (Exception e)
                 {
@@ -954,13 +922,13 @@ children.Own = false;
         private static bool register_logical(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child, Efl.Ui.Focus.IObject parent, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_calc_register_logical was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).RegisterLogical(child, parent, redirect);
+                    _ret_var = ((ManagerCalc)ws.Target).RegisterLogical(child, parent, redirect);
                 }
                 catch (Exception e)
                 {
@@ -990,13 +958,13 @@ children.Own = false;
         private static bool update_redirect(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_calc_update_redirect was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).UpdateRedirect(child, redirect);
+                    _ret_var = ((ManagerCalc)ws.Target).UpdateRedirect(child, redirect);
                 }
                 catch (Exception e)
                 {
@@ -1026,13 +994,13 @@ children.Own = false;
         private static bool update_parent(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child, Efl.Ui.Focus.IObject parent)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_calc_update_parent was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).UpdateParent(child, parent);
+                    _ret_var = ((ManagerCalc)ws.Target).UpdateParent(child, parent);
                 }
                 catch (Exception e)
                 {
@@ -1062,14 +1030,14 @@ children.Own = false;
         private static bool update_children(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject parent, System.IntPtr children)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_calc_update_children was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 var _in_children = new Eina.List<Efl.Ui.Focus.IObject>(children, true, false);
                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).UpdateChildren(parent, _in_children);
+                    _ret_var = ((ManagerCalc)ws.Target).UpdateChildren(parent, _in_children);
                 }
                 catch (Exception e)
                 {
@@ -1099,14 +1067,14 @@ children.Own = false;
         private static void update_order(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject parent, System.IntPtr children)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_calc_update_order was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 var _in_children = new Eina.List<Efl.Ui.Focus.IObject>(children, true, false);
                                             
                 try
                 {
-                    ((ManagerCalc)wrapper).UpdateOrder(parent, _in_children);
+                    ((ManagerCalc)ws.Target).UpdateOrder(parent, _in_children);
                 }
                 catch (Exception e)
                 {
@@ -1135,13 +1103,13 @@ children.Own = false;
         private static void unregister(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_calc_unregister was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ManagerCalc)wrapper).Unregister(child);
+                    ((ManagerCalc)ws.Target).Unregister(child);
                 }
                 catch (Exception e)
                 {
@@ -1170,13 +1138,13 @@ children.Own = false;
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).GetManagerFocus();
+                    _ret_var = ((ManagerCalc)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -1206,13 +1174,13 @@ children.Own = false;
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ManagerCalc)wrapper).SetManagerFocus(focus);
+                    ((ManagerCalc)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -1241,13 +1209,13 @@ children.Own = false;
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).GetRedirect();
+                    _ret_var = ((ManagerCalc)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -1277,13 +1245,13 @@ children.Own = false;
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ManagerCalc)wrapper).SetRedirect(redirect);
+                    ((ManagerCalc)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -1312,13 +1280,13 @@ children.Own = false;
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).GetBorderElements();
+                    _ret_var = ((ManagerCalc)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -1348,14 +1316,14 @@ children.Own = false;
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((ManagerCalc)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -1385,13 +1353,13 @@ children.Own = false;
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).GetRoot();
+                    _ret_var = ((ManagerCalc)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -1421,13 +1389,13 @@ children.Own = false;
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).SetRoot(root);
+                    _ret_var = ((ManagerCalc)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -1457,13 +1425,13 @@ children.Own = false;
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).Move(direction);
+                    _ret_var = ((ManagerCalc)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -1493,13 +1461,13 @@ children.Own = false;
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((ManagerCalc)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -1529,13 +1497,13 @@ children.Own = false;
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).RequestSubchild(root);
+                    _ret_var = ((ManagerCalc)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -1565,13 +1533,13 @@ children.Own = false;
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).Fetch(child);
+                    _ret_var = ((ManagerCalc)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -1601,13 +1569,13 @@ children.Own = false;
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((ManagerCalc)wrapper).LogicalEnd();
+                    _ret_var = ((ManagerCalc)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -1637,13 +1605,13 @@ children.Own = false;
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ManagerCalc)wrapper).ResetHistory();
+                    ((ManagerCalc)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -1672,13 +1640,13 @@ children.Own = false;
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ManagerCalc)wrapper).PopHistoryStack();
+                    ((ManagerCalc)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -1707,13 +1675,13 @@ children.Own = false;
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ManagerCalc)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((ManagerCalc)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -1742,13 +1710,13 @@ children.Own = false;
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ManagerCalc)wrapper).FreezeDirtyLogic();
+                    ((ManagerCalc)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -1777,13 +1745,13 @@ children.Own = false;
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ManagerCalc)wrapper).DirtyLogicUnfreeze();
+                    ((ManagerCalc)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -1801,7 +1769,7 @@ children.Own = false;
 
         private static efl_ui_focus_manager_dirty_logic_unfreeze_delegate efl_ui_focus_manager_dirty_logic_unfreeze_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 8fb2ab5..f7e36d8 100644 (file)
@@ -13,7 +13,7 @@ namespace Focus {
 
 /// <summary>This class ensures that the root is at least focusable, if nothing else is focusable</summary>
 [Efl.Ui.Focus.ManagerRootFocus.NativeMethods]
-public class ManagerRootFocus : Efl.Ui.Focus.ManagerCalc, Efl.Eo.IWrapper
+public class ManagerRootFocus : Efl.Ui.Focus.ManagerCalc
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -46,7 +46,7 @@ public class ManagerRootFocus : Efl.Ui.Focus.ManagerCalc, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ManagerRootFocus(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ManagerRootFocus"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -57,33 +57,6 @@ public class ManagerRootFocus : Efl.Ui.Focus.ManagerCalc, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The default replacement object for the case that there is no focusable object inside the manager is the root object. However, you can change this by setting this value to something else. <c>null</c> is triggered as the same value as Efl.Ui.Focus.Manager.root.get</summary>
     /// <returns>Canvas object</returns>
     virtual public Efl.Canvas.Object GetCanvasObject() {
@@ -98,7 +71,7 @@ public class ManagerRootFocus : Efl.Ui.Focus.ManagerCalc, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>The default replacement object for the case that there is no focusable object inside the manager is the root object. However, you can change this by setting this value to something else. <c>null</c> is triggered as the same value as Efl.Ui.Focus.Manager.root.get</summary>
-/// <value>Canvas object</value>
+    /// <value>Canvas object</value>
     public Efl.Canvas.Object CanvasObject {
         get { return GetCanvasObject(); }
         set { SetCanvasObject(value); }
@@ -149,7 +122,7 @@ public class ManagerRootFocus : Efl.Ui.Focus.ManagerCalc, Efl.Eo.IWrapper
             return Efl.Ui.Focus.ManagerRootFocus.efl_ui_focus_manager_root_focus_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Canvas.Object efl_ui_focus_manager_root_focus_canvas_object_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -162,13 +135,13 @@ public class ManagerRootFocus : Efl.Ui.Focus.ManagerCalc, Efl.Eo.IWrapper
         private static Efl.Canvas.Object canvas_object_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_focus_canvas_object_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((ManagerRootFocus)wrapper).GetCanvasObject();
+                    _ret_var = ((ManagerRootFocus)ws.Target).GetCanvasObject();
                 }
                 catch (Exception e)
                 {
@@ -198,13 +171,13 @@ public class ManagerRootFocus : Efl.Ui.Focus.ManagerCalc, Efl.Eo.IWrapper
         private static void canvas_object_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object canvas_object)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_focus_canvas_object_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ManagerRootFocus)wrapper).SetCanvasObject(canvas_object);
+                    ((ManagerRootFocus)ws.Target).SetCanvasObject(canvas_object);
                 }
                 catch (Exception e)
                 {
@@ -222,7 +195,7 @@ public class ManagerRootFocus : Efl.Ui.Focus.ManagerCalc, Efl.Eo.IWrapper
 
         private static efl_ui_focus_manager_root_focus_canvas_object_set_delegate efl_ui_focus_manager_root_focus_canvas_object_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index d3df1b6..77554cc 100644 (file)
@@ -29,13 +29,13 @@ public interface IManagerSub :
 /// Each sub manager also has to be a focus object, the object itself will be registered into the parent manager. It will be used as logical parent while registering the border elements.
 /// 
 /// You can filter the border elements by overriding the property <see cref="Efl.Ui.Focus.IManager.GetBorderElements"/>.</summary>
-sealed public class IManagerSubConcrete : 
-
-IManagerSub
+sealed public class IManagerSubConcrete :
+    Efl.Eo.EoWrapper
+    , IManagerSub
     , Efl.Ui.Focus.IManager
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -50,155 +50,12 @@ IManagerSub
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_focus_manager_sub_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IManagerSub"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IManagerSubConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IManagerSubConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
+    private IManagerSubConcrete(System.IntPtr raw) : base(raw)
     {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Redirect object has changed, the old manager is passed as an event argument.
@@ -209,13 +66,12 @@ IManagerSub
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -265,10 +121,9 @@ IManagerSub
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -319,10 +174,9 @@ IManagerSub
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -373,13 +227,12 @@ IManagerSub
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -429,14 +282,13 @@ IManagerSub
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -647,32 +499,32 @@ IManagerSub
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
@@ -882,7 +734,7 @@ IManagerSub
             return Efl.Ui.Focus.IManagerSubConcrete.efl_ui_focus_manager_sub_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Ui.Focus.IObject efl_ui_focus_manager_focus_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -895,13 +747,13 @@ IManagerSub
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).GetManagerFocus();
+                    _ret_var = ((IManagerSubConcrete)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -931,13 +783,13 @@ IManagerSub
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IManagerSubConcrete)wrapper).SetManagerFocus(focus);
+                    ((IManagerSubConcrete)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -966,13 +818,13 @@ IManagerSub
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).GetRedirect();
+                    _ret_var = ((IManagerSubConcrete)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -1002,13 +854,13 @@ IManagerSub
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IManagerSubConcrete)wrapper).SetRedirect(redirect);
+                    ((IManagerSubConcrete)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -1037,13 +889,13 @@ IManagerSub
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).GetBorderElements();
+                    _ret_var = ((IManagerSubConcrete)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -1073,14 +925,14 @@ IManagerSub
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((IManagerSubConcrete)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -1110,13 +962,13 @@ IManagerSub
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).GetRoot();
+                    _ret_var = ((IManagerSubConcrete)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -1146,13 +998,13 @@ IManagerSub
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).SetRoot(root);
+                    _ret_var = ((IManagerSubConcrete)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -1182,13 +1034,13 @@ IManagerSub
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).Move(direction);
+                    _ret_var = ((IManagerSubConcrete)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -1218,13 +1070,13 @@ IManagerSub
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((IManagerSubConcrete)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -1254,13 +1106,13 @@ IManagerSub
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).RequestSubchild(root);
+                    _ret_var = ((IManagerSubConcrete)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -1290,13 +1142,13 @@ IManagerSub
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).Fetch(child);
+                    _ret_var = ((IManagerSubConcrete)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -1326,13 +1178,13 @@ IManagerSub
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((IManagerSubConcrete)wrapper).LogicalEnd();
+                    _ret_var = ((IManagerSubConcrete)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -1362,13 +1214,13 @@ IManagerSub
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IManagerSubConcrete)wrapper).ResetHistory();
+                    ((IManagerSubConcrete)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -1397,13 +1249,13 @@ IManagerSub
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IManagerSubConcrete)wrapper).PopHistoryStack();
+                    ((IManagerSubConcrete)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -1432,13 +1284,13 @@ IManagerSub
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IManagerSubConcrete)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((IManagerSubConcrete)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -1467,13 +1319,13 @@ IManagerSub
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IManagerSubConcrete)wrapper).FreezeDirtyLogic();
+                    ((IManagerSubConcrete)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -1502,13 +1354,13 @@ IManagerSub
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IManagerSubConcrete)wrapper).DirtyLogicUnfreeze();
+                    ((IManagerSubConcrete)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -1526,7 +1378,7 @@ IManagerSub
 
         private static efl_ui_focus_manager_dirty_logic_unfreeze_delegate efl_ui_focus_manager_dirty_logic_unfreeze_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index b553ebc..d7d0236 100644 (file)
@@ -22,13 +22,13 @@ public interface IManagerWindowRoot :
 /// <summary>A interface to indicate the end of a focus chain.
 /// Focusmanagers are ensuring that if they give focus to something, that they are registered in the upper focus manager. The most upper focus manager does not need to do that, and can implement this interface to indicate that.
 /// (Since EFL 1.22)</summary>
-sealed public class IManagerWindowRootConcrete : 
-
-IManagerWindowRoot
+sealed public class IManagerWindowRootConcrete :
+    Efl.Eo.EoWrapper
+    , IManagerWindowRoot
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -43,86 +43,12 @@ IManagerWindowRoot
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_focus_manager_window_root_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IManagerWindowRoot"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IManagerWindowRootConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IManagerWindowRootConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IManagerWindowRootConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     private static IntPtr GetEflClassStatic()
@@ -147,9 +73,9 @@ IManagerWindowRoot
             return Efl.Ui.Focus.IManagerWindowRootConcrete.efl_ui_focus_manager_window_root_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index d8790ff..5da8c13 100644 (file)
@@ -72,33 +72,33 @@ bool UpdateOnFocus();
     /// (Since EFL 1.22)</summary>
     event EventHandler<Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args> FocusGeometryChangedEvt;
     /// <summary>The geometry (that is, the bounding rectangle) used to calculate the relationship with other objects.
-/// (Since EFL 1.22)</summary>
-/// <value>The geometry to use.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The geometry to use.</value>
     Eina.Rect FocusGeometry {
         get ;
     }
     /// <summary>Returns whether the widget is currently focused or not.
-/// (Since EFL 1.22)</summary>
-/// <value>The focused state of the object.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The focused state of the object.</value>
     bool Focus {
         get ;
         set ;
     }
     /// <summary>This is the focus manager where this focus object is registered in. The element which is the <c>root</c> of a Efl.Ui.Focus.Manager will not have this focus manager as this object, but rather the second focus manager where it is registered in.
-/// (Since EFL 1.22)</summary>
-/// <value>The manager object</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The manager object</value>
     Efl.Ui.Focus.IManager FocusManager {
         get ;
     }
     /// <summary>Describes which logical parent is used by this object.
-/// (Since EFL 1.22)</summary>
-/// <value>The focus parent.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The focus parent.</value>
     Efl.Ui.Focus.IObject FocusParent {
         get ;
     }
     /// <summary>Indicates if a child of this object has focus set to true.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if a child has focus.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if a child has focus.</value>
     bool ChildFocus {
         get ;
         set ;
@@ -131,13 +131,13 @@ public class IObjectFocusGeometryChangedEvt_Args : EventArgs {
 }
 /// <summary>Functions of focusable objects.
 /// (Since EFL 1.22)</summary>
-sealed public class IObjectConcrete : 
-
-IObject
+sealed public class IObjectConcrete :
+    Efl.Eo.EoWrapper
+    , IObject
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -152,155 +152,12 @@ IObject
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_focus_object_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IObject"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IObjectConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IObjectConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IObjectConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Emitted if the focus state has changed.
@@ -311,14 +168,13 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IObjectFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -374,13 +230,12 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args();
+                        Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -430,13 +285,12 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args();
+                        Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -486,14 +340,13 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -549,13 +402,12 @@ IObject
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args();
+                        Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -681,33 +533,33 @@ IObject
         return _ret_var;
  }
     /// <summary>The geometry (that is, the bounding rectangle) used to calculate the relationship with other objects.
-/// (Since EFL 1.22)</summary>
-/// <value>The geometry to use.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The geometry to use.</value>
     public Eina.Rect FocusGeometry {
         get { return GetFocusGeometry(); }
     }
     /// <summary>Returns whether the widget is currently focused or not.
-/// (Since EFL 1.22)</summary>
-/// <value>The focused state of the object.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The focused state of the object.</value>
     public bool Focus {
         get { return GetFocus(); }
         set { SetFocus(value); }
     }
     /// <summary>This is the focus manager where this focus object is registered in. The element which is the <c>root</c> of a Efl.Ui.Focus.Manager will not have this focus manager as this object, but rather the second focus manager where it is registered in.
-/// (Since EFL 1.22)</summary>
-/// <value>The manager object</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The manager object</value>
     public Efl.Ui.Focus.IManager FocusManager {
         get { return GetFocusManager(); }
     }
     /// <summary>Describes which logical parent is used by this object.
-/// (Since EFL 1.22)</summary>
-/// <value>The focus parent.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The focus parent.</value>
     public Efl.Ui.Focus.IObject FocusParent {
         get { return GetFocusParent(); }
     }
     /// <summary>Indicates if a child of this object has focus set to true.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if a child has focus.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if a child has focus.</value>
     public bool ChildFocus {
         get { return GetChildFocus(); }
         set { SetChildFocus(value); }
@@ -837,7 +689,7 @@ IObject
             return Efl.Ui.Focus.IObjectConcrete.efl_ui_focus_object_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Rect.NativeStruct efl_ui_focus_object_focus_geometry_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -850,13 +702,13 @@ IObject
         private static Eina.Rect.NativeStruct focus_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetFocusGeometry();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetFocusGeometry();
                 }
                 catch (Exception e)
                 {
@@ -886,13 +738,13 @@ IObject
         private static bool focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetFocus();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetFocus();
                 }
                 catch (Exception e)
                 {
@@ -922,13 +774,13 @@ IObject
         private static void focus_set(System.IntPtr obj, System.IntPtr pd, bool focus)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetFocus(focus);
+                    ((IObjectConcrete)ws.Target).SetFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -957,13 +809,13 @@ IObject
         private static Efl.Ui.Focus.IManager focus_manager_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_manager_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetFocusManager();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetFocusManager();
                 }
                 catch (Exception e)
                 {
@@ -993,13 +845,13 @@ IObject
         private static Efl.Ui.Focus.IObject focus_parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetFocusParent();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetFocusParent();
                 }
                 catch (Exception e)
                 {
@@ -1029,13 +881,13 @@ IObject
         private static bool child_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_child_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).GetChildFocus();
+                    _ret_var = ((IObjectConcrete)ws.Target).GetChildFocus();
                 }
                 catch (Exception e)
                 {
@@ -1065,13 +917,13 @@ IObject
         private static void child_focus_set(System.IntPtr obj, System.IntPtr pd, bool child_focus)
         {
             Eina.Log.Debug("function efl_ui_focus_object_child_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetChildFocus(child_focus);
+                    ((IObjectConcrete)ws.Target).SetChildFocus(child_focus);
                 }
                 catch (Exception e)
                 {
@@ -1100,13 +952,13 @@ IObject
         private static void setup_order(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_setup_order was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetupOrder();
+                    ((IObjectConcrete)ws.Target).SetupOrder();
                 }
                 catch (Exception e)
                 {
@@ -1135,13 +987,13 @@ IObject
         private static void setup_order_non_recursive(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_setup_order_non_recursive was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IObjectConcrete)wrapper).SetupOrderNonRecursive();
+                    ((IObjectConcrete)ws.Target).SetupOrderNonRecursive();
                 }
                 catch (Exception e)
                 {
@@ -1170,13 +1022,13 @@ IObject
         private static bool on_focus_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_on_focus_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IObjectConcrete)wrapper).UpdateOnFocus();
+                    _ret_var = ((IObjectConcrete)ws.Target).UpdateOnFocus();
                 }
                 catch (Exception e)
                 {
@@ -1195,7 +1047,7 @@ IObject
 
         private static efl_ui_focus_object_on_focus_update_delegate efl_ui_focus_object_on_focus_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index d559aa5..dbd6abf 100644 (file)
@@ -13,7 +13,7 @@ namespace Focus {
 
 /// <summary>EFL UI Focus Util class</summary>
 [Efl.Ui.Focus.Util.NativeMethods]
-public class Util : Efl.Object, Efl.Eo.IWrapper
+public class Util : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -46,7 +46,7 @@ public class Util : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Util(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Util"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -57,33 +57,6 @@ public class Util : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Focus helper method</summary>
     /// <param name="focus_elem">Focus element</param>
     public static void Focus(Efl.Ui.Focus.IObject focus_elem) {
@@ -125,7 +98,7 @@ public class Util : Efl.Object, Efl.Eo.IWrapper
             return Efl.Ui.Focus.Util.efl_ui_focus_util_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_focus_util_focus_delegate([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Focus.IObject focus_elem);
@@ -138,8 +111,8 @@ public class Util : Efl.Object, Efl.Eo.IWrapper
         private static void focus(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus_elem)
         {
             Eina.Log.Debug("function efl_ui_focus_util_focus was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
@@ -171,8 +144,8 @@ public class Util : Efl.Object, Efl.Eo.IWrapper
         private static Efl.Ui.Focus.IManager active_manager(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager manager)
         {
             Eina.Log.Debug("function efl_ui_focus_util_active_manager was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
@@ -205,8 +178,8 @@ public class Util : Efl.Object, Efl.Eo.IWrapper
         private static Efl.Ui.Focus.Direction direction_complement(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction dir)
         {
             Eina.Log.Debug("function efl_ui_focus_util_direction_complement was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Direction _ret_var = default(Efl.Ui.Focus.Direction);
                 try
@@ -228,7 +201,7 @@ public class Util : Efl.Object, Efl.Eo.IWrapper
             }
         }
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index beec625..aad9ca9 100644 (file)
@@ -104,28 +104,28 @@ System.String GetFormatString();
 /// <param name="units">The format string for <c>obj</c>&apos;s units label.</param>
 void SetFormatString(System.String units);
                 /// <summary>Set the format function pointer to format the string.</summary>
-/// <value>The format function callback</value>
+    /// <value>The format function callback</value>
     Efl.Ui.FormatFuncCb FormatCb {
         set ;
     }
     /// <summary>Control the format string for a given units label
-/// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
-/// 
-/// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
-/// <value>The format string for <c>obj</c>&apos;s units label.</value>
+    /// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
+    /// 
+    /// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
+    /// <value>The format string for <c>obj</c>&apos;s units label.</value>
     System.String FormatString {
         get ;
         set ;
     }
 }
 /// <summary>interface class for format_func</summary>
-sealed public class IFormatConcrete : 
-
-IFormat
+sealed public class IFormatConcrete :
+    Efl.Eo.EoWrapper
+    , IFormat
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -140,86 +140,12 @@ IFormat
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_format_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IFormat"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IFormatConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IFormatConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IFormatConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Set the format function pointer to format the string.</summary>
@@ -249,15 +175,15 @@ IFormat
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Set the format function pointer to format the string.</summary>
-/// <value>The format function callback</value>
+    /// <value>The format function callback</value>
     public Efl.Ui.FormatFuncCb FormatCb {
         set { SetFormatCb(value); }
     }
     /// <summary>Control the format string for a given units label
-/// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
-/// 
-/// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
-/// <value>The format string for <c>obj</c>&apos;s units label.</value>
+    /// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
+    /// 
+    /// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
+    /// <value>The format string for <c>obj</c>&apos;s units label.</value>
     public System.String FormatString {
         get { return GetFormatString(); }
         set { SetFormatString(value); }
@@ -317,7 +243,7 @@ IFormat
             return Efl.Ui.IFormatConcrete.efl_ui_format_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_format_cb_set_delegate(System.IntPtr obj, System.IntPtr pd,  IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb);
@@ -330,14 +256,14 @@ IFormat
         private static void format_cb_set(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_ui_format_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                             Efl.Ui.FormatFuncCbWrapper func_wrapper = new Efl.Ui.FormatFuncCbWrapper(func, func_data, func_free_cb);
             
                 try
                 {
-                    ((IFormatConcrete)wrapper).SetFormatCb(func_wrapper.ManagedCb);
+                    ((IFormatConcrete)ws.Target).SetFormatCb(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -366,13 +292,13 @@ IFormat
         private static System.String format_string_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_format_string_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IFormatConcrete)wrapper).GetFormatString();
+                    _ret_var = ((IFormatConcrete)ws.Target).GetFormatString();
                 }
                 catch (Exception e)
                 {
@@ -402,13 +328,13 @@ IFormat
         private static void format_string_set(System.IntPtr obj, System.IntPtr pd, System.String units)
         {
             Eina.Log.Debug("function efl_ui_format_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IFormatConcrete)wrapper).SetFormatString(units);
+                    ((IFormatConcrete)ws.Target).SetFormatString(units);
                 }
                 catch (Exception e)
                 {
@@ -426,7 +352,7 @@ IFormat
 
         private static efl_ui_format_string_set_delegate efl_ui_format_string_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3cebc09..92ee438 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Frame widget
 /// The Frame widget allows for collapsing and expanding the content widget by clicking on the frame label. the label and content can be set using text_set and content_set api.</summary>
 [Efl.Ui.Frame.NativeMethods]
-public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,Efl.ITextMarkup,Efl.Ui.IClickable
+public class Frame : Efl.Ui.LayoutBase, Efl.IContent, Efl.IText, Efl.ITextMarkup, Efl.Ui.IClickable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Frame(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Frame"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -97,13 +70,12 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -145,20 +117,20 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
+    /// <summary>Called when object is in sequence pressed and unpressed, by the primary button</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedEvt_Args> ClickedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedEvt_Args args = new Efl.Ui.IClickableClickedEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -172,7 +144,7 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
                 };
 
                 string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -181,90 +153,46 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
     ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
+    public void OnClickedEvt(Efl.Ui.IClickableClickedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
+    /// <summary>Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedAnyEvt_Args> ClickedAnyEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedAnyEvt_Args args = new Efl.Ui.IClickableClickedAnyEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -277,8 +205,8 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
                     }
                 };
 
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -286,94 +214,47 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         {
             lock (eventLock)
             {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
+    ///<summary>Method to raise event ClickedAnyEvt.</summary>
+    public void OnClickedAnyEvt(Efl.Ui.IClickableClickedAnyEvt_Args e)
     {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        var key = "_EFL_UI_EVENT_CLICKED_ANY";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Called when the object is pressed</summary>
+    /// <summary>Called when the object is pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -387,7 +268,7 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
                 };
 
                 string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -396,7 +277,7 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -404,31 +285,37 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
     public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object is no longer pressed</summary>
+    /// <summary>Called when the object is no longer pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -442,7 +329,7 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
                 };
 
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -451,7 +338,7 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -459,31 +346,37 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
     public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object receives a long press</summary>
+    /// <summary>Called when the object receives a long press, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -497,7 +390,7 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
                 };
 
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -506,7 +399,7 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -514,68 +407,22 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
     public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
     /// <summary>Determine the collapse state of a frame Use this to determine the collapse state of a frame.</summary>
     /// <returns><c>true</c> to collapse, <c>false</c> to expand.</returns>
@@ -669,29 +516,49 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
                                  Efl.ITextMarkupConcrete.NativeMethods.efl_text_markup_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),markup);
         Eina.Error.RaiseIfUnhandledException();
                          }
+    /// <summary>Change internal states that a button got pressed.
+    /// When the button is already pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Press(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_press_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Change internal states that a button got unpressed.
+    /// When the button is not pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Unpress(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_unpress_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>This aborts the internal state after a press call.
+    /// This will stop the timer for longpress. And set the state of the clickable mixin back into the unpressed state.</summary>
+    virtual public void ResetButtonState(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_button_state_reset_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>Determine the collapse state of a frame Use this to determine the collapse state of a frame.</summary>
-/// <value><c>true</c> to collapse, <c>false</c> to expand.</value>
+    /// <value><c>true</c> to collapse, <c>false</c> to expand.</value>
     public bool Collapse {
         get { return GetCollapse(); }
         set { SetCollapse(value); }
     }
     /// <summary>Determine autocollapsing of a frame
-/// When this returns <c>true</c>, clicking a frame&apos;s label will collapse the frame vertically, shrinking it to the height of the label. By default, this is DISABLED.</summary>
-/// <value>Whether to enable autocollapse.</value>
+    /// When this returns <c>true</c>, clicking a frame&apos;s label will collapse the frame vertically, shrinking it to the height of the label. By default, this is DISABLED.</summary>
+    /// <value>Whether to enable autocollapse.</value>
     public bool Autocollapse {
         get { return GetAutocollapse(); }
         set { SetAutocollapse(value); }
     }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>Markup property</summary>
-/// <value>The markup-text representation set to this text.</value>
+    /// <value>The markup-text representation set to this text.</value>
     public System.String Markup {
         get { return GetMarkup(); }
         set { SetMarkup(value); }
@@ -832,6 +699,36 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_markup_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_markup_set_static_delegate) });
             }
 
+            if (efl_ui_clickable_press_static_delegate == null)
+            {
+                efl_ui_clickable_press_static_delegate = new efl_ui_clickable_press_delegate(press);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Press") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_press"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_press_static_delegate) });
+            }
+
+            if (efl_ui_clickable_unpress_static_delegate == null)
+            {
+                efl_ui_clickable_unpress_static_delegate = new efl_ui_clickable_unpress_delegate(unpress);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Unpress") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_unpress"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_unpress_static_delegate) });
+            }
+
+            if (efl_ui_clickable_button_state_reset_static_delegate == null)
+            {
+                efl_ui_clickable_button_state_reset_static_delegate = new efl_ui_clickable_button_state_reset_delegate(button_state_reset);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "ResetButtonState") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_button_state_reset"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_button_state_reset_static_delegate) });
+            }
+
             descs.AddRange(base.GetEoOps(type));
             return descs;
         }
@@ -842,7 +739,7 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
             return Efl.Ui.Frame.efl_ui_frame_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_frame_collapse_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -855,13 +752,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static bool collapse_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_frame_collapse_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Frame)wrapper).GetCollapse();
+                    _ret_var = ((Frame)ws.Target).GetCollapse();
                 }
                 catch (Exception e)
                 {
@@ -891,13 +788,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static void collapse_set(System.IntPtr obj, System.IntPtr pd, bool collapse)
         {
             Eina.Log.Debug("function efl_ui_frame_collapse_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Frame)wrapper).SetCollapse(collapse);
+                    ((Frame)ws.Target).SetCollapse(collapse);
                 }
                 catch (Exception e)
                 {
@@ -926,13 +823,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static bool autocollapse_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_frame_autocollapse_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Frame)wrapper).GetAutocollapse();
+                    _ret_var = ((Frame)ws.Target).GetAutocollapse();
                 }
                 catch (Exception e)
                 {
@@ -962,13 +859,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static void autocollapse_set(System.IntPtr obj, System.IntPtr pd, bool autocollapse)
         {
             Eina.Log.Debug("function efl_ui_frame_autocollapse_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Frame)wrapper).SetAutocollapse(autocollapse);
+                    ((Frame)ws.Target).SetAutocollapse(autocollapse);
                 }
                 catch (Exception e)
                 {
@@ -997,13 +894,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static void collapse_go(System.IntPtr obj, System.IntPtr pd, bool collapse)
         {
             Eina.Log.Debug("function efl_ui_frame_collapse_go was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Frame)wrapper).CollapseGo(collapse);
+                    ((Frame)ws.Target).CollapseGo(collapse);
                 }
                 catch (Exception e)
                 {
@@ -1032,13 +929,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Frame)wrapper).GetContent();
+                    _ret_var = ((Frame)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -1068,13 +965,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Frame)wrapper).SetContent(content);
+                    _ret_var = ((Frame)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -1104,13 +1001,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Frame)wrapper).UnsetContent();
+                    _ret_var = ((Frame)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -1140,13 +1037,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Frame)wrapper).GetText();
+                    _ret_var = ((Frame)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -1176,13 +1073,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Frame)wrapper).SetText(text);
+                    ((Frame)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -1211,13 +1108,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_markup_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Frame)wrapper).GetMarkup();
+                    _ret_var = ((Frame)ws.Target).GetMarkup();
                 }
                 catch (Exception e)
                 {
@@ -1247,13 +1144,13 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
         private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Frame)wrapper).SetMarkup(markup);
+                    ((Frame)ws.Target).SetMarkup(markup);
                 }
                 catch (Exception e)
                 {
@@ -1271,7 +1168,112 @@ public class Frame : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,E
 
         private static efl_text_markup_set_delegate efl_text_markup_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        
+        private delegate void efl_ui_clickable_press_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_press_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate> efl_ui_clickable_press_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate>(Module, "efl_ui_clickable_press");
+
+        private static void press(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_press was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Frame)ws.Target).Press(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_press_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_press_delegate efl_ui_clickable_press_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_unpress_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_unpress_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate> efl_ui_clickable_unpress_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate>(Module, "efl_ui_clickable_unpress");
+
+        private static void unpress(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_unpress was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Frame)ws.Target).Unpress(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_unpress_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_unpress_delegate efl_ui_clickable_unpress_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_button_state_reset_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_button_state_reset_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate> efl_ui_clickable_button_state_reset_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate>(Module, "efl_ui_clickable_button_state_reset");
+
+        private static void button_state_reset(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_button_state_reset was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Frame)ws.Target).ResetButtonState(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_button_state_reset_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_button_state_reset_delegate efl_ui_clickable_button_state_reset_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e8e2215..1a54541 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Simple grid widget with Pack interface.</summary>
 [Efl.Ui.Grid.NativeMethods]
-public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout,Efl.IPackLinear,Efl.Ui.IClickable,Efl.Ui.IDirection,Efl.Ui.IMultiSelectable,Efl.Ui.IScrollable,Efl.Ui.IScrollableInteractive,Efl.Ui.IScrollbar,Efl.Ui.ISelectable
+public class Grid : Efl.Ui.LayoutBase, Efl.IPack, Efl.IPackLayout, Efl.IPackLinear, Efl.Gfx.IArrangement, Efl.Ui.ILayoutOrientable, Efl.Ui.IMultiSelectable, Efl.Ui.IScrollable, Efl.Ui.IScrollableInteractive, Efl.Ui.IScrollbar, Efl.Ui.ISelectable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Grid(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Grid"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the layout was updated.</summary>
     public event EventHandler LayoutUpdatedEvt
     {
@@ -95,10 +68,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -141,438 +113,6 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is pressed</summary>
-    public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event PressedEvt.</summary>
-    public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is no longer pressed</summary>
-    public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event UnpressedEvt.</summary>
-    public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives a long press</summary>
-    public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event LongpressedEvt.</summary>
-    public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
     /// <summary>Called when scroll operation starts</summary>
     public event EventHandler ScrollStartEvt
     {
@@ -580,10 +120,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -633,10 +172,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -686,10 +224,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -739,10 +276,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -792,10 +328,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -845,10 +380,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -898,10 +432,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -951,10 +484,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1004,10 +536,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1057,10 +588,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1110,10 +640,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1163,10 +692,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1216,10 +744,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1269,10 +796,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1322,10 +848,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1375,13 +900,12 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
+                        Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1437,13 +961,12 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
+                        Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1499,13 +1022,12 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
+                        Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1561,10 +1083,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1614,10 +1135,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1667,13 +1187,12 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
+                        Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1729,13 +1248,12 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
+                        Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1791,13 +1309,12 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
+                        Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1846,13 +1363,12 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
+                        Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1901,10 +1417,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1954,10 +1469,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2007,10 +1521,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2060,10 +1573,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2113,10 +1625,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2166,10 +1677,9 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2255,64 +1765,34 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Ui.GridItem>(_ret_var, true, false);
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
@@ -2337,97 +1817,125 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, 0).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the beginning.</param>
+    /// <param name="subobj">Object to pack at the beginning.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBegin(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_begin_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Append item at the end of this container.
+    /// <summary>Append object at the end of this container.
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, -1).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the end.</param>
+    /// <param name="subobj">Object to pack at the end.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackEnd(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_end_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Prepend item before other sub object.
+    /// <summary>Prepend an object before an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack before <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack before <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBefore(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_before_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Append item after other sub object.
+    /// <summary>Append an object after an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack after <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack after <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAfter(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_after_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Inserts <c>subobj</c> BEFORE the item at position <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Inserts <c>subobj</c> BEFORE the sub-object at position <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
     /// If <c>index</c> is less than -<c>count</c>, it will trigger <see cref="Efl.IPackLinear.PackBegin"/>(<c>subobj</c>) whereas <c>index</c> greater than <c>count</c>-1 will trigger <see cref="Efl.IPackLinear.PackEnd"/>(<c>subobj</c>).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack.</param>
-    /// <param name="index">Index of item to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <param name="subobj">Object to pack.</param>
+    /// <param name="index">Index of existing sub-object to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAt(Efl.Gfx.IEntity subobj, int index) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Content at a given <c>index</c> in this container.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Sub-object at a given <c>index</c> in this container.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will return the first item whereas <c>index</c> greater than <c>count</c>-1 will return the last item.</summary>
-    /// <param name="index">Index of the item to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The object contained at the given <c>index</c>.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will return the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will return the last sub-object.</summary>
+    /// <param name="index">Index of the existing sub-object to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object contained at the given <c>index</c>.</returns>
     virtual public Efl.Gfx.IEntity GetPackContent(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Get the index of a child in this container.</summary>
-    /// <param name="subobj">An object contained in this pack.</param>
-    /// <returns>-1 in case <c>subobj</c> is not a child of this object, or the index of this item in the range 0 to (<c>count</c>-1).</returns>
+    /// <summary>Get the index of a sub-object in this container.</summary>
+    /// <param name="subobj">An existing sub-object in this container.</param>
+    /// <returns>-1 in case <c>subobj</c> is not found, or the index of <c>subobj</c> in the range 0 to (<c>count</c>-1).</returns>
     virtual public int GetPackIndex(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_index_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Pop out (remove) the item at the specified <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
-    /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will remove the first item whereas <c>index</c> greater than <c>count</c>-1 will remove the last item.
+    /// <summary>Pop out (remove) the sub-object at the specified <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// Equivalent to <see cref="Efl.IPack.Unpack"/>(<see cref="Efl.IPackLinear.GetPackContent"/>(<c>index</c>)).</summary>
-    /// <param name="index">Index of item to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The child item if it could be removed.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will remove the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will remove the last sub-object.</summary>
+    /// <param name="index">Index of the sub-object to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object if it could be removed.</returns>
     virtual public Efl.Gfx.IEntity PackUnpackAt(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_unpack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
+                        return _ret_var;
+ }
+    /// <summary>Alignment of the container within its bounds</summary>
+    /// <param name="align_horiz">Horizontal alignment</param>
+    /// <param name="align_vert">Vertical alignment</param>
+    virtual public void GetContentAlign(out double align_horiz, out double align_vert) {
+                                                         Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Alignment of the container within its bounds</summary>
+    /// <param name="align_horiz">Horizontal alignment</param>
+    /// <param name="align_vert">Vertical alignment</param>
+    virtual public void SetContentAlign(double align_horiz, double align_vert) {
+                                                         Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Padding between items contained in this object.</summary>
+    /// <param name="pad_horiz">Horizontal padding</param>
+    /// <param name="pad_vert">Vertical padding</param>
+    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+    virtual public void GetContentPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
+                                                                                 Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Padding between items contained in this object.</summary>
+    /// <param name="pad_horiz">Horizontal padding</param>
+    /// <param name="pad_vert">Vertical padding</param>
+    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+    virtual public void SetContentPadding(double pad_horiz, double pad_vert, bool scalable) {
+                                                                                 Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
     /// <summary>Control the direction of a given widget.
     /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <returns>Direction of the widget.</returns>
-    virtual public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+    virtual public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
@@ -2436,8 +1944,8 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <param name="dir">Direction of the widget.</param>
-    virtual public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+    virtual public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>The mode type for children selection.</summary>
@@ -2655,69 +2163,69 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Property data of item size.</summary>
-/// <value>last selected item of grid.</value>
+    /// <value>last selected item of grid.</value>
     public Eina.Size2D ItemSize {
         get { return GetItemSize(); }
         set { SetItemSize(value); }
     }
     /// <summary>Property data of last selected item.</summary>
-/// <value>last selected item of grid.</value>
+    /// <value>last selected item of grid.</value>
     public Efl.Ui.GridItem LastSelectedItem {
         get { return GetLastSelectedItem(); }
     }
     /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
     }
     /// <summary>The mode type for children selection.</summary>
-/// <value>Type of selection of children</value>
+    /// <value>Type of selection of children</value>
     public Efl.Ui.SelectMode SelectMode {
         get { return GetSelectMode(); }
         set { SetSelectMode(value); }
     }
     /// <summary>The content position</summary>
-/// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
+    /// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
     public Eina.Position2D ContentPos {
         get { return GetContentPos(); }
         set { SetContentPos(value); }
     }
     /// <summary>The content size</summary>
-/// <value>The content size in pixels.</value>
+    /// <value>The content size in pixels.</value>
     public Eina.Size2D ContentSize {
         get { return GetContentSize(); }
     }
     /// <summary>The viewport geometry</summary>
-/// <value>It is absolute geometry.</value>
+    /// <value>It is absolute geometry.</value>
     public Eina.Rect ViewportGeometry {
         get { return GetViewportGeometry(); }
     }
     /// <summary>Freeze property This function will freeze scrolling movement (by input of a user). Unlike efl_ui_scrollable_movement_block_set, this function freezes bidirectionally. If you want to freeze in only one direction, See <see cref="Efl.Ui.IScrollableInteractive.SetMovementBlock"/>.</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     public bool ScrollFreeze {
         get { return GetScrollFreeze(); }
         set { SetScrollFreeze(value); }
     }
     /// <summary>Hold property When hold turns on, it only scrolls by holding action.</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     public bool ScrollHold {
         get { return GetScrollHold(); }
         set { SetScrollHold(value); }
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
+    /// <value>Which axis (or axes) to block</value>
     public Efl.Ui.ScrollBlock MovementBlock {
         get { return GetMovementBlock(); }
         set { SetMovementBlock(value); }
     }
     /// <summary>Control the step size
-/// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
-/// <value>The step size in pixels</value>
+    /// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
+    /// <value>The step size in pixels</value>
     public Eina.Position2D StepSize {
         get { return GetStepSize(); }
         set { SetStepSize(value); }
@@ -2798,46 +2306,6 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_grid_selected_items_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_grid_selected_items_get_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -2978,24 +2446,64 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack_at"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_at_static_delegate) });
             }
 
-            if (efl_ui_direction_get_static_delegate == null)
+            if (efl_gfx_arrangement_content_align_get_static_delegate == null)
             {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
+                efl_gfx_arrangement_content_align_get_static_delegate = new efl_gfx_arrangement_content_align_get_delegate(content_align_get);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "GetContentAlign") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_align_get_static_delegate) });
             }
 
-            if (efl_ui_direction_set_static_delegate == null)
+            if (efl_gfx_arrangement_content_align_set_static_delegate == null)
             {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
+                efl_gfx_arrangement_content_align_set_static_delegate = new efl_gfx_arrangement_content_align_set_delegate(content_align_set);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "SetContentAlign") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_align_set_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_padding_get_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_padding_get_static_delegate = new efl_gfx_arrangement_content_padding_get_delegate(content_padding_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetContentPadding") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_padding_get_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_padding_set_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_padding_set_static_delegate = new efl_gfx_arrangement_content_padding_set_delegate(content_padding_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetContentPadding") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_padding_set_static_delegate) });
+            }
+
+            if (efl_ui_layout_orientation_get_static_delegate == null)
+            {
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
+            }
+
+            if (efl_ui_layout_orientation_set_static_delegate == null)
+            {
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
             }
 
             if (efl_ui_select_mode_get_static_delegate == null)
@@ -3288,7 +2796,7 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
             return Efl.Ui.Grid.efl_ui_grid_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Size2D.NativeStruct efl_ui_grid_item_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -3301,13 +2809,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Eina.Size2D.NativeStruct item_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_grid_item_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetItemSize();
+                    _ret_var = ((Grid)ws.Target).GetItemSize();
                 }
                 catch (Exception e)
                 {
@@ -3337,14 +2845,14 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void item_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_ui_grid_item_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((Grid)wrapper).SetItemSize(_in_size);
+                    ((Grid)ws.Target).SetItemSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -3373,13 +2881,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Efl.Ui.GridItem last_selected_item_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_grid_last_selected_item_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.GridItem _ret_var = default(Efl.Ui.GridItem);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetLastSelectedItem();
+                    _ret_var = ((Grid)ws.Target).GetLastSelectedItem();
                 }
                 catch (Exception e)
                 {
@@ -3409,13 +2917,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void item_scroll(System.IntPtr obj, System.IntPtr pd, Efl.Ui.GridItem item, bool animation)
         {
             Eina.Log.Debug("function efl_ui_grid_item_scroll was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Grid)wrapper).ItemScroll(item, animation);
+                    ((Grid)ws.Target).ItemScroll(item, animation);
                 }
                 catch (Exception e)
                 {
@@ -3444,13 +2952,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void item_scroll_align(System.IntPtr obj, System.IntPtr pd, Efl.Ui.GridItem item, double align, bool animation)
         {
             Eina.Log.Debug("function efl_ui_grid_item_scroll_align was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Grid)wrapper).ItemScrollAlign(item, align, animation);
+                    ((Grid)ws.Target).ItemScrollAlign(item, align, animation);
                 }
                 catch (Exception e)
                 {
@@ -3479,13 +2987,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static System.IntPtr selected_items_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_grid_selected_items_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.GridItem> _ret_var = default(Eina.Iterator<Efl.Ui.GridItem>);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetSelectedItems();
+                    _ret_var = ((Grid)ws.Target).GetSelectedItems();
                 }
                 catch (Exception e)
                 {
@@ -3504,146 +3012,6 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
 
         private static efl_ui_grid_selected_items_get_delegate efl_ui_grid_selected_items_get_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((Grid)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((Grid)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((Grid)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((Grid)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -3655,13 +3023,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).ClearPack();
+                    _ret_var = ((Grid)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -3691,13 +3059,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).UnpackAll();
+                    _ret_var = ((Grid)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -3727,13 +3095,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).Unpack(subobj);
+                    _ret_var = ((Grid)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -3763,13 +3131,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).Pack(subobj);
+                    _ret_var = ((Grid)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -3799,13 +3167,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void layout_request(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_request was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Grid)wrapper).LayoutRequest();
+                    ((Grid)ws.Target).LayoutRequest();
                 }
                 catch (Exception e)
                 {
@@ -3834,13 +3202,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void layout_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Grid)wrapper).UpdateLayout();
+                    ((Grid)ws.Target).UpdateLayout();
                 }
                 catch (Exception e)
                 {
@@ -3869,13 +3237,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_begin(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_begin was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).PackBegin(subobj);
+                    _ret_var = ((Grid)ws.Target).PackBegin(subobj);
                 }
                 catch (Exception e)
                 {
@@ -3905,13 +3273,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_end(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).PackEnd(subobj);
+                    _ret_var = ((Grid)ws.Target).PackEnd(subobj);
                 }
                 catch (Exception e)
                 {
@@ -3941,13 +3309,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_before(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_before was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).PackBefore(subobj, existing);
+                    _ret_var = ((Grid)ws.Target).PackBefore(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -3977,13 +3345,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_after(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_after was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).PackAfter(subobj, existing);
+                    _ret_var = ((Grid)ws.Target).PackAfter(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -4013,13 +3381,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_at(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
         {
             Eina.Log.Debug("function efl_pack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).PackAt(subobj, index);
+                    _ret_var = ((Grid)ws.Target).PackAt(subobj, index);
                 }
                 catch (Exception e)
                 {
@@ -4049,13 +3417,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Efl.Gfx.IEntity pack_content_get(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetPackContent(index);
+                    _ret_var = ((Grid)ws.Target).GetPackContent(index);
                 }
                 catch (Exception e)
                 {
@@ -4085,13 +3453,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static int pack_index_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetPackIndex(subobj);
+                    _ret_var = ((Grid)ws.Target).GetPackIndex(subobj);
                 }
                 catch (Exception e)
                 {
@@ -4121,13 +3489,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Efl.Gfx.IEntity pack_unpack_at(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_unpack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).PackUnpackAt(index);
+                    _ret_var = ((Grid)ws.Target).PackUnpackAt(index);
                 }
                 catch (Exception e)
                 {
@@ -4147,23 +3515,163 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static efl_pack_unpack_at_delegate efl_pack_unpack_at_static_delegate;
 
         
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate void efl_gfx_arrangement_content_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
+
+        
+        public delegate void efl_gfx_arrangement_content_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_get_api_delegate> efl_gfx_arrangement_content_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_get_api_delegate>(Module, "efl_gfx_arrangement_content_align_get");
+
+        private static void content_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_align_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        align_horiz = default(double);        align_vert = default(double);                            
+                try
+                {
+                    ((Grid)ws.Target).GetContentAlign(out align_horiz, out align_vert);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_align_get_delegate efl_gfx_arrangement_content_align_get_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
+
+        
+        public delegate void efl_gfx_arrangement_content_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_set_api_delegate> efl_gfx_arrangement_content_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_set_api_delegate>(Module, "efl_gfx_arrangement_content_align_set");
+
+        private static void content_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_align_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Grid)ws.Target).SetContentAlign(align_horiz, align_vert);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_align_set_delegate efl_gfx_arrangement_content_align_set_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
+
+        
+        public delegate void efl_gfx_arrangement_content_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_get_api_delegate> efl_gfx_arrangement_content_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_get_api_delegate>(Module, "efl_gfx_arrangement_content_padding_get");
+
+        private static void content_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_padding_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
+                try
+                {
+                    ((Grid)ws.Target).GetContentPadding(out pad_horiz, out pad_vert, out scalable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_padding_get_delegate efl_gfx_arrangement_content_padding_get_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
+
+        
+        public delegate void efl_gfx_arrangement_content_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_set_api_delegate> efl_gfx_arrangement_content_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_set_api_delegate>(Module, "efl_gfx_arrangement_content_padding_set");
+
+        private static void content_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_padding_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    
+                try
+                {
+                    ((Grid)ws.Target).SetContentPadding(pad_horiz, pad_vert, scalable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_padding_set_delegate efl_gfx_arrangement_content_padding_set_static_delegate;
+
+        
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
 
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetDirection();
+                    _ret_var = ((Grid)ws.Target).GetOrientation();
                 }
                 catch (Exception e)
                 {
@@ -4176,30 +3684,30 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
             }
             else
             {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
 
         
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
 
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Grid)wrapper).SetDirection(dir);
+                    ((Grid)ws.Target).SetOrientation(dir);
                 }
                 catch (Exception e)
                 {
@@ -4211,11 +3719,11 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
             }
             else
             {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
             }
         }
 
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
 
         
         private delegate Efl.Ui.SelectMode efl_ui_select_mode_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -4228,13 +3736,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Efl.Ui.SelectMode select_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_select_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.SelectMode _ret_var = default(Efl.Ui.SelectMode);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetSelectMode();
+                    _ret_var = ((Grid)ws.Target).GetSelectMode();
                 }
                 catch (Exception e)
                 {
@@ -4264,13 +3772,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void select_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectMode mode)
         {
             Eina.Log.Debug("function efl_ui_select_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Grid)wrapper).SetSelectMode(mode);
+                    ((Grid)ws.Target).SetSelectMode(mode);
                 }
                 catch (Exception e)
                 {
@@ -4299,13 +3807,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Eina.Position2D.NativeStruct content_pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetContentPos();
+                    _ret_var = ((Grid)ws.Target).GetContentPos();
                 }
                 catch (Exception e)
                 {
@@ -4335,14 +3843,14 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void content_pos_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((Grid)wrapper).SetContentPos(_in_pos);
+                    ((Grid)ws.Target).SetContentPos(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -4371,13 +3879,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Eina.Size2D.NativeStruct content_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetContentSize();
+                    _ret_var = ((Grid)ws.Target).GetContentSize();
                 }
                 catch (Exception e)
                 {
@@ -4407,13 +3915,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Eina.Rect.NativeStruct viewport_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_viewport_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetViewportGeometry();
+                    _ret_var = ((Grid)ws.Target).GetViewportGeometry();
                 }
                 catch (Exception e)
                 {
@@ -4443,13 +3951,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bounce_enabled_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((Grid)wrapper).GetBounceEnabled(out horiz, out vert);
+                    ((Grid)ws.Target).GetBounceEnabled(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -4478,13 +3986,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bounce_enabled_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Grid)wrapper).SetBounceEnabled(horiz, vert);
+                    ((Grid)ws.Target).SetBounceEnabled(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -4513,13 +4021,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool scroll_freeze_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetScrollFreeze();
+                    _ret_var = ((Grid)ws.Target).GetScrollFreeze();
                 }
                 catch (Exception e)
                 {
@@ -4549,13 +4057,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void scroll_freeze_set(System.IntPtr obj, System.IntPtr pd, bool freeze)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Grid)wrapper).SetScrollFreeze(freeze);
+                    ((Grid)ws.Target).SetScrollFreeze(freeze);
                 }
                 catch (Exception e)
                 {
@@ -4584,13 +4092,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool scroll_hold_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetScrollHold();
+                    _ret_var = ((Grid)ws.Target).GetScrollHold();
                 }
                 catch (Exception e)
                 {
@@ -4620,13 +4128,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void scroll_hold_set(System.IntPtr obj, System.IntPtr pd, bool hold)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Grid)wrapper).SetScrollHold(hold);
+                    ((Grid)ws.Target).SetScrollHold(hold);
                 }
                 catch (Exception e)
                 {
@@ -4655,13 +4163,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void looping_get(System.IntPtr obj, System.IntPtr pd, out bool loop_h, out bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         loop_h = default(bool);        loop_v = default(bool);                            
                 try
                 {
-                    ((Grid)wrapper).GetLooping(out loop_h, out loop_v);
+                    ((Grid)ws.Target).GetLooping(out loop_h, out loop_v);
                 }
                 catch (Exception e)
                 {
@@ -4690,13 +4198,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void looping_set(System.IntPtr obj, System.IntPtr pd, bool loop_h, bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Grid)wrapper).SetLooping(loop_h, loop_v);
+                    ((Grid)ws.Target).SetLooping(loop_h, loop_v);
                 }
                 catch (Exception e)
                 {
@@ -4725,13 +4233,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Efl.Ui.ScrollBlock movement_block_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ScrollBlock _ret_var = default(Efl.Ui.ScrollBlock);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetMovementBlock();
+                    _ret_var = ((Grid)ws.Target).GetMovementBlock();
                 }
                 catch (Exception e)
                 {
@@ -4761,13 +4269,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void movement_block_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollBlock block)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Grid)wrapper).SetMovementBlock(block);
+                    ((Grid)ws.Target).SetMovementBlock(block);
                 }
                 catch (Exception e)
                 {
@@ -4796,13 +4304,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void gravity_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Grid)wrapper).GetGravity(out x, out y);
+                    ((Grid)ws.Target).GetGravity(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -4831,13 +4339,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void gravity_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Grid)wrapper).SetGravity(x, y);
+                    ((Grid)ws.Target).SetGravity(x, y);
                 }
                 catch (Exception e)
                 {
@@ -4866,13 +4374,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void match_content_set(System.IntPtr obj, System.IntPtr pd, bool w, bool h)
         {
             Eina.Log.Debug("function efl_ui_scrollable_match_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Grid)wrapper).SetMatchContent(w, h);
+                    ((Grid)ws.Target).SetMatchContent(w, h);
                 }
                 catch (Exception e)
                 {
@@ -4901,13 +4409,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Eina.Position2D.NativeStruct step_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Grid)wrapper).GetStepSize();
+                    _ret_var = ((Grid)ws.Target).GetStepSize();
                 }
                 catch (Exception e)
                 {
@@ -4937,14 +4445,14 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void step_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct step)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_step = step;
                             
                 try
                 {
-                    ((Grid)wrapper).SetStepSize(_in_step);
+                    ((Grid)ws.Target).SetStepSize(_in_step);
                 }
                 catch (Exception e)
                 {
@@ -4973,14 +4481,14 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void scroll(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool animation)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                     
                 try
                 {
-                    ((Grid)wrapper).Scroll(_in_rect, animation);
+                    ((Grid)ws.Target).Scroll(_in_rect, animation);
                 }
                 catch (Exception e)
                 {
@@ -5009,13 +4517,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_mode_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.ScrollbarMode hbar, out Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         hbar = default(Efl.Ui.ScrollbarMode);        vbar = default(Efl.Ui.ScrollbarMode);                            
                 try
                 {
-                    ((Grid)wrapper).GetBarMode(out hbar, out vbar);
+                    ((Grid)ws.Target).GetBarMode(out hbar, out vbar);
                 }
                 catch (Exception e)
                 {
@@ -5044,13 +4552,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollbarMode hbar, Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Grid)wrapper).SetBarMode(hbar, vbar);
+                    ((Grid)ws.Target).SetBarMode(hbar, vbar);
                 }
                 catch (Exception e)
                 {
@@ -5079,13 +4587,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_size_get(System.IntPtr obj, System.IntPtr pd, out double width, out double height)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         width = default(double);        height = default(double);                            
                 try
                 {
-                    ((Grid)wrapper).GetBarSize(out width, out height);
+                    ((Grid)ws.Target).GetBarSize(out width, out height);
                 }
                 catch (Exception e)
                 {
@@ -5114,13 +4622,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_position_get(System.IntPtr obj, System.IntPtr pd, out double posx, out double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         posx = default(double);        posy = default(double);                            
                 try
                 {
-                    ((Grid)wrapper).GetBarPosition(out posx, out posy);
+                    ((Grid)ws.Target).GetBarPosition(out posx, out posy);
                 }
                 catch (Exception e)
                 {
@@ -5149,13 +4657,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_position_set(System.IntPtr obj, System.IntPtr pd, double posx, double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Grid)wrapper).SetBarPosition(posx, posy);
+                    ((Grid)ws.Target).SetBarPosition(posx, posy);
                 }
                 catch (Exception e)
                 {
@@ -5184,13 +4692,13 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_visibility_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_visibility_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Grid)wrapper).UpdateBarVisibility();
+                    ((Grid)ws.Target).UpdateBarVisibility();
                 }
                 catch (Exception e)
                 {
@@ -5208,7 +4716,7 @@ public class Grid : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
 
         private static efl_ui_scrollbar_bar_visibility_update_delegate efl_ui_scrollbar_bar_visibility_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3225a19..6607ee5 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Grid Default Item class. This class need to be sub object of list widget. Text and contents can be set using <see cref="Efl.IText"/>, <see cref="Efl.IContent"/> or <see cref="Efl.IPart"/>.</summary>
 [Efl.Ui.GridDefaultItem.NativeMethods]
-public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,Efl.ITextMarkup
+public class GridDefaultItem : Efl.Ui.GridItem, Efl.IContent, Efl.IText, Efl.ITextMarkup
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected GridDefaultItem(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="GridDefaultItem"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -96,13 +69,12 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -144,20 +116,28 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>No description supplied.</summary>
-    public Efl.Ui.GridDefaultItemPartEnd End
+    /// <summary>The extra content part for grid default item. extra part is the spare content of grid item. you can swallow small badge widget such as check, radio.</summary>
+    public Efl.Ui.ItemPartExtra EndPart
+    {
+        get
+        {
+            return GetPart("end") as Efl.Ui.ItemPartExtra;
+        }
+    }
+    /// <summary>The icon content part for grid default item. icon part is the main content of grid item.</summary>
+    public Efl.Ui.ItemPartIcon IconPart
     {
         get
         {
-            return GetPart("end") as Efl.Ui.GridDefaultItemPartEnd;
+            return GetPart("icon") as Efl.Ui.ItemPartIcon;
         }
     }
-    /// <summary>No description supplied.</summary>
-    public Efl.Ui.GridDefaultItemPartIcon Icon
+    /// <summary>The text part for grid default item. text part is the caption of grid item.</summary>
+    public Efl.Ui.ItemPartText TextPart
     {
         get
         {
-            return GetPart("icon") as Efl.Ui.GridDefaultItemPartIcon;
+            return GetPart("text") as Efl.Ui.ItemPartText;
         }
     }
     /// <summary>Sub-object currently set as this object&apos;s single content.
@@ -220,15 +200,15 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>Markup property</summary>
-/// <value>The markup-text representation set to this text.</value>
+    /// <value>The markup-text representation set to this text.</value>
     public System.String Markup {
         get { return GetMarkup(); }
         set { SetMarkup(value); }
@@ -329,7 +309,7 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
             return Efl.Ui.GridDefaultItem.efl_ui_grid_default_item_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -342,13 +322,13 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((GridDefaultItem)wrapper).GetContent();
+                    _ret_var = ((GridDefaultItem)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -378,13 +358,13 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((GridDefaultItem)wrapper).SetContent(content);
+                    _ret_var = ((GridDefaultItem)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -414,13 +394,13 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((GridDefaultItem)wrapper).UnsetContent();
+                    _ret_var = ((GridDefaultItem)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -450,13 +430,13 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((GridDefaultItem)wrapper).GetText();
+                    _ret_var = ((GridDefaultItem)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -486,13 +466,13 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((GridDefaultItem)wrapper).SetText(text);
+                    ((GridDefaultItem)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -521,13 +501,13 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_markup_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((GridDefaultItem)wrapper).GetMarkup();
+                    _ret_var = ((GridDefaultItem)ws.Target).GetMarkup();
                 }
                 catch (Exception e)
                 {
@@ -557,13 +537,13 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((GridDefaultItem)wrapper).SetMarkup(markup);
+                    ((GridDefaultItem)ws.Target).SetMarkup(markup);
                 }
                 catch (Exception e)
                 {
@@ -581,7 +561,7 @@ public class GridDefaultItem : Efl.Ui.GridItem, Efl.Eo.IWrapper,Efl.IContent,Efl
 
         private static efl_text_markup_set_delegate efl_text_markup_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_grid_default_item_part_icon.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_grid_default_item_part_icon.eo.cs
deleted file mode 100644 (file)
index 64d7a08..0000000
+++ /dev/null
@@ -1,349 +0,0 @@
-#pragma warning disable CS1591
-using System;
-using System.Runtime.InteropServices;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.ComponentModel;
-namespace Efl {
-
-namespace Ui {
-
-/// <summary>Grid Default Item internal content of icon part class</summary>
-[Efl.Ui.GridDefaultItemPartIcon.NativeMethods]
-public class GridDefaultItemPartIcon : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
-{
-    ///<summary>Pointer to the native class description.</summary>
-    public override System.IntPtr NativeClass
-    {
-        get
-        {
-            if (((object)this).GetType() == typeof(GridDefaultItemPartIcon))
-            {
-                return GetEflClassStatic();
-            }
-            else
-            {
-                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
-            }
-        }
-    }
-
-    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
-        efl_ui_grid_default_item_part_icon_class_get();
-    /// <summary>Initializes a new instance of the <see cref="GridDefaultItemPartIcon"/> class.</summary>
-    /// <param name="parent">Parent instance.</param>
-    public GridDefaultItemPartIcon(Efl.Object parent= null
-            ) : base(efl_ui_grid_default_item_part_icon_class_get(), typeof(GridDefaultItemPartIcon), parent)
-    {
-        FinishInstantiation();
-    }
-
-    /// <summary>Initializes a new instance of the <see cref="GridDefaultItemPartIcon"/> class.
-    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
-    /// <param name="raw">The native pointer to be wrapped.</param>
-    protected GridDefaultItemPartIcon(System.IntPtr raw) : base(raw)
-    {
-            }
-
-    /// <summary>Initializes a new instance of the <see cref="GridDefaultItemPartIcon"/> class.
-    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
-    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
-    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
-    /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected GridDefaultItemPartIcon(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
-    {
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Sent after the content is set or unset using the current content object.
-    /// (Since EFL 1.22)</summary>
-    public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_CONTENT_EVENT_CONTENT_CHANGED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_CONTENT_EVENT_CONTENT_CHANGED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ContentChangedEvt.</summary>
-    public void OnContentChangedEvt(Efl.IContentContentChangedEvt_Args e)
-    {
-        var key = "_EFL_CONTENT_EVENT_CONTENT_CHANGED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Sub-object currently set as this object&apos;s single content.
-    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-    /// (Since EFL 1.22)</summary>
-    /// <returns>The sub-object.</returns>
-    virtual public Efl.Gfx.IEntity GetContent() {
-         var _ret_var = Efl.IContentConcrete.NativeMethods.efl_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Sub-object currently set as this object&apos;s single content.
-    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-    /// (Since EFL 1.22)</summary>
-    /// <param name="content">The sub-object.</param>
-    /// <returns><c>true</c> if <c>content</c> was successfully swallowed.</returns>
-    virtual public bool SetContent(Efl.Gfx.IEntity content) {
-                                 var _ret_var = Efl.IContentConcrete.NativeMethods.efl_content_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),content);
-        Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
-    /// <summary>Remove the sub-object currently set as content of this object and return it. This object becomes empty.
-    /// (Since EFL 1.22)</summary>
-    /// <returns>Unswallowed object</returns>
-    virtual public Efl.Gfx.IEntity UnsetContent() {
-         var _ret_var = Efl.IContentConcrete.NativeMethods.efl_content_unset_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
-    public Efl.Gfx.IEntity Content {
-        get { return GetContent(); }
-        set { SetContent(value); }
-    }
-    private static IntPtr GetEflClassStatic()
-    {
-        return Efl.Ui.GridDefaultItemPartIcon.efl_ui_grid_default_item_part_icon_class_get();
-    }
-    /// <summary>Wrapper for native methods and virtual method delegates.
-    /// For internal use by generated code only.</summary>
-    public new class NativeMethods : Efl.Ui.LayoutPart.NativeMethods
-    {
-        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
-        /// <summary>Gets the list of Eo operations to override.</summary>
-        /// <returns>The list of Eo operations to be overload.</returns>
-        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
-        {
-            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
-            var methods = Efl.Eo.Globals.GetUserMethods(type);
-
-            if (efl_content_get_static_delegate == null)
-            {
-                efl_content_get_static_delegate = new efl_content_get_delegate(content_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetContent") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_get"), func = Marshal.GetFunctionPointerForDelegate(efl_content_get_static_delegate) });
-            }
-
-            if (efl_content_set_static_delegate == null)
-            {
-                efl_content_set_static_delegate = new efl_content_set_delegate(content_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetContent") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_set"), func = Marshal.GetFunctionPointerForDelegate(efl_content_set_static_delegate) });
-            }
-
-            if (efl_content_unset_static_delegate == null)
-            {
-                efl_content_unset_static_delegate = new efl_content_unset_delegate(content_unset);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "UnsetContent") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_unset"), func = Marshal.GetFunctionPointerForDelegate(efl_content_unset_static_delegate) });
-            }
-
-            descs.AddRange(base.GetEoOps(type));
-            return descs;
-        }
-        /// <summary>Returns the Eo class for the native methods of this class.</summary>
-        /// <returns>The native class pointer.</returns>
-        public override IntPtr GetEflClass()
-        {
-            return Efl.Ui.GridDefaultItemPartIcon.efl_ui_grid_default_item_part_icon_class_get();
-        }
-
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        public delegate Efl.Gfx.IEntity efl_content_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_content_get_api_delegate> efl_content_get_ptr = new Efl.Eo.FunctionWrapper<efl_content_get_api_delegate>(Module, "efl_content_get");
-
-        private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
-                try
-                {
-                    _ret_var = ((GridDefaultItemPartIcon)wrapper).GetContent();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_content_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_content_get_delegate efl_content_get_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_content_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity content);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_content_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity content);
-
-        public static Efl.Eo.FunctionWrapper<efl_content_set_api_delegate> efl_content_set_ptr = new Efl.Eo.FunctionWrapper<efl_content_set_api_delegate>(Module, "efl_content_set");
-
-        private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
-        {
-            Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((GridDefaultItemPartIcon)wrapper).SetContent(content);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_content_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), content);
-            }
-        }
-
-        private static efl_content_set_delegate efl_content_set_static_delegate;
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        private delegate Efl.Gfx.IEntity efl_content_unset_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        public delegate Efl.Gfx.IEntity efl_content_unset_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_content_unset_api_delegate> efl_content_unset_ptr = new Efl.Eo.FunctionWrapper<efl_content_unset_api_delegate>(Module, "efl_content_unset");
-
-        private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
-                try
-                {
-                    _ret_var = ((GridDefaultItemPartIcon)wrapper).UnsetContent();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_content_unset_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_content_unset_delegate efl_content_unset_static_delegate;
-
-        #pragma warning restore CA1707, SA1300, SA1600
-
-}
-}
-}
-
-}
-
index 2e370c9..fc8c832 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 namespace Ui {
 
 [Efl.Ui.GridItem.NativeMethods]
-public abstract class GridItem : Efl.Ui.Item, Efl.Eo.IWrapper
+public abstract class GridItem : Efl.Ui.Item
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -49,7 +49,7 @@ public abstract class GridItem : Efl.Ui.Item, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected GridItem(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class GridItemRealized : GridItem
@@ -67,33 +67,6 @@ public abstract class GridItem : Efl.Ui.Item, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.GridItem.efl_ui_grid_item_class_get();
@@ -117,9 +90,9 @@ public abstract class GridItem : Efl.Ui.Item, Efl.Eo.IWrapper
             return Efl.Ui.GridItem.efl_ui_grid_item_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 88e6581..94acf5b 100644 (file)
@@ -41,36 +41,36 @@ System.String GetLanguage();
 /// <param name="language">The current language.</param>
 void SetLanguage(System.String language);
                             /// <summary>Whether this object should be mirrored.
-/// If mirrored, an object is in RTL (right to left) mode instead of LTR (left to right).</summary>
-/// <value><c>true</c> for RTL, <c>false</c> for LTR (default).</value>
+    /// If mirrored, an object is in RTL (right to left) mode instead of LTR (left to right).</summary>
+    /// <value><c>true</c> for RTL, <c>false</c> for LTR (default).</value>
     bool Mirrored {
         get ;
         set ;
     }
     /// <summary>Whether the property <see cref="Efl.Ui.II18n.Mirrored"/> should be set automatically.
-/// If enabled, the system or application configuration will be used to set the value of <see cref="Efl.Ui.II18n.Mirrored"/>.
-/// 
-/// This property may be implemented by high-level widgets (in Efl.Ui) but not by low-level widgets (in <see cref="Efl.Canvas.IScene"/>) as the configuration should affect only high-level widgets.</summary>
-/// <value>Whether the widget uses automatic mirroring</value>
+    /// If enabled, the system or application configuration will be used to set the value of <see cref="Efl.Ui.II18n.Mirrored"/>.
+    /// 
+    /// This property may be implemented by high-level widgets (in Efl.Ui) but not by low-level widgets (in <see cref="Efl.Canvas.IScene"/>) as the configuration should affect only high-level widgets.</summary>
+    /// <value>Whether the widget uses automatic mirroring</value>
     bool MirroredAutomatic {
         get ;
         set ;
     }
     /// <summary>The (human) language for this object.</summary>
-/// <value>The current language.</value>
+    /// <value>The current language.</value>
     System.String Language {
         get ;
         set ;
     }
 }
 /// <summary>A common Internationalization interface for UI objects.</summary>
-sealed public class II18nConcrete : 
-
-II18n
+sealed public class II18nConcrete :
+    Efl.Eo.EoWrapper
+    , II18n
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -85,86 +85,12 @@ II18n
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_i18n_interface_get();
     /// <summary>Initializes a new instance of the <see cref="II18n"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private II18nConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~II18nConcrete()
+    private II18nConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Whether this object should be mirrored.
@@ -215,23 +141,23 @@ II18n
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Whether this object should be mirrored.
-/// If mirrored, an object is in RTL (right to left) mode instead of LTR (left to right).</summary>
-/// <value><c>true</c> for RTL, <c>false</c> for LTR (default).</value>
+    /// If mirrored, an object is in RTL (right to left) mode instead of LTR (left to right).</summary>
+    /// <value><c>true</c> for RTL, <c>false</c> for LTR (default).</value>
     public bool Mirrored {
         get { return GetMirrored(); }
         set { SetMirrored(value); }
     }
     /// <summary>Whether the property <see cref="Efl.Ui.II18n.Mirrored"/> should be set automatically.
-/// If enabled, the system or application configuration will be used to set the value of <see cref="Efl.Ui.II18n.Mirrored"/>.
-/// 
-/// This property may be implemented by high-level widgets (in Efl.Ui) but not by low-level widgets (in <see cref="Efl.Canvas.IScene"/>) as the configuration should affect only high-level widgets.</summary>
-/// <value>Whether the widget uses automatic mirroring</value>
+    /// If enabled, the system or application configuration will be used to set the value of <see cref="Efl.Ui.II18n.Mirrored"/>.
+    /// 
+    /// This property may be implemented by high-level widgets (in Efl.Ui) but not by low-level widgets (in <see cref="Efl.Canvas.IScene"/>) as the configuration should affect only high-level widgets.</summary>
+    /// <value>Whether the widget uses automatic mirroring</value>
     public bool MirroredAutomatic {
         get { return GetMirroredAutomatic(); }
         set { SetMirroredAutomatic(value); }
     }
     /// <summary>The (human) language for this object.</summary>
-/// <value>The current language.</value>
+    /// <value>The current language.</value>
     public System.String Language {
         get { return GetLanguage(); }
         set { SetLanguage(value); }
@@ -321,7 +247,7 @@ II18n
             return Efl.Ui.II18nConcrete.efl_ui_i18n_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_mirrored_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -334,13 +260,13 @@ II18n
         private static bool mirrored_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_mirrored_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((II18n)wrapper).GetMirrored();
+                    _ret_var = ((II18n)ws.Target).GetMirrored();
                 }
                 catch (Exception e)
                 {
@@ -370,13 +296,13 @@ II18n
         private static void mirrored_set(System.IntPtr obj, System.IntPtr pd, bool rtl)
         {
             Eina.Log.Debug("function efl_ui_mirrored_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((II18n)wrapper).SetMirrored(rtl);
+                    ((II18n)ws.Target).SetMirrored(rtl);
                 }
                 catch (Exception e)
                 {
@@ -405,13 +331,13 @@ II18n
         private static bool mirrored_automatic_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_mirrored_automatic_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((II18n)wrapper).GetMirroredAutomatic();
+                    _ret_var = ((II18n)ws.Target).GetMirroredAutomatic();
                 }
                 catch (Exception e)
                 {
@@ -441,13 +367,13 @@ II18n
         private static void mirrored_automatic_set(System.IntPtr obj, System.IntPtr pd, bool automatic)
         {
             Eina.Log.Debug("function efl_ui_mirrored_automatic_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((II18n)wrapper).SetMirroredAutomatic(automatic);
+                    ((II18n)ws.Target).SetMirroredAutomatic(automatic);
                 }
                 catch (Exception e)
                 {
@@ -476,13 +402,13 @@ II18n
         private static System.String language_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_language_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((II18n)wrapper).GetLanguage();
+                    _ret_var = ((II18n)ws.Target).GetLanguage();
                 }
                 catch (Exception e)
                 {
@@ -512,13 +438,13 @@ II18n
         private static void language_set(System.IntPtr obj, System.IntPtr pd, System.String language)
         {
             Eina.Log.Debug("function efl_ui_language_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((II18n)wrapper).SetLanguage(language);
+                    ((II18n)ws.Target).SetLanguage(language);
                 }
                 catch (Exception e)
                 {
@@ -536,7 +462,7 @@ II18n
 
         private static efl_ui_language_set_delegate efl_ui_language_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index deb3dfd..1be167e 100644 (file)
@@ -17,7 +17,7 @@ public class ImageDropEvt_Args : EventArgs {
 /// <summary>Efl UI image class
 /// When loading images from a file, the <see cref="Efl.IFile.Key"/> property can be used to access different streams. For example, when accessing Evas image caches.</summary>
 [Efl.Ui.Image.NativeMethods]
-public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,Efl.IPlayer,Efl.Gfx.IImage,Efl.Gfx.IImageLoadController,Efl.Gfx.IView,Efl.Layout.ICalc,Efl.Layout.IGroup,Efl.Layout.ISignal,Efl.Ui.IClickable,Efl.Ui.IDraggable
+public class Image : Efl.Ui.Widget, Efl.IFile, Efl.IPlayer, Efl.Gfx.IImage, Efl.Gfx.IImageLoadController, Efl.Gfx.IImageOrientable, Efl.Gfx.IView, Efl.Layout.ICalc, Efl.Layout.IGroup, Efl.Layout.ISignal, Efl.Ui.IClickable, Efl.Ui.IDraggable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -56,7 +56,7 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Image(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Image"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -67,33 +67,6 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when drop from drag and drop happened</summary>
     public event EventHandler<Efl.Ui.ImageDropEvt_Args> DropEvt
     {
@@ -101,13 +74,12 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ImageDropEvt_Args args = new Efl.Ui.ImageDropEvt_Args();
+                        Efl.Ui.ImageDropEvt_Args args = new Efl.Ui.ImageDropEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -163,10 +135,9 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -216,10 +187,9 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -269,10 +239,9 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -322,10 +291,9 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -375,13 +343,12 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args args = new Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args();
+                        Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args args = new Efl.Gfx.IImageLoadControllerLoadErrorEvt_Args();
                         args.arg = (Eina.Error)Marshal.PtrToStructure(evt.Info, typeof(Eina.Error));
                         try
                         {
@@ -438,10 +405,9 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -492,13 +458,12 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Layout.ICalcCircularDependencyEvt_Args args = new Efl.Layout.ICalcCircularDependencyEvt_Args();
+                        Efl.Layout.ICalcCircularDependencyEvt_Args args = new Efl.Layout.ICalcCircularDependencyEvt_Args();
                         args.arg = new Eina.Array<System.String>(evt.Info, false, false);
                         try
                         {
@@ -540,20 +505,20 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         IntPtr info = e.arg.Handle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
+    /// <summary>Called when object is in sequence pressed and unpressed, by the primary button</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedEvt_Args> ClickedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedEvt_Args args = new Efl.Ui.IClickableClickedEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -567,7 +532,7 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
                 };
 
                 string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -576,90 +541,46 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
     ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
+    public void OnClickedEvt(Efl.Ui.IClickableClickedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
+    /// <summary>Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedAnyEvt_Args> ClickedAnyEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedAnyEvt_Args args = new Efl.Ui.IClickableClickedAnyEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -672,8 +593,8 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
                     }
                 };
 
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -681,94 +602,47 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
+    ///<summary>Method to raise event ClickedAnyEvt.</summary>
+    public void OnClickedAnyEvt(Efl.Ui.IClickableClickedAnyEvt_Args e)
     {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        var key = "_EFL_UI_EVENT_CLICKED_ANY";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Called when the object is pressed</summary>
+    /// <summary>Called when the object is pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -782,7 +656,7 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
                 };
 
                 string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -791,7 +665,7 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -799,31 +673,37 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
     public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object is no longer pressed</summary>
+    /// <summary>Called when the object is no longer pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -837,7 +717,7 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
                 };
 
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -846,7 +726,7 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -854,31 +734,37 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
     public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object receives a long press</summary>
+    /// <summary>Called when the object receives a long press, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -892,7 +778,7 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
                 };
 
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -901,7 +787,7 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -909,68 +795,22 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
     public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
     /// <summary>Called when drag operation starts</summary>
     public event EventHandler<Efl.Ui.IDraggableDragEvt_Args> DragEvt
@@ -979,13 +819,12 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragEvt_Args args = new Efl.Ui.IDraggableDragEvt_Args();
+                        Efl.Ui.IDraggableDragEvt_Args args = new Efl.Ui.IDraggableDragEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1034,10 +873,9 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1087,13 +925,12 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragStopEvt_Args args = new Efl.Ui.IDraggableDragStopEvt_Args();
+                        Efl.Ui.IDraggableDragStopEvt_Args args = new Efl.Ui.IDraggableDragStopEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1142,10 +979,9 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1195,13 +1031,12 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragStartUpEvt_Args args = new Efl.Ui.IDraggableDragStartUpEvt_Args();
+                        Efl.Ui.IDraggableDragStartUpEvt_Args args = new Efl.Ui.IDraggableDragStartUpEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1250,13 +1085,12 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragStartDownEvt_Args args = new Efl.Ui.IDraggableDragStartDownEvt_Args();
+                        Efl.Ui.IDraggableDragStartDownEvt_Args args = new Efl.Ui.IDraggableDragStartDownEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1305,13 +1139,12 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragStartRightEvt_Args args = new Efl.Ui.IDraggableDragStartRightEvt_Args();
+                        Efl.Ui.IDraggableDragStartRightEvt_Args args = new Efl.Ui.IDraggableDragStartRightEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1360,13 +1193,12 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDraggableDragStartLeftEvt_Args args = new Efl.Ui.IDraggableDragStartLeftEvt_Args();
+                        Efl.Ui.IDraggableDragStartLeftEvt_Args args = new Efl.Ui.IDraggableDragStartLeftEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1545,36 +1377,6 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
          Efl.IFileConcrete.NativeMethods.efl_file_unload_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
          }
-    /// <summary>Control the orientation of a given object.
-    /// This can be used to set the rotation on an image or a window, for instance.</summary>
-    /// <returns>The rotation angle (CCW), see <see cref="Efl.Orient"/>.</returns>
-    virtual public Efl.Orient GetOrientation() {
-         var _ret_var = Efl.IOrientationConcrete.NativeMethods.efl_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Control the orientation of a given object.
-    /// This can be used to set the rotation on an image or a window, for instance.</summary>
-    /// <param name="dir">The rotation angle (CCW), see <see cref="Efl.Orient"/>.</param>
-    virtual public void SetOrientation(Efl.Orient dir) {
-                                 Efl.IOrientationConcrete.NativeMethods.efl_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Control the flip of the given image
-    /// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-    /// <returns>Flip method</returns>
-    virtual public Efl.Flip GetFlip() {
-         var _ret_var = Efl.IOrientationConcrete.NativeMethods.efl_orientation_flip_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Control the flip of the given image
-    /// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-    /// <param name="flip">Flip method</param>
-    virtual public void SetFlip(Efl.Flip flip) {
-                                 Efl.IOrientationConcrete.NativeMethods.efl_orientation_flip_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),flip);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
     /// <summary>Whether or not the playable can be played.</summary>
     /// <returns><c>true</c> if the object have playable data, <c>false</c> otherwise</returns>
     virtual public bool GetPlayable() {
@@ -1959,6 +1761,21 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
          Efl.Gfx.IImageLoadControllerConcrete.NativeMethods.efl_gfx_image_load_controller_load_async_cancel_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
          }
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+    /// This can be used to set the rotation on an image or a window, for instance.</summary>
+    /// <returns>The final orientation of the object.</returns>
+    virtual public Efl.Gfx.ImageOrientation GetOrientation() {
+         var _ret_var = Efl.Gfx.IImageOrientableConcrete.NativeMethods.efl_gfx_image_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+    /// This can be used to set the rotation on an image or a window, for instance.</summary>
+    /// <param name="dir">The final orientation of the object.</param>
+    virtual public void SetOrientation(Efl.Gfx.ImageOrientation dir) {
+                                 Efl.Gfx.IImageOrientableConcrete.NativeMethods.efl_gfx_image_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>The dimensions of this object&apos;s viewport.
     /// This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.
     /// 
@@ -2198,6 +2015,26 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
                                  Efl.Layout.ISignalConcrete.NativeMethods.efl_layout_signal_process_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),recurse);
         Eina.Error.RaiseIfUnhandledException();
                          }
+    /// <summary>Change internal states that a button got pressed.
+    /// When the button is already pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Press(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_press_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Change internal states that a button got unpressed.
+    /// When the button is not pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Unpress(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_unpress_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>This aborts the internal state after a press call.
+    /// This will stop the timer for longpress. And set the state of the clickable mixin back into the unpressed state.</summary>
+    virtual public void ResetButtonState(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_button_state_reset_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>Control whether the object&apos;s content is changed by drag and drop.
     /// If <c>drag_target</c> is true the object can be the target of a dragging object. The content of this object can then be changed into dragging content. For example, if an object deals with image and <c>drag_target</c> is true, the user can drag the new image and drop it into said object. This object&apos;s image can then be changed into a new image.</summary>
     /// <returns>Turn on or off drop_target. Default is <c>false</c>.</returns>
@@ -2214,282 +2051,275 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Get the icon name of image set by icon standard names.
-/// If the image was set using efl_file_set() instead of <see cref="Efl.Ui.Image.SetIcon"/>, then this function will return null.</summary>
-/// <value>The icon name</value>
+    /// If the image was set using efl_file_set() instead of <see cref="Efl.Ui.Image.SetIcon"/>, then this function will return null.</summary>
+    /// <value>The icon name</value>
     public System.String Icon {
         get { return GetIcon(); }
         set { SetIcon(value); }
     }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
-    /// <summary>Control the orientation of a given object.
-/// This can be used to set the rotation on an image or a window, for instance.</summary>
-/// <value>The rotation angle (CCW), see <see cref="Efl.Orient"/>.</value>
-    public Efl.Orient Orientation {
-        get { return GetOrientation(); }
-        set { SetOrientation(value); }
-    }
-    /// <summary>Control the flip of the given image
-/// Use this function to change how your image is to be flipped: vertically or horizontally or transpose or traverse.</summary>
-/// <value>Flip method</value>
-    public Efl.Flip Flip {
-        get { return GetFlip(); }
-        set { SetFlip(value); }
-    }
     /// <summary>Whether or not the playable can be played.</summary>
-/// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
     public bool Playable {
         get { return GetPlayable(); }
     }
     /// <summary>Get play/pause state of the media file.</summary>
-/// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
+    /// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
     public bool Play {
         get { return GetPlay(); }
         set { SetPlay(value); }
     }
     /// <summary>Get the position in the media file.
-/// The position is returned as the number of seconds since the beginning of the media file.</summary>
-/// <value>The position (in seconds).</value>
+    /// The position is returned as the number of seconds since the beginning of the media file.</summary>
+    /// <value>The position (in seconds).</value>
     public double Pos {
         get { return GetPos(); }
         set { SetPos(value); }
     }
     /// <summary>Get how much of the file has been played.
-/// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
-/// <value>The progress within the [0, 1] range.</value>
+    /// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
+    /// <value>The progress within the [0, 1] range.</value>
     public double Progress {
         get { return GetProgress(); }
     }
     /// <summary>Control the play speed of the media file.
-/// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
-/// <value>The play speed in the [0, infinity) range.</value>
+    /// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
+    /// <value>The play speed in the [0, infinity) range.</value>
     public double PlaySpeed {
         get { return GetPlaySpeed(); }
         set { SetPlaySpeed(value); }
     }
     /// <summary>Control the audio volume.
-/// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
-/// <value>The volume level</value>
+    /// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
+    /// <value>The volume level</value>
     public double Volume {
         get { return GetVolume(); }
         set { SetVolume(value); }
     }
     /// <summary>This property controls the audio mute state.</summary>
-/// <value>The mute state. <c>true</c> or <c>false</c>.</value>
+    /// <value>The mute state. <c>true</c> or <c>false</c>.</value>
     public bool Mute {
         get { return GetMute(); }
         set { SetMute(value); }
     }
     /// <summary>Get the length of play for the media file.</summary>
-/// <value>The length of the stream in seconds.</value>
+    /// <value>The length of the stream in seconds.</value>
     public double Length {
         get { return GetLength(); }
     }
     /// <summary>Get whether the media file is seekable.</summary>
-/// <value><c>true</c> if seekable.</value>
+    /// <value><c>true</c> if seekable.</value>
     public bool Seekable {
         get { return GetSeekable(); }
     }
     /// <summary>Whether to use high-quality image scaling algorithm for this image.
-/// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
-/// 
-/// <c>true</c> by default</summary>
-/// <value>Whether to use smooth scale or not.</value>
+    /// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
+    /// 
+    /// <c>true</c> by default</summary>
+    /// <value>Whether to use smooth scale or not.</value>
     public bool SmoothScale {
         get { return GetSmoothScale(); }
         set { SetSmoothScale(value); }
     }
     /// <summary>Control how the image is scaled.</summary>
-/// <value>Image scale type</value>
+    /// <value>Image scale type</value>
     public Efl.Gfx.ImageScaleType ScaleType {
         get { return GetScaleType(); }
         set { SetScaleType(value); }
     }
     /// <summary>The native width/height ratio of the image.</summary>
-/// <value>The image&apos;s ratio.</value>
+    /// <value>The image&apos;s ratio.</value>
     public double Ratio {
         get { return GetRatio(); }
     }
     /// <summary>Scaling factor applied to the image borders.
-/// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
-/// 
-/// Default value is 1.0 (no scaling).</summary>
-/// <value>The scale factor.</value>
+    /// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
+    /// 
+    /// Default value is 1.0 (no scaling).</summary>
+    /// <value>The scale factor.</value>
     public double BorderScale {
         get { return GetBorderScale(); }
         set { SetBorderScale(value); }
     }
     /// <summary>Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.
-/// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
-/// 
-/// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
-/// <value>Fill mode of the center region.</value>
+    /// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
+    /// 
+    /// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
+    /// <value>Fill mode of the center region.</value>
     public Efl.Gfx.BorderFillMode BorderCenterFill {
         get { return GetBorderCenterFill(); }
         set { SetBorderCenterFill(value); }
     }
     /// <summary>This represents the size of the original image in pixels.
-/// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
-/// 
-/// This is a read-only property, and may return 0x0.</summary>
-/// <value>The size in pixels.</value>
+    /// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
+    /// 
+    /// This is a read-only property, and may return 0x0.</summary>
+    /// <value>The size in pixels.</value>
     public Eina.Size2D ImageSize {
         get { return GetImageSize(); }
     }
     /// <summary>Get the content hint setting of a given image object of the canvas.
-/// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
-/// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
+    /// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
+    /// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
     public Efl.Gfx.ImageContentHint ContentHint {
         get { return GetContentHint(); }
         set { SetContentHint(value); }
     }
     /// <summary>Get the scale hint of a given image of the canvas.
-/// This function returns the scale hint value of the given image object of the canvas.</summary>
-/// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
+    /// This function returns the scale hint value of the given image object of the canvas.</summary>
+    /// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
     public Efl.Gfx.ImageScaleHint ScaleHint {
         get { return GetScaleHint(); }
         set { SetScaleHint(value); }
     }
     /// <summary>Gets the (last) file loading error for a given object.</summary>
-/// <value>The load error code.</value>
+    /// <value>The load error code.</value>
     public Eina.Error ImageLoadError {
         get { return GetImageLoadError(); }
     }
     /// <summary>The load size of an image.
-/// The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like svg.
-/// 
-/// By default, the load size is not specified, so it is 0x0.</summary>
-/// <value>The image load size.</value>
+    /// The image will be loaded into memory as if it was the specified size instead of its original size. This can save a lot of memory and is important for scalable types like svg.
+    /// 
+    /// By default, the load size is not specified, so it is 0x0.</summary>
+    /// <value>The image load size.</value>
     public Eina.Size2D LoadSize {
         get { return GetLoadSize(); }
         set { SetLoadSize(value); }
     }
     /// <summary>Get the DPI resolution of a loaded image object in the canvas.
-/// This function returns the DPI resolution of the given canvas image.</summary>
-/// <value>The DPI resolution.</value>
+    /// This function returns the DPI resolution of the given canvas image.</summary>
+    /// <value>The DPI resolution.</value>
     public double LoadDpi {
         get { return GetLoadDpi(); }
         set { SetLoadDpi(value); }
     }
     /// <summary>Indicates whether the <see cref="Efl.Gfx.IImageLoadController.LoadRegion"/> property is supported for the current file.</summary>
-/// <value><c>true</c> if region load of the image is supported, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if region load of the image is supported, <c>false</c> otherwise</value>
     public bool LoadRegionSupport {
         get { return GetLoadRegionSupport(); }
     }
     /// <summary>Retrieve the coordinates of a given image object&apos;s selective (source image) load region.</summary>
-/// <value>A region of the image.</value>
+    /// <value>A region of the image.</value>
     public Eina.Rect LoadRegion {
         get { return GetLoadRegion(); }
         set { SetLoadRegion(value); }
     }
     /// <summary>Defines whether the orientation information in the image file should be honored.
-/// The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is <c>false</c>, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.</summary>
-/// <value><c>true</c> means that it should honor the orientation information.</value>
+    /// The orientation can for instance be set in the EXIF tags of a JPEG image. If this flag is <c>false</c>, then the orientation will be ignored at load time, otherwise the image will be loaded with the proper orientation.</summary>
+    /// <value><c>true</c> means that it should honor the orientation information.</value>
     public bool LoadOrientation {
         get { return GetLoadOrientation(); }
         set { SetLoadOrientation(value); }
     }
     /// <summary>The scale down factor is a divider on the original image size.
-/// Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.
-/// 
-/// This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.
-/// 
-/// Powers of two (2, 4, 8) are best supported (especially with JPEG)</summary>
-/// <value>The scale down dividing factor.</value>
+    /// Setting the scale down factor can reduce load time and memory usage at the cost of having a scaled down image in memory.
+    /// 
+    /// This function sets the scale down factor of a given canvas image. Most useful for the SVG image loader but also applies to JPEG, PNG and BMP.
+    /// 
+    /// Powers of two (2, 4, 8) are best supported (especially with JPEG)</summary>
+    /// <value>The scale down dividing factor.</value>
     public int LoadScaleDown {
         get { return GetLoadScaleDown(); }
         set { SetLoadScaleDown(value); }
     }
     /// <summary>Initial load should skip header check and leave it all to data load
-/// If this is true, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).</summary>
-/// <value>Will be true if header is to be skipped.</value>
+    /// If this is true, then future loads of images will defer header loading to a preload stage and/or data load later on rather than at the start when the load begins (e.g. when file is set).</summary>
+    /// <value>Will be true if header is to be skipped.</value>
     public bool LoadSkipHeader {
         get { return GetLoadSkipHeader(); }
         set { SetLoadSkipHeader(value); }
     }
+    /// <summary>Control the orientation (rotation and flipping) of a visual object.
+    /// This can be used to set the rotation on an image or a window, for instance.</summary>
+    /// <value>The final orientation of the object.</value>
+    public Efl.Gfx.ImageOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
+    }
     /// <summary>The dimensions of this object&apos;s viewport.
-/// This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.
-/// 
-/// For scalable scenes (vector graphics, 3D or GL), this means scaling the contents of the scene and drawing more pixels as a result; For pixmaps this means zooming and stretching up or down the backing buffer to fit this view.
-/// 
-/// In most cases the view should have the same dimensions as the object on the canvas, for best quality.
-/// 
-/// <see cref="Efl.Gfx.IView.SetViewSize"/> may not be implemented. If it is, it might trigger a complete recalculation of the scene, or reload of the pixel data.
-/// 
-/// Refer to each implementing class specific documentation for more details.</summary>
-/// <value>Size of the view.</value>
+    /// This property represents the size of an image (file on disk, vector graphics, GL or 3D scene, ...) view: this is the logical size of a view, not the number of pixels in the buffer, nor its visible size on the window.
+    /// 
+    /// For scalable scenes (vector graphics, 3D or GL), this means scaling the contents of the scene and drawing more pixels as a result; For pixmaps this means zooming and stretching up or down the backing buffer to fit this view.
+    /// 
+    /// In most cases the view should have the same dimensions as the object on the canvas, for best quality.
+    /// 
+    /// <see cref="Efl.Gfx.IView.SetViewSize"/> may not be implemented. If it is, it might trigger a complete recalculation of the scene, or reload of the pixel data.
+    /// 
+    /// Refer to each implementing class specific documentation for more details.</summary>
+    /// <value>Size of the view.</value>
     public Eina.Size2D ViewSize {
         get { return GetViewSize(); }
         set { SetViewSize(value); }
     }
     /// <summary>Whether this object updates its size hints automatically.
-/// By default edje doesn&apos;t set size hints on itself. If this property is set to <c>true</c>, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.
-/// 
-/// A layout recalculation can be triggered by <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcPartsExtends"/> or even any other internal event.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether or not update the size hints.</value>
+    /// By default edje doesn&apos;t set size hints on itself. If this property is set to <c>true</c>, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.
+    /// 
+    /// A layout recalculation can be triggered by <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcPartsExtends"/> or even any other internal event.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether or not update the size hints.</value>
     public bool CalcAutoUpdateHints {
         get { return GetCalcAutoUpdateHints(); }
         set { SetCalcAutoUpdateHints(value); }
     }
     /// <summary>Gets the minimum size specified -- as an EDC property -- for a given Edje object
-/// This function retrieves the obj object&apos;s minimum size values, as declared in its EDC group definition. For instance, for an Edje object of minimum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; min: 100 100; } }
-/// 
-/// Note: If the <c>min</c> EDC property was not declared for this object, this call will return 0x0.
-/// 
-/// Note: On failure, this function also return 0x0.
-/// 
-/// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMax"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The minimum size as set in EDC.</value>
+    /// This function retrieves the obj object&apos;s minimum size values, as declared in its EDC group definition. For instance, for an Edje object of minimum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; min: 100 100; } }
+    /// 
+    /// Note: If the <c>min</c> EDC property was not declared for this object, this call will return 0x0.
+    /// 
+    /// Note: On failure, this function also return 0x0.
+    /// 
+    /// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMax"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The minimum size as set in EDC.</value>
     public Eina.Size2D GroupSizeMin {
         get { return GetGroupSizeMin(); }
     }
     /// <summary>Gets the maximum size specified -- as an EDC property -- for a given Edje object
-/// This function retrieves the object&apos;s maximum size values, as declared in its EDC group definition. For instance, for an Edje object of maximum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; max: 100 100; } }
-/// 
-/// Note: If the <c>max</c> EDC property was not declared for the object, this call will return the maximum size a given Edje object may have, for each axis.
-/// 
-/// Note: On failure, this function will return 0x0.
-/// 
-/// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMin"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The maximum size as set in EDC.</value>
+    /// This function retrieves the object&apos;s maximum size values, as declared in its EDC group definition. For instance, for an Edje object of maximum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; max: 100 100; } }
+    /// 
+    /// Note: If the <c>max</c> EDC property was not declared for the object, this call will return the maximum size a given Edje object may have, for each axis.
+    /// 
+    /// Note: On failure, this function will return 0x0.
+    /// 
+    /// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMin"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The maximum size as set in EDC.</value>
     public Eina.Size2D GroupSizeMax {
         get { return GetGroupSizeMax(); }
     }
     /// <summary>Control whether the object&apos;s content is changed by drag and drop.
-/// If <c>drag_target</c> is true the object can be the target of a dragging object. The content of this object can then be changed into dragging content. For example, if an object deals with image and <c>drag_target</c> is true, the user can drag the new image and drop it into said object. This object&apos;s image can then be changed into a new image.</summary>
-/// <value>Turn on or off drop_target. Default is <c>false</c>.</value>
+    /// If <c>drag_target</c> is true the object can be the target of a dragging object. The content of this object can then be changed into dragging content. For example, if an object deals with image and <c>drag_target</c> is true, the user can drag the new image and drop it into said object. This object&apos;s image can then be changed into a new image.</summary>
+    /// <value>Turn on or off drop_target. Default is <c>false</c>.</value>
     public bool DragTarget {
         get { return GetDragTarget(); }
         set { SetDragTarget(value); }
@@ -2660,46 +2490,6 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_file_unload"), func = Marshal.GetFunctionPointerForDelegate(efl_file_unload_static_delegate) });
             }
 
-            if (efl_orientation_get_static_delegate == null)
-            {
-                efl_orientation_get_static_delegate = new efl_orientation_get_delegate(orientation_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_get_static_delegate) });
-            }
-
-            if (efl_orientation_set_static_delegate == null)
-            {
-                efl_orientation_set_static_delegate = new efl_orientation_set_delegate(orientation_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_set_static_delegate) });
-            }
-
-            if (efl_orientation_flip_get_static_delegate == null)
-            {
-                efl_orientation_flip_get_static_delegate = new efl_orientation_flip_get_delegate(flip_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetFlip") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_flip_get"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_flip_get_static_delegate) });
-            }
-
-            if (efl_orientation_flip_set_static_delegate == null)
-            {
-                efl_orientation_flip_set_static_delegate = new efl_orientation_flip_set_delegate(flip_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetFlip") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_orientation_flip_set"), func = Marshal.GetFunctionPointerForDelegate(efl_orientation_flip_set_static_delegate) });
-            }
-
             if (efl_player_playable_get_static_delegate == null)
             {
                 efl_player_playable_get_static_delegate = new efl_player_playable_get_delegate(playable_get);
@@ -3162,22 +2952,42 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
 
             if (efl_gfx_image_load_controller_load_async_start_static_delegate == null)
             {
-                efl_gfx_image_load_controller_load_async_start_static_delegate = new efl_gfx_image_load_controller_load_async_start_delegate(load_async_start);
+                efl_gfx_image_load_controller_load_async_start_static_delegate = new efl_gfx_image_load_controller_load_async_start_delegate(load_async_start);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "LoadAsyncStart") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_load_controller_load_async_start"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_load_controller_load_async_start_static_delegate) });
+            }
+
+            if (efl_gfx_image_load_controller_load_async_cancel_static_delegate == null)
+            {
+                efl_gfx_image_load_controller_load_async_cancel_static_delegate = new efl_gfx_image_load_controller_load_async_cancel_delegate(load_async_cancel);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "LoadAsyncCancel") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_load_controller_load_async_cancel"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_load_controller_load_async_cancel_static_delegate) });
+            }
+
+            if (efl_gfx_image_orientation_get_static_delegate == null)
+            {
+                efl_gfx_image_orientation_get_static_delegate = new efl_gfx_image_orientation_get_delegate(orientation_get);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "LoadAsyncStart") != null)
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_load_controller_load_async_start"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_load_controller_load_async_start_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_orientation_get_static_delegate) });
             }
 
-            if (efl_gfx_image_load_controller_load_async_cancel_static_delegate == null)
+            if (efl_gfx_image_orientation_set_static_delegate == null)
             {
-                efl_gfx_image_load_controller_load_async_cancel_static_delegate = new efl_gfx_image_load_controller_load_async_cancel_delegate(load_async_cancel);
+                efl_gfx_image_orientation_set_static_delegate = new efl_gfx_image_orientation_set_delegate(orientation_set);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "LoadAsyncCancel") != null)
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_load_controller_load_async_cancel"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_load_controller_load_async_cancel_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_image_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_image_orientation_set_static_delegate) });
             }
 
             if (efl_gfx_view_size_get_static_delegate == null)
@@ -3360,6 +3170,36 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_layout_signal_process"), func = Marshal.GetFunctionPointerForDelegate(efl_layout_signal_process_static_delegate) });
             }
 
+            if (efl_ui_clickable_press_static_delegate == null)
+            {
+                efl_ui_clickable_press_static_delegate = new efl_ui_clickable_press_delegate(press);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Press") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_press"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_press_static_delegate) });
+            }
+
+            if (efl_ui_clickable_unpress_static_delegate == null)
+            {
+                efl_ui_clickable_unpress_static_delegate = new efl_ui_clickable_unpress_delegate(unpress);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Unpress") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_unpress"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_unpress_static_delegate) });
+            }
+
+            if (efl_ui_clickable_button_state_reset_static_delegate == null)
+            {
+                efl_ui_clickable_button_state_reset_static_delegate = new efl_ui_clickable_button_state_reset_delegate(button_state_reset);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "ResetButtonState") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_button_state_reset"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_button_state_reset_static_delegate) });
+            }
+
             if (efl_ui_draggable_drag_target_get_static_delegate == null)
             {
                 efl_ui_draggable_drag_target_get_static_delegate = new efl_ui_draggable_drag_target_get_delegate(drag_target_get);
@@ -3390,7 +3230,7 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
             return Efl.Ui.Image.efl_ui_image_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_image_scalable_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] out bool scale_up, [MarshalAs(UnmanagedType.U1)] out bool scale_down);
@@ -3403,13 +3243,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void scalable_get(System.IntPtr obj, System.IntPtr pd, out bool scale_up, out bool scale_down)
         {
             Eina.Log.Debug("function efl_ui_image_scalable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         scale_up = default(bool);        scale_down = default(bool);                            
                 try
                 {
-                    ((Image)wrapper).GetScalable(out scale_up, out scale_down);
+                    ((Image)ws.Target).GetScalable(out scale_up, out scale_down);
                 }
                 catch (Exception e)
                 {
@@ -3438,13 +3278,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void scalable_set(System.IntPtr obj, System.IntPtr pd, bool scale_up, bool scale_down)
         {
             Eina.Log.Debug("function efl_ui_image_scalable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Image)wrapper).SetScalable(scale_up, scale_down);
+                    ((Image)ws.Target).SetScalable(scale_up, scale_down);
                 }
                 catch (Exception e)
                 {
@@ -3473,13 +3313,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void align_get(System.IntPtr obj, System.IntPtr pd, out double align_x, out double align_y)
         {
             Eina.Log.Debug("function efl_ui_image_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         align_x = default(double);        align_y = default(double);                            
                 try
                 {
-                    ((Image)wrapper).GetAlign(out align_x, out align_y);
+                    ((Image)ws.Target).GetAlign(out align_x, out align_y);
                 }
                 catch (Exception e)
                 {
@@ -3508,13 +3348,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void align_set(System.IntPtr obj, System.IntPtr pd, double align_x, double align_y)
         {
             Eina.Log.Debug("function efl_ui_image_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Image)wrapper).SetAlign(align_x, align_y);
+                    ((Image)ws.Target).SetAlign(align_x, align_y);
                 }
                 catch (Exception e)
                 {
@@ -3543,13 +3383,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static System.String icon_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_image_icon_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetIcon();
+                    _ret_var = ((Image)ws.Target).GetIcon();
                 }
                 catch (Exception e)
                 {
@@ -3579,13 +3419,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool icon_set(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_ui_image_icon_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).SetIcon(name);
+                    _ret_var = ((Image)ws.Target).SetIcon(name);
                 }
                 catch (Exception e)
                 {
@@ -3615,13 +3455,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetMmap();
+                    _ret_var = ((Image)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -3651,13 +3491,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Image)wrapper).SetMmap(f);
+                    _ret_var = ((Image)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -3687,13 +3527,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetFile();
+                    _ret_var = ((Image)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -3723,13 +3563,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Image)wrapper).SetFile(file);
+                    _ret_var = ((Image)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -3759,13 +3599,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetKey();
+                    _ret_var = ((Image)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -3795,13 +3635,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetKey(key);
+                    ((Image)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -3830,13 +3670,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoaded();
+                    _ret_var = ((Image)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -3866,13 +3706,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Image)wrapper).Load();
+                    _ret_var = ((Image)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -3902,13 +3742,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Image)wrapper).Unload();
+                    ((Image)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -3926,148 +3766,6 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
 
         private static efl_file_unload_delegate efl_file_unload_static_delegate;
 
-        
-        private delegate Efl.Orient efl_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate Efl.Orient efl_orientation_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_get_api_delegate> efl_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_get_api_delegate>(Module, "efl_orientation_get");
-
-        private static Efl.Orient orientation_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_orientation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Orient _ret_var = default(Efl.Orient);
-                try
-                {
-                    _ret_var = ((Image)wrapper).GetOrientation();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_orientation_get_delegate efl_orientation_get_static_delegate;
-
-        
-        private delegate void efl_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Orient dir);
-
-        
-        public delegate void efl_orientation_set_api_delegate(System.IntPtr obj,  Efl.Orient dir);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_set_api_delegate> efl_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_set_api_delegate>(Module, "efl_orientation_set");
-
-        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Orient dir)
-        {
-            Eina.Log.Debug("function efl_orientation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((Image)wrapper).SetOrientation(dir);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
-            }
-        }
-
-        private static efl_orientation_set_delegate efl_orientation_set_static_delegate;
-
-        
-        private delegate Efl.Flip efl_orientation_flip_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate Efl.Flip efl_orientation_flip_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_flip_get_api_delegate> efl_orientation_flip_get_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_flip_get_api_delegate>(Module, "efl_orientation_flip_get");
-
-        private static Efl.Flip flip_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_orientation_flip_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Flip _ret_var = default(Efl.Flip);
-                try
-                {
-                    _ret_var = ((Image)wrapper).GetFlip();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_orientation_flip_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_orientation_flip_get_delegate efl_orientation_flip_get_static_delegate;
-
-        
-        private delegate void efl_orientation_flip_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Flip flip);
-
-        
-        public delegate void efl_orientation_flip_set_api_delegate(System.IntPtr obj,  Efl.Flip flip);
-
-        public static Efl.Eo.FunctionWrapper<efl_orientation_flip_set_api_delegate> efl_orientation_flip_set_ptr = new Efl.Eo.FunctionWrapper<efl_orientation_flip_set_api_delegate>(Module, "efl_orientation_flip_set");
-
-        private static void flip_set(System.IntPtr obj, System.IntPtr pd, Efl.Flip flip)
-        {
-            Eina.Log.Debug("function efl_orientation_flip_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((Image)wrapper).SetFlip(flip);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_orientation_flip_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), flip);
-            }
-        }
-
-        private static efl_orientation_flip_set_delegate efl_orientation_flip_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_player_playable_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -4079,13 +3777,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool playable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_playable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetPlayable();
+                    _ret_var = ((Image)ws.Target).GetPlayable();
                 }
                 catch (Exception e)
                 {
@@ -4115,13 +3813,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool play_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_play_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetPlay();
+                    _ret_var = ((Image)ws.Target).GetPlay();
                 }
                 catch (Exception e)
                 {
@@ -4151,13 +3849,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void play_set(System.IntPtr obj, System.IntPtr pd, bool play)
         {
             Eina.Log.Debug("function efl_player_play_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetPlay(play);
+                    ((Image)ws.Target).SetPlay(play);
                 }
                 catch (Exception e)
                 {
@@ -4186,13 +3884,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static double pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetPos();
+                    _ret_var = ((Image)ws.Target).GetPos();
                 }
                 catch (Exception e)
                 {
@@ -4222,13 +3920,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void pos_set(System.IntPtr obj, System.IntPtr pd, double sec)
         {
             Eina.Log.Debug("function efl_player_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetPos(sec);
+                    ((Image)ws.Target).SetPos(sec);
                 }
                 catch (Exception e)
                 {
@@ -4257,13 +3955,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static double progress_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_progress_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetProgress();
+                    _ret_var = ((Image)ws.Target).GetProgress();
                 }
                 catch (Exception e)
                 {
@@ -4293,13 +3991,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static double play_speed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_play_speed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetPlaySpeed();
+                    _ret_var = ((Image)ws.Target).GetPlaySpeed();
                 }
                 catch (Exception e)
                 {
@@ -4329,13 +4027,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void play_speed_set(System.IntPtr obj, System.IntPtr pd, double speed)
         {
             Eina.Log.Debug("function efl_player_play_speed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetPlaySpeed(speed);
+                    ((Image)ws.Target).SetPlaySpeed(speed);
                 }
                 catch (Exception e)
                 {
@@ -4364,13 +4062,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static double volume_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_volume_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetVolume();
+                    _ret_var = ((Image)ws.Target).GetVolume();
                 }
                 catch (Exception e)
                 {
@@ -4400,13 +4098,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void volume_set(System.IntPtr obj, System.IntPtr pd, double volume)
         {
             Eina.Log.Debug("function efl_player_volume_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetVolume(volume);
+                    ((Image)ws.Target).SetVolume(volume);
                 }
                 catch (Exception e)
                 {
@@ -4435,13 +4133,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool mute_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_mute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetMute();
+                    _ret_var = ((Image)ws.Target).GetMute();
                 }
                 catch (Exception e)
                 {
@@ -4471,13 +4169,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void mute_set(System.IntPtr obj, System.IntPtr pd, bool mute)
         {
             Eina.Log.Debug("function efl_player_mute_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetMute(mute);
+                    ((Image)ws.Target).SetMute(mute);
                 }
                 catch (Exception e)
                 {
@@ -4506,13 +4204,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static double length_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLength();
+                    _ret_var = ((Image)ws.Target).GetLength();
                 }
                 catch (Exception e)
                 {
@@ -4542,13 +4240,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool seekable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_seekable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetSeekable();
+                    _ret_var = ((Image)ws.Target).GetSeekable();
                 }
                 catch (Exception e)
                 {
@@ -4578,13 +4276,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void start(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Image)wrapper).Start();
+                    ((Image)ws.Target).Start();
                 }
                 catch (Exception e)
                 {
@@ -4613,13 +4311,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void stop(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_stop was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Image)wrapper).Stop();
+                    ((Image)ws.Target).Stop();
                 }
                 catch (Exception e)
                 {
@@ -4648,13 +4346,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool smooth_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_smooth_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetSmoothScale();
+                    _ret_var = ((Image)ws.Target).GetSmoothScale();
                 }
                 catch (Exception e)
                 {
@@ -4684,13 +4382,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void smooth_scale_set(System.IntPtr obj, System.IntPtr pd, bool smooth_scale)
         {
             Eina.Log.Debug("function efl_gfx_image_smooth_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetSmoothScale(smooth_scale);
+                    ((Image)ws.Target).SetSmoothScale(smooth_scale);
                 }
                 catch (Exception e)
                 {
@@ -4719,13 +4417,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Efl.Gfx.ImageScaleType scale_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageScaleType _ret_var = default(Efl.Gfx.ImageScaleType);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetScaleType();
+                    _ret_var = ((Image)ws.Target).GetScaleType();
                 }
                 catch (Exception e)
                 {
@@ -4755,13 +4453,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void scale_type_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageScaleType scale_type)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetScaleType(scale_type);
+                    ((Image)ws.Target).SetScaleType(scale_type);
                 }
                 catch (Exception e)
                 {
@@ -4790,13 +4488,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static double ratio_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_ratio_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetRatio();
+                    _ret_var = ((Image)ws.Target).GetRatio();
                 }
                 catch (Exception e)
                 {
@@ -4826,13 +4524,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void border_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_image_border_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((Image)wrapper).GetBorder(out l, out r, out t, out b);
+                    ((Image)ws.Target).GetBorder(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -4861,13 +4559,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void border_set(System.IntPtr obj, System.IntPtr pd, int l, int r, int t, int b)
         {
             Eina.Log.Debug("function efl_gfx_image_border_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Image)wrapper).SetBorder(l, r, t, b);
+                    ((Image)ws.Target).SetBorder(l, r, t, b);
                 }
                 catch (Exception e)
                 {
@@ -4896,13 +4594,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static double border_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_border_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetBorderScale();
+                    _ret_var = ((Image)ws.Target).GetBorderScale();
                 }
                 catch (Exception e)
                 {
@@ -4932,13 +4630,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void border_scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_image_border_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetBorderScale(scale);
+                    ((Image)ws.Target).SetBorderScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -4967,13 +4665,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Efl.Gfx.BorderFillMode border_center_fill_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_border_center_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.BorderFillMode _ret_var = default(Efl.Gfx.BorderFillMode);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetBorderCenterFill();
+                    _ret_var = ((Image)ws.Target).GetBorderCenterFill();
                 }
                 catch (Exception e)
                 {
@@ -5003,13 +4701,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void border_center_fill_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.BorderFillMode fill)
         {
             Eina.Log.Debug("function efl_gfx_image_border_center_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetBorderCenterFill(fill);
+                    ((Image)ws.Target).SetBorderCenterFill(fill);
                 }
                 catch (Exception e)
                 {
@@ -5038,13 +4736,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Size2D.NativeStruct image_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetImageSize();
+                    _ret_var = ((Image)ws.Target).GetImageSize();
                 }
                 catch (Exception e)
                 {
@@ -5074,13 +4772,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Efl.Gfx.ImageContentHint content_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_content_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageContentHint _ret_var = default(Efl.Gfx.ImageContentHint);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetContentHint();
+                    _ret_var = ((Image)ws.Target).GetContentHint();
                 }
                 catch (Exception e)
                 {
@@ -5110,13 +4808,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void content_hint_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageContentHint hint)
         {
             Eina.Log.Debug("function efl_gfx_image_content_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetContentHint(hint);
+                    ((Image)ws.Target).SetContentHint(hint);
                 }
                 catch (Exception e)
                 {
@@ -5145,13 +4843,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Efl.Gfx.ImageScaleHint scale_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageScaleHint _ret_var = default(Efl.Gfx.ImageScaleHint);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetScaleHint();
+                    _ret_var = ((Image)ws.Target).GetScaleHint();
                 }
                 catch (Exception e)
                 {
@@ -5181,13 +4879,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void scale_hint_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageScaleHint hint)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetScaleHint(hint);
+                    ((Image)ws.Target).SetScaleHint(hint);
                 }
                 catch (Exception e)
                 {
@@ -5216,13 +4914,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Error image_load_error_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_error_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetImageLoadError();
+                    _ret_var = ((Image)ws.Target).GetImageLoadError();
                 }
                 catch (Exception e)
                 {
@@ -5252,13 +4950,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Size2D.NativeStruct load_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadSize();
+                    _ret_var = ((Image)ws.Target).GetLoadSize();
                 }
                 catch (Exception e)
                 {
@@ -5288,14 +4986,14 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void load_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((Image)wrapper).SetLoadSize(_in_size);
+                    ((Image)ws.Target).SetLoadSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -5324,13 +5022,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static double load_dpi_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_dpi_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadDpi();
+                    _ret_var = ((Image)ws.Target).GetLoadDpi();
                 }
                 catch (Exception e)
                 {
@@ -5360,13 +5058,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void load_dpi_set(System.IntPtr obj, System.IntPtr pd, double dpi)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_dpi_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetLoadDpi(dpi);
+                    ((Image)ws.Target).SetLoadDpi(dpi);
                 }
                 catch (Exception e)
                 {
@@ -5395,13 +5093,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool load_region_support_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_support_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadRegionSupport();
+                    _ret_var = ((Image)ws.Target).GetLoadRegionSupport();
                 }
                 catch (Exception e)
                 {
@@ -5431,13 +5129,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Rect.NativeStruct load_region_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadRegion();
+                    _ret_var = ((Image)ws.Target).GetLoadRegion();
                 }
                 catch (Exception e)
                 {
@@ -5467,14 +5165,14 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void load_region_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct region)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_region_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_region = region;
                             
                 try
                 {
-                    ((Image)wrapper).SetLoadRegion(_in_region);
+                    ((Image)ws.Target).SetLoadRegion(_in_region);
                 }
                 catch (Exception e)
                 {
@@ -5503,13 +5201,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool load_orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_orientation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadOrientation();
+                    _ret_var = ((Image)ws.Target).GetLoadOrientation();
                 }
                 catch (Exception e)
                 {
@@ -5539,13 +5237,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void load_orientation_set(System.IntPtr obj, System.IntPtr pd, bool enable)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_orientation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetLoadOrientation(enable);
+                    ((Image)ws.Target).SetLoadOrientation(enable);
                 }
                 catch (Exception e)
                 {
@@ -5574,13 +5272,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static int load_scale_down_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_scale_down_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadScaleDown();
+                    _ret_var = ((Image)ws.Target).GetLoadScaleDown();
                 }
                 catch (Exception e)
                 {
@@ -5610,13 +5308,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void load_scale_down_set(System.IntPtr obj, System.IntPtr pd, int div)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_scale_down_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetLoadScaleDown(div);
+                    ((Image)ws.Target).SetLoadScaleDown(div);
                 }
                 catch (Exception e)
                 {
@@ -5645,13 +5343,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool load_skip_header_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_skip_header_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetLoadSkipHeader();
+                    _ret_var = ((Image)ws.Target).GetLoadSkipHeader();
                 }
                 catch (Exception e)
                 {
@@ -5681,13 +5379,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void load_skip_header_set(System.IntPtr obj, System.IntPtr pd, bool skip)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_skip_header_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetLoadSkipHeader(skip);
+                    ((Image)ws.Target).SetLoadSkipHeader(skip);
                 }
                 catch (Exception e)
                 {
@@ -5716,13 +5414,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void load_async_start(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_async_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Image)wrapper).LoadAsyncStart();
+                    ((Image)ws.Target).LoadAsyncStart();
                 }
                 catch (Exception e)
                 {
@@ -5751,13 +5449,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void load_async_cancel(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_controller_load_async_cancel was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Image)wrapper).LoadAsyncCancel();
+                    ((Image)ws.Target).LoadAsyncCancel();
                 }
                 catch (Exception e)
                 {
@@ -5776,6 +5474,77 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static efl_gfx_image_load_controller_load_async_cancel_delegate efl_gfx_image_load_controller_load_async_cancel_static_delegate;
 
         
+        private delegate Efl.Gfx.ImageOrientation efl_gfx_image_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.Gfx.ImageOrientation efl_gfx_image_orientation_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_get_api_delegate> efl_gfx_image_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_get_api_delegate>(Module, "efl_gfx_image_orientation_get");
+
+        private static Efl.Gfx.ImageOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_gfx_image_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Gfx.ImageOrientation _ret_var = default(Efl.Gfx.ImageOrientation);
+                try
+                {
+                    _ret_var = ((Image)ws.Target).GetOrientation();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_gfx_image_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_gfx_image_orientation_get_delegate efl_gfx_image_orientation_get_static_delegate;
+
+        
+        private delegate void efl_gfx_image_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Gfx.ImageOrientation dir);
+
+        
+        public delegate void efl_gfx_image_orientation_set_api_delegate(System.IntPtr obj,  Efl.Gfx.ImageOrientation dir);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_set_api_delegate> efl_gfx_image_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_image_orientation_set_api_delegate>(Module, "efl_gfx_image_orientation_set");
+
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageOrientation dir)
+        {
+            Eina.Log.Debug("function efl_gfx_image_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Image)ws.Target).SetOrientation(dir);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_gfx_image_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+            }
+        }
+
+        private static efl_gfx_image_orientation_set_delegate efl_gfx_image_orientation_set_static_delegate;
+
+        
         private delegate Eina.Size2D.NativeStruct efl_gfx_view_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
@@ -5786,13 +5555,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Size2D.NativeStruct view_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_view_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetViewSize();
+                    _ret_var = ((Image)ws.Target).GetViewSize();
                 }
                 catch (Exception e)
                 {
@@ -5822,14 +5591,14 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void view_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_view_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((Image)wrapper).SetViewSize(_in_size);
+                    ((Image)ws.Target).SetViewSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -5858,13 +5627,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool calc_auto_update_hints_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_auto_update_hints_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetCalcAutoUpdateHints();
+                    _ret_var = ((Image)ws.Target).GetCalcAutoUpdateHints();
                 }
                 catch (Exception e)
                 {
@@ -5894,13 +5663,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void calc_auto_update_hints_set(System.IntPtr obj, System.IntPtr pd, bool update)
         {
             Eina.Log.Debug("function efl_layout_calc_auto_update_hints_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetCalcAutoUpdateHints(update);
+                    ((Image)ws.Target).SetCalcAutoUpdateHints(update);
                 }
                 catch (Exception e)
                 {
@@ -5929,14 +5698,14 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Size2D.NativeStruct calc_size_min(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct restricted)
         {
             Eina.Log.Debug("function efl_layout_calc_size_min was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_restricted = restricted;
                             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Image)wrapper).CalcSizeMin(_in_restricted);
+                    _ret_var = ((Image)ws.Target).CalcSizeMin(_in_restricted);
                 }
                 catch (Exception e)
                 {
@@ -5966,13 +5735,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Rect.NativeStruct calc_parts_extends(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_parts_extends was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Image)wrapper).CalcPartsExtends();
+                    _ret_var = ((Image)ws.Target).CalcPartsExtends();
                 }
                 catch (Exception e)
                 {
@@ -6002,13 +5771,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static int calc_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Image)wrapper).FreezeCalc();
+                    _ret_var = ((Image)ws.Target).FreezeCalc();
                 }
                 catch (Exception e)
                 {
@@ -6038,13 +5807,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static int calc_thaw(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_thaw was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Image)wrapper).ThawCalc();
+                    _ret_var = ((Image)ws.Target).ThawCalc();
                 }
                 catch (Exception e)
                 {
@@ -6074,13 +5843,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void calc_force(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_force was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Image)wrapper).CalcForce();
+                    ((Image)ws.Target).CalcForce();
                 }
                 catch (Exception e)
                 {
@@ -6109,13 +5878,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Size2D.NativeStruct group_size_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_group_size_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetGroupSizeMin();
+                    _ret_var = ((Image)ws.Target).GetGroupSizeMin();
                 }
                 catch (Exception e)
                 {
@@ -6145,13 +5914,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static Eina.Size2D.NativeStruct group_size_max_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_group_size_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetGroupSizeMax();
+                    _ret_var = ((Image)ws.Target).GetGroupSizeMax();
                 }
                 catch (Exception e)
                 {
@@ -6181,13 +5950,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static System.String group_data_get(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_layout_group_data_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetGroupData(key);
+                    _ret_var = ((Image)ws.Target).GetGroupData(key);
                 }
                 catch (Exception e)
                 {
@@ -6217,13 +5986,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool part_exist_get(System.IntPtr obj, System.IntPtr pd, System.String part)
         {
             Eina.Log.Debug("function efl_layout_group_part_exist_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetPartExist(part);
+                    _ret_var = ((Image)ws.Target).GetPartExist(part);
                 }
                 catch (Exception e)
                 {
@@ -6253,13 +6022,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void message_send(System.IntPtr obj, System.IntPtr pd, int id, Eina.ValueNative msg)
         {
             Eina.Log.Debug("function efl_layout_signal_message_send was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Image)wrapper).MessageSend(id, msg);
+                    ((Image)ws.Target).MessageSend(id, msg);
                 }
                 catch (Exception e)
                 {
@@ -6288,14 +6057,14 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool signal_callback_add(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_layout_signal_callback_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                             EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb);
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).AddSignalCallback(emission, source, func_wrapper.ManagedCb);
+                    _ret_var = ((Image)ws.Target).AddSignalCallback(emission, source, func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -6325,14 +6094,14 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool signal_callback_del(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_layout_signal_callback_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                             EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb);
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).DelSignalCallback(emission, source, func_wrapper.ManagedCb);
+                    _ret_var = ((Image)ws.Target).DelSignalCallback(emission, source, func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -6362,13 +6131,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void signal_emit(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source)
         {
             Eina.Log.Debug("function efl_layout_signal_emit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Image)wrapper).EmitSignal(emission, source);
+                    ((Image)ws.Target).EmitSignal(emission, source);
                 }
                 catch (Exception e)
                 {
@@ -6397,13 +6166,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void signal_process(System.IntPtr obj, System.IntPtr pd, bool recurse)
         {
             Eina.Log.Debug("function efl_layout_signal_process was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SignalProcess(recurse);
+                    ((Image)ws.Target).SignalProcess(recurse);
                 }
                 catch (Exception e)
                 {
@@ -6421,6 +6190,111 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
 
         private static efl_layout_signal_process_delegate efl_layout_signal_process_static_delegate;
 
+        
+        private delegate void efl_ui_clickable_press_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_press_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate> efl_ui_clickable_press_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate>(Module, "efl_ui_clickable_press");
+
+        private static void press(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_press was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Image)ws.Target).Press(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_press_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_press_delegate efl_ui_clickable_press_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_unpress_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_unpress_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate> efl_ui_clickable_unpress_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate>(Module, "efl_ui_clickable_unpress");
+
+        private static void unpress(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_unpress was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Image)ws.Target).Unpress(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_unpress_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_unpress_delegate efl_ui_clickable_unpress_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_button_state_reset_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_button_state_reset_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate> efl_ui_clickable_button_state_reset_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate>(Module, "efl_ui_clickable_button_state_reset");
+
+        private static void button_state_reset(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_button_state_reset was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Image)ws.Target).ResetButtonState(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_button_state_reset_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_button_state_reset_delegate efl_ui_clickable_button_state_reset_static_delegate;
+
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_draggable_drag_target_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -6432,13 +6306,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static bool drag_target_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_draggable_drag_target_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Image)wrapper).GetDragTarget();
+                    _ret_var = ((Image)ws.Target).GetDragTarget();
                 }
                 catch (Exception e)
                 {
@@ -6468,13 +6342,13 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
         private static void drag_target_set(System.IntPtr obj, System.IntPtr pd, bool set)
         {
             Eina.Log.Debug("function efl_ui_draggable_drag_target_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Image)wrapper).SetDragTarget(set);
+                    ((Image)ws.Target).SetDragTarget(set);
                 }
                 catch (Exception e)
                 {
@@ -6492,7 +6366,7 @@ public class Image : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IFile,Efl.IOrientation,E
 
         private static efl_ui_draggable_drag_target_set_delegate efl_ui_draggable_drag_target_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -6521,12 +6395,16 @@ public struct ImageProgress
         this.Total = Total;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ImageProgress(IntPtr ptr)
     {
         var tmp = (ImageProgress.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ImageProgress.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ImageProgress.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -6555,6 +6433,8 @@ public struct ImageProgress
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -6582,12 +6462,16 @@ public struct ImageError
         this.Open_error = Open_error;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ImageError(IntPtr ptr)
     {
         var tmp = (ImageError.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ImageError.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ImageError.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -6616,6 +6500,8 @@ public struct ImageError
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 501319a..be1ddc8 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI image factory class</summary>
 [Efl.Ui.ImageFactory.NativeMethods]
-public class ImageFactory : Efl.Ui.CachingFactory, Efl.Eo.IWrapper
+public class ImageFactory : Efl.Ui.CachingFactory
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class ImageFactory : Efl.Ui.CachingFactory, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ImageFactory(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ImageFactory"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class ImageFactory : Efl.Ui.CachingFactory, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.ImageFactory.efl_ui_image_factory_class_get();
@@ -111,9 +84,9 @@ public class ImageFactory : Efl.Ui.CachingFactory, Efl.Eo.IWrapper
             return Efl.Ui.ImageFactory.efl_ui_image_factory_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 19066af..6400bde 100644 (file)
@@ -21,7 +21,7 @@ public class ImageZoomableDownloadErrorEvt_Args : EventArgs {
 }
 /// <summary>Elementary Image Zoomable class</summary>
 [Efl.Ui.ImageZoomable.NativeMethods]
-public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Efl.Ui.IScrollableInteractive,Efl.Ui.IScrollbar,Efl.Ui.IZoom
+public class ImageZoomable : Efl.Ui.Image, Efl.Ui.IScrollable, Efl.Ui.IScrollableInteractive, Efl.Ui.IScrollbar, Efl.Ui.IZoom
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -60,7 +60,7 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ImageZoomable(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ImageZoomable"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -71,33 +71,6 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when photocam got pressed</summary>
     public event EventHandler PressEvt
     {
@@ -105,10 +78,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -158,10 +130,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -211,10 +182,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -264,10 +234,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -317,10 +286,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -370,10 +338,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -423,13 +390,12 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ImageZoomableDownloadProgressEvt_Args args = new Efl.Ui.ImageZoomableDownloadProgressEvt_Args();
+                        Efl.Ui.ImageZoomableDownloadProgressEvt_Args args = new Efl.Ui.ImageZoomableDownloadProgressEvt_Args();
                         args.arg = default(Elm.Photocam.Progress);
                         try
                         {
@@ -485,10 +451,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -538,13 +503,12 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ImageZoomableDownloadErrorEvt_Args args = new Efl.Ui.ImageZoomableDownloadErrorEvt_Args();
+                        Efl.Ui.ImageZoomableDownloadErrorEvt_Args args = new Efl.Ui.ImageZoomableDownloadErrorEvt_Args();
                         args.arg = default(Elm.Photocam.Error);
                         try
                         {
@@ -600,10 +564,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -653,10 +616,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -706,10 +668,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -759,10 +720,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -812,10 +772,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -865,10 +824,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -918,10 +876,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -971,10 +928,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1024,10 +980,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1077,10 +1032,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1130,10 +1084,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1183,10 +1136,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1236,10 +1188,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1289,10 +1240,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1342,10 +1292,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1395,13 +1344,12 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
+                        Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1457,13 +1405,12 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
+                        Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1519,13 +1466,12 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
+                        Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1581,10 +1527,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1634,10 +1579,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1687,13 +1631,12 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
+                        Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1749,13 +1692,12 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
+                        Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1811,10 +1753,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1864,10 +1805,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1917,10 +1857,9 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2241,77 +2180,77 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Get the gesture state for photocam.
-/// This gets the current gesture state for the photocam object.</summary>
-/// <value>The gesture state.</value>
+    /// This gets the current gesture state for the photocam object.</summary>
+    /// <value>The gesture state.</value>
     public bool GestureEnabled {
         get { return GetGestureEnabled(); }
         set { SetGestureEnabled(value); }
     }
     /// <summary>Get the region of the image that is currently shown
-/// See also <see cref="Efl.Ui.ImageZoomable.SetImageRegion"/>.</summary>
-/// <value>The region in the original image pixels.</value>
+    /// See also <see cref="Efl.Ui.ImageZoomable.SetImageRegion"/>.</summary>
+    /// <value>The region in the original image pixels.</value>
     public Eina.Rect ImageRegion {
         get { return GetImageRegion(); }
         set { SetImageRegion(value); }
     }
     /// <summary>The content position</summary>
-/// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
+    /// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
     public Eina.Position2D ContentPos {
         get { return GetContentPos(); }
         set { SetContentPos(value); }
     }
     /// <summary>The content size</summary>
-/// <value>The content size in pixels.</value>
+    /// <value>The content size in pixels.</value>
     public Eina.Size2D ContentSize {
         get { return GetContentSize(); }
     }
     /// <summary>The viewport geometry</summary>
-/// <value>It is absolute geometry.</value>
+    /// <value>It is absolute geometry.</value>
     public Eina.Rect ViewportGeometry {
         get { return GetViewportGeometry(); }
     }
     /// <summary>Freeze property This function will freeze scrolling movement (by input of a user). Unlike efl_ui_scrollable_movement_block_set, this function freezes bidirectionally. If you want to freeze in only one direction, See <see cref="Efl.Ui.IScrollableInteractive.SetMovementBlock"/>.</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     public bool ScrollFreeze {
         get { return GetScrollFreeze(); }
         set { SetScrollFreeze(value); }
     }
     /// <summary>Hold property When hold turns on, it only scrolls by holding action.</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     public bool ScrollHold {
         get { return GetScrollHold(); }
         set { SetScrollHold(value); }
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
+    /// <value>Which axis (or axes) to block</value>
     public Efl.Ui.ScrollBlock MovementBlock {
         get { return GetMovementBlock(); }
         set { SetMovementBlock(value); }
     }
     /// <summary>Control the step size
-/// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
-/// <value>The step size in pixels</value>
+    /// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
+    /// <value>The step size in pixels</value>
     public Eina.Position2D StepSize {
         get { return GetStepSize(); }
         set { SetStepSize(value); }
     }
     /// <summary>This sets the zoom animation state to on or off for zoomable. The default is off. When <c>paused</c> is <c>true</c>, it will stop zooming using animation on zoom level changes and change instantly, stopping any existing animations that are running.</summary>
-/// <value>The paused state.</value>
+    /// <value>The paused state.</value>
     public bool ZoomAnimation {
         get { return GetZoomAnimation(); }
         set { SetZoomAnimation(value); }
     }
     /// <summary>Get the zoom level of the photo
-/// This returns the current zoom level of the zoomable object. Note that if you set the fill mode to other than #EFL_UI_ZOOM_MODE_MANUAL (which is the default), the zoom level may be changed at any time by the  zoomable object itself to account for photo size and zoomable viewport size.</summary>
-/// <value>The zoom level to set</value>
+    /// This returns the current zoom level of the zoomable object. Note that if you set the fill mode to other than #EFL_UI_ZOOM_MODE_MANUAL (which is the default), the zoom level may be changed at any time by the  zoomable object itself to account for photo size and zoomable viewport size.</summary>
+    /// <value>The zoom level to set</value>
     public double ZoomLevel {
         get { return GetZoomLevel(); }
         set { SetZoomLevel(value); }
     }
     /// <summary>Get the zoom mode
-/// This gets the current zoom mode of the zoomable object.</summary>
-/// <value>The zoom mode.</value>
+    /// This gets the current zoom mode of the zoomable object.</summary>
+    /// <value>The zoom mode.</value>
     public Efl.Ui.ZoomMode ZoomMode {
         get { return GetZoomMode(); }
         set { SetZoomMode(value); }
@@ -2702,7 +2641,7 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
             return Efl.Ui.ImageZoomable.efl_ui_image_zoomable_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_image_zoomable_gesture_enabled_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -2715,13 +2654,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static bool gesture_enabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_image_zoomable_gesture_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetGestureEnabled();
+                    _ret_var = ((ImageZoomable)ws.Target).GetGestureEnabled();
                 }
                 catch (Exception e)
                 {
@@ -2751,13 +2690,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void gesture_enabled_set(System.IntPtr obj, System.IntPtr pd, bool gesture)
         {
             Eina.Log.Debug("function efl_ui_image_zoomable_gesture_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageZoomable)wrapper).SetGestureEnabled(gesture);
+                    ((ImageZoomable)ws.Target).SetGestureEnabled(gesture);
                 }
                 catch (Exception e)
                 {
@@ -2786,13 +2725,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static Eina.Rect.NativeStruct image_region_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_image_zoomable_image_region_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetImageRegion();
+                    _ret_var = ((ImageZoomable)ws.Target).GetImageRegion();
                 }
                 catch (Exception e)
                 {
@@ -2822,14 +2761,14 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void image_region_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct region)
         {
             Eina.Log.Debug("function efl_ui_image_zoomable_image_region_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_region = region;
                             
                 try
                 {
-                    ((ImageZoomable)wrapper).SetImageRegion(_in_region);
+                    ((ImageZoomable)ws.Target).SetImageRegion(_in_region);
                 }
                 catch (Exception e)
                 {
@@ -2858,13 +2797,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static Eina.Position2D.NativeStruct content_pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetContentPos();
+                    _ret_var = ((ImageZoomable)ws.Target).GetContentPos();
                 }
                 catch (Exception e)
                 {
@@ -2894,14 +2833,14 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void content_pos_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((ImageZoomable)wrapper).SetContentPos(_in_pos);
+                    ((ImageZoomable)ws.Target).SetContentPos(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -2930,13 +2869,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static Eina.Size2D.NativeStruct content_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetContentSize();
+                    _ret_var = ((ImageZoomable)ws.Target).GetContentSize();
                 }
                 catch (Exception e)
                 {
@@ -2966,13 +2905,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static Eina.Rect.NativeStruct viewport_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_viewport_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetViewportGeometry();
+                    _ret_var = ((ImageZoomable)ws.Target).GetViewportGeometry();
                 }
                 catch (Exception e)
                 {
@@ -3002,13 +2941,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void bounce_enabled_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((ImageZoomable)wrapper).GetBounceEnabled(out horiz, out vert);
+                    ((ImageZoomable)ws.Target).GetBounceEnabled(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -3037,13 +2976,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void bounce_enabled_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ImageZoomable)wrapper).SetBounceEnabled(horiz, vert);
+                    ((ImageZoomable)ws.Target).SetBounceEnabled(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -3072,13 +3011,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static bool scroll_freeze_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetScrollFreeze();
+                    _ret_var = ((ImageZoomable)ws.Target).GetScrollFreeze();
                 }
                 catch (Exception e)
                 {
@@ -3108,13 +3047,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void scroll_freeze_set(System.IntPtr obj, System.IntPtr pd, bool freeze)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageZoomable)wrapper).SetScrollFreeze(freeze);
+                    ((ImageZoomable)ws.Target).SetScrollFreeze(freeze);
                 }
                 catch (Exception e)
                 {
@@ -3143,13 +3082,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static bool scroll_hold_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetScrollHold();
+                    _ret_var = ((ImageZoomable)ws.Target).GetScrollHold();
                 }
                 catch (Exception e)
                 {
@@ -3179,13 +3118,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void scroll_hold_set(System.IntPtr obj, System.IntPtr pd, bool hold)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageZoomable)wrapper).SetScrollHold(hold);
+                    ((ImageZoomable)ws.Target).SetScrollHold(hold);
                 }
                 catch (Exception e)
                 {
@@ -3214,13 +3153,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void looping_get(System.IntPtr obj, System.IntPtr pd, out bool loop_h, out bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         loop_h = default(bool);        loop_v = default(bool);                            
                 try
                 {
-                    ((ImageZoomable)wrapper).GetLooping(out loop_h, out loop_v);
+                    ((ImageZoomable)ws.Target).GetLooping(out loop_h, out loop_v);
                 }
                 catch (Exception e)
                 {
@@ -3249,13 +3188,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void looping_set(System.IntPtr obj, System.IntPtr pd, bool loop_h, bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ImageZoomable)wrapper).SetLooping(loop_h, loop_v);
+                    ((ImageZoomable)ws.Target).SetLooping(loop_h, loop_v);
                 }
                 catch (Exception e)
                 {
@@ -3284,13 +3223,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static Efl.Ui.ScrollBlock movement_block_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ScrollBlock _ret_var = default(Efl.Ui.ScrollBlock);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetMovementBlock();
+                    _ret_var = ((ImageZoomable)ws.Target).GetMovementBlock();
                 }
                 catch (Exception e)
                 {
@@ -3320,13 +3259,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void movement_block_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollBlock block)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageZoomable)wrapper).SetMovementBlock(block);
+                    ((ImageZoomable)ws.Target).SetMovementBlock(block);
                 }
                 catch (Exception e)
                 {
@@ -3355,13 +3294,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void gravity_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((ImageZoomable)wrapper).GetGravity(out x, out y);
+                    ((ImageZoomable)ws.Target).GetGravity(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -3390,13 +3329,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void gravity_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ImageZoomable)wrapper).SetGravity(x, y);
+                    ((ImageZoomable)ws.Target).SetGravity(x, y);
                 }
                 catch (Exception e)
                 {
@@ -3425,13 +3364,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void match_content_set(System.IntPtr obj, System.IntPtr pd, bool w, bool h)
         {
             Eina.Log.Debug("function efl_ui_scrollable_match_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ImageZoomable)wrapper).SetMatchContent(w, h);
+                    ((ImageZoomable)ws.Target).SetMatchContent(w, h);
                 }
                 catch (Exception e)
                 {
@@ -3460,13 +3399,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static Eina.Position2D.NativeStruct step_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetStepSize();
+                    _ret_var = ((ImageZoomable)ws.Target).GetStepSize();
                 }
                 catch (Exception e)
                 {
@@ -3496,14 +3435,14 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void step_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct step)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_step = step;
                             
                 try
                 {
-                    ((ImageZoomable)wrapper).SetStepSize(_in_step);
+                    ((ImageZoomable)ws.Target).SetStepSize(_in_step);
                 }
                 catch (Exception e)
                 {
@@ -3532,14 +3471,14 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void scroll(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool animation)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                     
                 try
                 {
-                    ((ImageZoomable)wrapper).Scroll(_in_rect, animation);
+                    ((ImageZoomable)ws.Target).Scroll(_in_rect, animation);
                 }
                 catch (Exception e)
                 {
@@ -3568,13 +3507,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void bar_mode_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.ScrollbarMode hbar, out Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         hbar = default(Efl.Ui.ScrollbarMode);        vbar = default(Efl.Ui.ScrollbarMode);                            
                 try
                 {
-                    ((ImageZoomable)wrapper).GetBarMode(out hbar, out vbar);
+                    ((ImageZoomable)ws.Target).GetBarMode(out hbar, out vbar);
                 }
                 catch (Exception e)
                 {
@@ -3603,13 +3542,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void bar_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollbarMode hbar, Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ImageZoomable)wrapper).SetBarMode(hbar, vbar);
+                    ((ImageZoomable)ws.Target).SetBarMode(hbar, vbar);
                 }
                 catch (Exception e)
                 {
@@ -3638,13 +3577,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void bar_size_get(System.IntPtr obj, System.IntPtr pd, out double width, out double height)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         width = default(double);        height = default(double);                            
                 try
                 {
-                    ((ImageZoomable)wrapper).GetBarSize(out width, out height);
+                    ((ImageZoomable)ws.Target).GetBarSize(out width, out height);
                 }
                 catch (Exception e)
                 {
@@ -3673,13 +3612,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void bar_position_get(System.IntPtr obj, System.IntPtr pd, out double posx, out double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         posx = default(double);        posy = default(double);                            
                 try
                 {
-                    ((ImageZoomable)wrapper).GetBarPosition(out posx, out posy);
+                    ((ImageZoomable)ws.Target).GetBarPosition(out posx, out posy);
                 }
                 catch (Exception e)
                 {
@@ -3708,13 +3647,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void bar_position_set(System.IntPtr obj, System.IntPtr pd, double posx, double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ImageZoomable)wrapper).SetBarPosition(posx, posy);
+                    ((ImageZoomable)ws.Target).SetBarPosition(posx, posy);
                 }
                 catch (Exception e)
                 {
@@ -3743,13 +3682,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void bar_visibility_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_visibility_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ImageZoomable)wrapper).UpdateBarVisibility();
+                    ((ImageZoomable)ws.Target).UpdateBarVisibility();
                 }
                 catch (Exception e)
                 {
@@ -3778,13 +3717,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static bool zoom_animation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_zoom_animation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetZoomAnimation();
+                    _ret_var = ((ImageZoomable)ws.Target).GetZoomAnimation();
                 }
                 catch (Exception e)
                 {
@@ -3814,13 +3753,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void zoom_animation_set(System.IntPtr obj, System.IntPtr pd, bool paused)
         {
             Eina.Log.Debug("function efl_ui_zoom_animation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageZoomable)wrapper).SetZoomAnimation(paused);
+                    ((ImageZoomable)ws.Target).SetZoomAnimation(paused);
                 }
                 catch (Exception e)
                 {
@@ -3849,13 +3788,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static double zoom_level_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_zoom_level_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetZoomLevel();
+                    _ret_var = ((ImageZoomable)ws.Target).GetZoomLevel();
                 }
                 catch (Exception e)
                 {
@@ -3885,13 +3824,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void zoom_level_set(System.IntPtr obj, System.IntPtr pd, double zoom)
         {
             Eina.Log.Debug("function efl_ui_zoom_level_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageZoomable)wrapper).SetZoomLevel(zoom);
+                    ((ImageZoomable)ws.Target).SetZoomLevel(zoom);
                 }
                 catch (Exception e)
                 {
@@ -3920,13 +3859,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static Efl.Ui.ZoomMode zoom_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_zoom_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ZoomMode _ret_var = default(Efl.Ui.ZoomMode);
                 try
                 {
-                    _ret_var = ((ImageZoomable)wrapper).GetZoomMode();
+                    _ret_var = ((ImageZoomable)ws.Target).GetZoomMode();
                 }
                 catch (Exception e)
                 {
@@ -3956,13 +3895,13 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
         private static void zoom_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ZoomMode mode)
         {
             Eina.Log.Debug("function efl_ui_zoom_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ImageZoomable)wrapper).SetZoomMode(mode);
+                    ((ImageZoomable)ws.Target).SetZoomMode(mode);
                 }
                 catch (Exception e)
                 {
@@ -3980,7 +3919,7 @@ public class ImageZoomable : Efl.Ui.Image, Efl.Eo.IWrapper,Efl.Ui.IScrollable,Ef
 
         private static efl_ui_zoom_mode_set_delegate efl_ui_zoom_mode_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -3997,12 +3936,16 @@ public struct Error
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Error(IntPtr ptr)
     {
         var tmp = (Error.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Error.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Error.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -4024,6 +3967,8 @@ public struct Error
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -4039,12 +3984,16 @@ public struct Progress
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Progress(IntPtr ptr)
     {
         var tmp = (Progress.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Progress.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Progress.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -4066,6 +4015,8 @@ public struct Progress
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index dbc15a7..79d0a28 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary photocom pan class</summary>
 [Efl.Ui.ImageZoomablePan.NativeMethods]
-public class ImageZoomablePan : Efl.Ui.Pan, Efl.Eo.IWrapper
+public class ImageZoomablePan : Efl.Ui.Pan
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class ImageZoomablePan : Efl.Ui.Pan, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ImageZoomablePan(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ImageZoomablePan"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class ImageZoomablePan : Efl.Ui.Pan, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.ImageZoomablePan.efl_ui_image_zoomable_pan_class_get();
@@ -105,9 +78,9 @@ public class ImageZoomablePan : Efl.Ui.Pan, Efl.Eo.IWrapper
             return Efl.Ui.ImageZoomablePan.efl_ui_image_zoomable_pan_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index a86ccae..2d7018e 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Item abstract class for pack widget. All item have to be inherited from this class.</summary>
 [Efl.Ui.Item.NativeMethods]
-public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui.ISelectable
+public abstract class Item : Efl.Ui.LayoutBase, Efl.Ui.IClickable, Efl.Ui.ISelectable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Item(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class ItemRealized : Item
@@ -68,47 +68,20 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
+    /// <summary>Called when object is in sequence pressed and unpressed, by the primary button</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedEvt_Args> ClickedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedEvt_Args args = new Efl.Ui.IClickableClickedEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -122,7 +95,7 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
                 };
 
                 string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -131,90 +104,46 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
     ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
+    public void OnClickedEvt(Efl.Ui.IClickableClickedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
+    /// <summary>Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedAnyEvt_Args> ClickedAnyEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedAnyEvt_Args args = new Efl.Ui.IClickableClickedAnyEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -227,8 +156,8 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
                     }
                 };
 
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -236,94 +165,47 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         {
             lock (eventLock)
             {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
+    ///<summary>Method to raise event ClickedAnyEvt.</summary>
+    public void OnClickedAnyEvt(Efl.Ui.IClickableClickedAnyEvt_Args e)
     {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        var key = "_EFL_UI_EVENT_CLICKED_ANY";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-
-        remove
+        finally
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.FreeHGlobal(info);
         }
     }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is pressed</summary>
+    /// <summary>Called when the object is pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -337,7 +219,7 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
                 };
 
                 string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -346,7 +228,7 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -354,31 +236,37 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
     public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object is no longer pressed</summary>
+    /// <summary>Called when the object is no longer pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -392,7 +280,7 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
                 };
 
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -401,7 +289,7 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -409,31 +297,37 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
     public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object receives a long press</summary>
+    /// <summary>Called when the object receives a long press, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -447,7 +341,7 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
                 };
 
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -456,7 +350,7 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -464,69 +358,23 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
     public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
         {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-
-        remove
+        finally
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.FreeHGlobal(info);
         }
     }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
     /// <summary>Called when selected</summary>
     public event EventHandler<Efl.Ui.ISelectableItemSelectedEvt_Args> ItemSelectedEvt
     {
@@ -534,13 +382,12 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
+                        Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -589,13 +436,12 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
+                        Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -644,10 +490,9 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -697,10 +542,9 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -750,10 +594,9 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -803,10 +646,9 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -856,10 +698,9 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -909,10 +750,9 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -972,6 +812,26 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
                                  Efl.Ui.Item.NativeMethods.efl_ui_item_selected_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),select);
         Eina.Error.RaiseIfUnhandledException();
                          }
+    /// <summary>Change internal states that a button got pressed.
+    /// When the button is already pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Press(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_press_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Change internal states that a button got unpressed.
+    /// When the button is not pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Unpress(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_unpress_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>This aborts the internal state after a press call.
+    /// This will stop the timer for longpress. And set the state of the clickable mixin back into the unpressed state.</summary>
+    virtual public void ResetButtonState(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_button_state_reset_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>index number of item from their parent object.</summary>
     public int Index {
         get { return GetIndex(); }
@@ -1027,6 +887,36 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_item_selected_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_item_selected_set_static_delegate) });
             }
 
+            if (efl_ui_clickable_press_static_delegate == null)
+            {
+                efl_ui_clickable_press_static_delegate = new efl_ui_clickable_press_delegate(press);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Press") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_press"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_press_static_delegate) });
+            }
+
+            if (efl_ui_clickable_unpress_static_delegate == null)
+            {
+                efl_ui_clickable_unpress_static_delegate = new efl_ui_clickable_unpress_delegate(unpress);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Unpress") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_unpress"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_unpress_static_delegate) });
+            }
+
+            if (efl_ui_clickable_button_state_reset_static_delegate == null)
+            {
+                efl_ui_clickable_button_state_reset_static_delegate = new efl_ui_clickable_button_state_reset_delegate(button_state_reset);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "ResetButtonState") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_button_state_reset"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_button_state_reset_static_delegate) });
+            }
+
             descs.AddRange(base.GetEoOps(type));
             return descs;
         }
@@ -1037,7 +927,7 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
             return Efl.Ui.Item.efl_ui_item_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_ui_item_index_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1050,13 +940,13 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         private static int index_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_item_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Item)wrapper).GetIndex();
+                    _ret_var = ((Item)ws.Target).GetIndex();
                 }
                 catch (Exception e)
                 {
@@ -1086,13 +976,13 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         private static bool selected_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_item_selected_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Item)wrapper).GetSelected();
+                    _ret_var = ((Item)ws.Target).GetSelected();
                 }
                 catch (Exception e)
                 {
@@ -1122,13 +1012,13 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
         private static void selected_set(System.IntPtr obj, System.IntPtr pd, bool select)
         {
             Eina.Log.Debug("function efl_ui_item_selected_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Item)wrapper).SetSelected(select);
+                    ((Item)ws.Target).SetSelected(select);
                 }
                 catch (Exception e)
                 {
@@ -1146,7 +1036,112 @@ public abstract class Item : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickabl
 
         private static efl_ui_item_selected_set_delegate efl_ui_item_selected_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        
+        private delegate void efl_ui_clickable_press_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_press_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate> efl_ui_clickable_press_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate>(Module, "efl_ui_clickable_press");
+
+        private static void press(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_press was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Item)ws.Target).Press(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_press_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_press_delegate efl_ui_clickable_press_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_unpress_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_unpress_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate> efl_ui_clickable_unpress_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate>(Module, "efl_ui_clickable_unpress");
+
+        private static void unpress(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_unpress was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Item)ws.Target).Unpress(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_unpress_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_unpress_delegate efl_ui_clickable_unpress_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_button_state_reset_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_button_state_reset_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate> efl_ui_clickable_button_state_reset_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate>(Module, "efl_ui_clickable_button_state_reset");
+
+        private static void button_state_reset(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_button_state_reset was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Item)ws.Target).ResetButtonState(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_button_state_reset_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_button_state_reset_delegate efl_ui_clickable_button_state_reset_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -9,16 +9,16 @@ namespace Efl {
 
 namespace Ui {
 
-/// <summary>List Default Item internal content of end part class</summary>
-[Efl.Ui.ListDefaultItemPartEnd.NativeMethods]
-public class ListDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
+/// <summary>Item internal content part class</summary>
+[Efl.Ui.ItemPartContent.NativeMethods]
+public class ItemPartContent : Efl.Ui.LayoutPart, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
     {
         get
         {
-            if (((object)this).GetType() == typeof(ListDefaultItemPartEnd))
+            if (((object)this).GetType() == typeof(ItemPartContent))
             {
                 return GetEflClassStatic();
             }
@@ -30,56 +30,29 @@ public class ListDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
     }
 
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
-        efl_ui_list_default_item_part_end_class_get();
-    /// <summary>Initializes a new instance of the <see cref="ListDefaultItemPartEnd"/> class.</summary>
+        efl_ui_item_part_content_class_get();
+    /// <summary>Initializes a new instance of the <see cref="ItemPartContent"/> class.</summary>
     /// <param name="parent">Parent instance.</param>
-    public ListDefaultItemPartEnd(Efl.Object parent= null
-            ) : base(efl_ui_list_default_item_part_end_class_get(), typeof(ListDefaultItemPartEnd), parent)
+    public ItemPartContent(Efl.Object parent= null
+            ) : base(efl_ui_item_part_content_class_get(), typeof(ItemPartContent), parent)
     {
         FinishInstantiation();
     }
 
-    /// <summary>Initializes a new instance of the <see cref="ListDefaultItemPartEnd"/> class.
+    /// <summary>Initializes a new instance of the <see cref="ItemPartContent"/> class.
     /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
     /// <param name="raw">The native pointer to be wrapped.</param>
-    protected ListDefaultItemPartEnd(System.IntPtr raw) : base(raw)
+    protected ItemPartContent(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
-    /// <summary>Initializes a new instance of the <see cref="ListDefaultItemPartEnd"/> class.
+    /// <summary>Initializes a new instance of the <see cref="ItemPartContent"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
     /// <param name="baseKlass">The pointer to the base native Eo class.</param>
     /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
     /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected ListDefaultItemPartEnd(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
-    {
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
+    protected ItemPartContent(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
     {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Sent after the content is set or unset using the current content object.
@@ -90,13 +63,12 @@ public class ListDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -166,16 +138,16 @@ public class ListDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         return _ret_var;
  }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     private static IntPtr GetEflClassStatic()
     {
-        return Efl.Ui.ListDefaultItemPartEnd.efl_ui_list_default_item_part_end_class_get();
+        return Efl.Ui.ItemPartContent.efl_ui_item_part_content_class_get();
     }
     /// <summary>Wrapper for native methods and virtual method delegates.
     /// For internal use by generated code only.</summary>
@@ -226,10 +198,10 @@ public class ListDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         /// <returns>The native class pointer.</returns>
         public override IntPtr GetEflClass()
         {
-            return Efl.Ui.ListDefaultItemPartEnd.efl_ui_list_default_item_part_end_class_get();
+            return Efl.Ui.ItemPartContent.efl_ui_item_part_content_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -242,13 +214,13 @@ public class ListDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ListDefaultItemPartEnd)wrapper).GetContent();
+                    _ret_var = ((ItemPartContent)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -278,13 +250,13 @@ public class ListDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListDefaultItemPartEnd)wrapper).SetContent(content);
+                    _ret_var = ((ItemPartContent)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -314,13 +286,13 @@ public class ListDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ListDefaultItemPartEnd)wrapper).UnsetContent();
+                    _ret_var = ((ItemPartContent)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -339,7 +311,7 @@ public class ListDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -9,16 +9,16 @@ namespace Efl {
 
 namespace Ui {
 
-/// <summary>Grid Default Item internal content of end part class</summary>
-[Efl.Ui.GridDefaultItemPartEnd.NativeMethods]
-public class GridDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
+/// <summary>Item internal content of extra part class</summary>
+[Efl.Ui.ItemPartExtra.NativeMethods]
+public class ItemPartExtra : Efl.Ui.LayoutPart, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
     {
         get
         {
-            if (((object)this).GetType() == typeof(GridDefaultItemPartEnd))
+            if (((object)this).GetType() == typeof(ItemPartExtra))
             {
                 return GetEflClassStatic();
             }
@@ -30,56 +30,29 @@ public class GridDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
     }
 
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
-        efl_ui_grid_default_item_part_end_class_get();
-    /// <summary>Initializes a new instance of the <see cref="GridDefaultItemPartEnd"/> class.</summary>
+        efl_ui_item_part_extra_class_get();
+    /// <summary>Initializes a new instance of the <see cref="ItemPartExtra"/> class.</summary>
     /// <param name="parent">Parent instance.</param>
-    public GridDefaultItemPartEnd(Efl.Object parent= null
-            ) : base(efl_ui_grid_default_item_part_end_class_get(), typeof(GridDefaultItemPartEnd), parent)
+    public ItemPartExtra(Efl.Object parent= null
+            ) : base(efl_ui_item_part_extra_class_get(), typeof(ItemPartExtra), parent)
     {
         FinishInstantiation();
     }
 
-    /// <summary>Initializes a new instance of the <see cref="GridDefaultItemPartEnd"/> class.
+    /// <summary>Initializes a new instance of the <see cref="ItemPartExtra"/> class.
     /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
     /// <param name="raw">The native pointer to be wrapped.</param>
-    protected GridDefaultItemPartEnd(System.IntPtr raw) : base(raw)
+    protected ItemPartExtra(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
-    /// <summary>Initializes a new instance of the <see cref="GridDefaultItemPartEnd"/> class.
+    /// <summary>Initializes a new instance of the <see cref="ItemPartExtra"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
     /// <param name="baseKlass">The pointer to the base native Eo class.</param>
     /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
     /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected GridDefaultItemPartEnd(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
-    {
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
+    protected ItemPartExtra(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
     {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Sent after the content is set or unset using the current content object.
@@ -90,13 +63,12 @@ public class GridDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -166,16 +138,16 @@ public class GridDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         return _ret_var;
  }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     private static IntPtr GetEflClassStatic()
     {
-        return Efl.Ui.GridDefaultItemPartEnd.efl_ui_grid_default_item_part_end_class_get();
+        return Efl.Ui.ItemPartExtra.efl_ui_item_part_extra_class_get();
     }
     /// <summary>Wrapper for native methods and virtual method delegates.
     /// For internal use by generated code only.</summary>
@@ -226,10 +198,10 @@ public class GridDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         /// <returns>The native class pointer.</returns>
         public override IntPtr GetEflClass()
         {
-            return Efl.Ui.GridDefaultItemPartEnd.efl_ui_grid_default_item_part_end_class_get();
+            return Efl.Ui.ItemPartExtra.efl_ui_item_part_extra_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -242,13 +214,13 @@ public class GridDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((GridDefaultItemPartEnd)wrapper).GetContent();
+                    _ret_var = ((ItemPartExtra)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -278,13 +250,13 @@ public class GridDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((GridDefaultItemPartEnd)wrapper).SetContent(content);
+                    _ret_var = ((ItemPartExtra)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -314,13 +286,13 @@ public class GridDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((GridDefaultItemPartEnd)wrapper).UnsetContent();
+                    _ret_var = ((ItemPartExtra)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -339,7 +311,7 @@ public class GridDefaultItemPartEnd : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICo
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -9,16 +9,16 @@ namespace Efl {
 
 namespace Ui {
 
-/// <summary>List Default Item internal content of icon part class</summary>
-[Efl.Ui.ListDefaultItemPartIcon.NativeMethods]
-public class ListDefaultItemPartIcon : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
+/// <summary>Item internal content of icon part class</summary>
+[Efl.Ui.ItemPartIcon.NativeMethods]
+public class ItemPartIcon : Efl.Ui.LayoutPart, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
     {
         get
         {
-            if (((object)this).GetType() == typeof(ListDefaultItemPartIcon))
+            if (((object)this).GetType() == typeof(ItemPartIcon))
             {
                 return GetEflClassStatic();
             }
@@ -30,56 +30,29 @@ public class ListDefaultItemPartIcon : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IC
     }
 
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
-        efl_ui_list_default_item_part_icon_class_get();
-    /// <summary>Initializes a new instance of the <see cref="ListDefaultItemPartIcon"/> class.</summary>
+        efl_ui_item_part_icon_class_get();
+    /// <summary>Initializes a new instance of the <see cref="ItemPartIcon"/> class.</summary>
     /// <param name="parent">Parent instance.</param>
-    public ListDefaultItemPartIcon(Efl.Object parent= null
-            ) : base(efl_ui_list_default_item_part_icon_class_get(), typeof(ListDefaultItemPartIcon), parent)
+    public ItemPartIcon(Efl.Object parent= null
+            ) : base(efl_ui_item_part_icon_class_get(), typeof(ItemPartIcon), parent)
     {
         FinishInstantiation();
     }
 
-    /// <summary>Initializes a new instance of the <see cref="ListDefaultItemPartIcon"/> class.
+    /// <summary>Initializes a new instance of the <see cref="ItemPartIcon"/> class.
     /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
     /// <param name="raw">The native pointer to be wrapped.</param>
-    protected ListDefaultItemPartIcon(System.IntPtr raw) : base(raw)
+    protected ItemPartIcon(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
-    /// <summary>Initializes a new instance of the <see cref="ListDefaultItemPartIcon"/> class.
+    /// <summary>Initializes a new instance of the <see cref="ItemPartIcon"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
     /// <param name="baseKlass">The pointer to the base native Eo class.</param>
     /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
     /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected ListDefaultItemPartIcon(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
-    {
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
+    protected ItemPartIcon(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
     {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Sent after the content is set or unset using the current content object.
@@ -90,13 +63,12 @@ public class ListDefaultItemPartIcon : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IC
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -166,16 +138,16 @@ public class ListDefaultItemPartIcon : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IC
         return _ret_var;
  }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     private static IntPtr GetEflClassStatic()
     {
-        return Efl.Ui.ListDefaultItemPartIcon.efl_ui_list_default_item_part_icon_class_get();
+        return Efl.Ui.ItemPartIcon.efl_ui_item_part_icon_class_get();
     }
     /// <summary>Wrapper for native methods and virtual method delegates.
     /// For internal use by generated code only.</summary>
@@ -226,10 +198,10 @@ public class ListDefaultItemPartIcon : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IC
         /// <returns>The native class pointer.</returns>
         public override IntPtr GetEflClass()
         {
-            return Efl.Ui.ListDefaultItemPartIcon.efl_ui_list_default_item_part_icon_class_get();
+            return Efl.Ui.ItemPartIcon.efl_ui_item_part_icon_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -242,13 +214,13 @@ public class ListDefaultItemPartIcon : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IC
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ListDefaultItemPartIcon)wrapper).GetContent();
+                    _ret_var = ((ItemPartIcon)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -278,13 +250,13 @@ public class ListDefaultItemPartIcon : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IC
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListDefaultItemPartIcon)wrapper).SetContent(content);
+                    _ret_var = ((ItemPartIcon)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -314,13 +286,13 @@ public class ListDefaultItemPartIcon : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IC
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ListDefaultItemPartIcon)wrapper).UnsetContent();
+                    _ret_var = ((ItemPartIcon)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -339,7 +311,7 @@ public class ListDefaultItemPartIcon : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IC
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_item_part_text.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_item_part_text.eo.cs
new file mode 100644 (file)
index 0000000..9ddaa24
--- /dev/null
@@ -0,0 +1,477 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Ui {
+
+/// <summary>Item internal text part class</summary>
+[Efl.Ui.ItemPartText.NativeMethods]
+public class ItemPartText : Efl.Ui.LayoutPart, Efl.IText, Efl.ITextMarkup, Efl.Ui.IL10n
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(ItemPartText))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
+        efl_ui_item_part_text_class_get();
+    /// <summary>Initializes a new instance of the <see cref="ItemPartText"/> class.</summary>
+    /// <param name="parent">Parent instance.</param>
+    public ItemPartText(Efl.Object parent= null
+            ) : base(efl_ui_item_part_text_class_get(), typeof(ItemPartText), parent)
+    {
+        FinishInstantiation();
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ItemPartText"/> class.
+    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
+    /// <param name="raw">The native pointer to be wrapped.</param>
+    protected ItemPartText(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Initializes a new instance of the <see cref="ItemPartText"/> class.
+    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
+    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
+    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
+    /// <param name="parent">The Efl.Object parent of this instance.</param>
+    protected ItemPartText(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
+    {
+    }
+
+    /// <summary>Retrieves the text string currently being displayed by the given text object.
+    /// Do not free() the return value.
+    /// 
+    /// See also <see cref="Efl.IText.GetText"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <returns>Text string to display on it.</returns>
+    virtual public System.String GetText() {
+         var _ret_var = Efl.ITextConcrete.NativeMethods.efl_text_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Sets the text string to be displayed by the given text object.
+    /// See also <see cref="Efl.IText.GetText"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <param name="text">Text string to display on it.</param>
+    virtual public void SetText(System.String text) {
+                                 Efl.ITextConcrete.NativeMethods.efl_text_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),text);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Markup property</summary>
+    /// <returns>The markup-text representation set to this text.</returns>
+    virtual public System.String GetMarkup() {
+         var _ret_var = Efl.ITextMarkupConcrete.NativeMethods.efl_text_markup_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Markup property</summary>
+    /// <param name="markup">The markup-text representation set to this text.</param>
+    virtual public void SetMarkup(System.String markup) {
+                                 Efl.ITextMarkupConcrete.NativeMethods.efl_text_markup_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),markup);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>A unique string to be translated.
+    /// Often this will be a human-readable string (e.g. in English) but it can also be a unique string identifier that must then be translated to the current locale with <c>dgettext</c>() or any similar mechanism.
+    /// 
+    /// Setting this property will enable translation for this object or part.</summary>
+    /// <param name="domain">A translation domain. If <c>null</c> this means the default domain is used.</param>
+    /// <returns>This returns the untranslated value of <c>label</c>. The translated string can usually be retrieved with <see cref="Efl.IText.GetText"/>.</returns>
+    virtual public System.String GetL10nText(out System.String domain) {
+                                 var _ret_var = Efl.Ui.IL10nConcrete.NativeMethods.efl_ui_l10n_text_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out domain);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
+    /// <summary>Sets the new untranslated string and domain for this object.</summary>
+    /// <param name="label">A unique (untranslated) string.</param>
+    /// <param name="domain">A translation domain. If <c>null</c> this uses the default domain (eg. set by <c>textdomain</c>()).</param>
+    virtual public void SetL10nText(System.String label, System.String domain) {
+                                                         Efl.Ui.IL10nConcrete.NativeMethods.efl_ui_l10n_text_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),label, domain);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Requests this object to update its text strings for the current locale.
+    /// Currently strings are translated with <c>dgettext</c>, so support for this function may depend on the platform. It is up to the application to provide its own translation data.
+    /// 
+    /// This function is a hook meant to be implemented by any object that supports translation. This can be called whenever a new object is created or when the current locale changes, for instance. This should only trigger further calls to <see cref="Efl.Ui.IL10n.UpdateTranslation"/> to children objects.</summary>
+    virtual public void UpdateTranslation() {
+         Efl.Ui.IL10nConcrete.NativeMethods.efl_ui_l10n_translation_update_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+         }
+    /// <summary>Markup property</summary>
+    /// <value>The markup-text representation set to this text.</value>
+    public System.String Markup {
+        get { return GetMarkup(); }
+        set { SetMarkup(value); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Ui.ItemPartText.efl_ui_item_part_text_class_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public new class NativeMethods : Efl.Ui.LayoutPart.NativeMethods
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_text_get_static_delegate == null)
+            {
+                efl_text_get_static_delegate = new efl_text_get_delegate(text_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetText") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_get_static_delegate) });
+            }
+
+            if (efl_text_set_static_delegate == null)
+            {
+                efl_text_set_static_delegate = new efl_text_set_delegate(text_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetText") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_set_static_delegate) });
+            }
+
+            if (efl_text_markup_get_static_delegate == null)
+            {
+                efl_text_markup_get_static_delegate = new efl_text_markup_get_delegate(markup_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetMarkup") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_markup_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_markup_get_static_delegate) });
+            }
+
+            if (efl_text_markup_set_static_delegate == null)
+            {
+                efl_text_markup_set_static_delegate = new efl_text_markup_set_delegate(markup_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetMarkup") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_markup_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_markup_set_static_delegate) });
+            }
+
+            if (efl_ui_l10n_text_get_static_delegate == null)
+            {
+                efl_ui_l10n_text_get_static_delegate = new efl_ui_l10n_text_get_delegate(l10n_text_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetL10nText") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_l10n_text_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_l10n_text_get_static_delegate) });
+            }
+
+            if (efl_ui_l10n_text_set_static_delegate == null)
+            {
+                efl_ui_l10n_text_set_static_delegate = new efl_ui_l10n_text_set_delegate(l10n_text_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetL10nText") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_l10n_text_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_l10n_text_set_static_delegate) });
+            }
+
+            if (efl_ui_l10n_translation_update_static_delegate == null)
+            {
+                efl_ui_l10n_translation_update_static_delegate = new efl_ui_l10n_translation_update_delegate(translation_update);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "UpdateTranslation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_l10n_translation_update"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_l10n_translation_update_static_delegate) });
+            }
+
+            descs.AddRange(base.GetEoOps(type));
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Ui.ItemPartText.efl_ui_item_part_text_class_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_get_api_delegate> efl_text_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_get_api_delegate>(Module, "efl_text_get");
+
+        private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((ItemPartText)ws.Target).GetText();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_get_delegate efl_text_get_static_delegate;
+
+        
+        private delegate void efl_text_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text);
+
+        
+        public delegate void efl_text_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String text);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_set_api_delegate> efl_text_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_set_api_delegate>(Module, "efl_text_set");
+
+        private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
+        {
+            Eina.Log.Debug("function efl_text_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((ItemPartText)ws.Target).SetText(text);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), text);
+            }
+        }
+
+        private static efl_text_set_delegate efl_text_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_markup_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_markup_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_markup_get_api_delegate> efl_text_markup_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_markup_get_api_delegate>(Module, "efl_text_markup_get");
+
+        private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_markup_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((ItemPartText)ws.Target).GetMarkup();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_markup_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_markup_get_delegate efl_text_markup_get_static_delegate;
+
+        
+        private delegate void efl_text_markup_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String markup);
+
+        
+        public delegate void efl_text_markup_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String markup);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_markup_set_api_delegate> efl_text_markup_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_markup_set_api_delegate>(Module, "efl_text_markup_set");
+
+        private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
+        {
+            Eina.Log.Debug("function efl_text_markup_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((ItemPartText)ws.Target).SetMarkup(markup);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_markup_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), markup);
+            }
+        }
+
+        private static efl_text_markup_set_delegate efl_text_markup_set_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_ui_l10n_text_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String domain);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_ui_l10n_text_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String domain);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_l10n_text_get_api_delegate> efl_ui_l10n_text_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_l10n_text_get_api_delegate>(Module, "efl_ui_l10n_text_get");
+
+        private static System.String l10n_text_get(System.IntPtr obj, System.IntPtr pd, out System.String domain)
+        {
+            Eina.Log.Debug("function efl_ui_l10n_text_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                System.String _out_domain = default(System.String);
+                    System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((ItemPartText)ws.Target).GetL10nText(out _out_domain);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        domain = _out_domain;
+                return _ret_var;
+
+            }
+            else
+            {
+                return efl_ui_l10n_text_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out domain);
+            }
+        }
+
+        private static efl_ui_l10n_text_get_delegate efl_ui_l10n_text_get_static_delegate;
+
+        
+        private delegate void efl_ui_l10n_text_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String label, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String domain);
+
+        
+        public delegate void efl_ui_l10n_text_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String label, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String domain);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_l10n_text_set_api_delegate> efl_ui_l10n_text_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_l10n_text_set_api_delegate>(Module, "efl_ui_l10n_text_set");
+
+        private static void l10n_text_set(System.IntPtr obj, System.IntPtr pd, System.String label, System.String domain)
+        {
+            Eina.Log.Debug("function efl_ui_l10n_text_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((ItemPartText)ws.Target).SetL10nText(label, domain);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_ui_l10n_text_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), label, domain);
+            }
+        }
+
+        private static efl_ui_l10n_text_set_delegate efl_ui_l10n_text_set_static_delegate;
+
+        
+        private delegate void efl_ui_l10n_translation_update_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate void efl_ui_l10n_translation_update_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_l10n_translation_update_api_delegate> efl_ui_l10n_translation_update_ptr = new Efl.Eo.FunctionWrapper<efl_ui_l10n_translation_update_api_delegate>(Module, "efl_ui_l10n_translation_update");
+
+        private static void translation_update(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_ui_l10n_translation_update was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            
+                try
+                {
+                    ((ItemPartText)ws.Target).UpdateTranslation();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        
+            }
+            else
+            {
+                efl_ui_l10n_translation_update_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_ui_l10n_translation_update_delegate efl_ui_l10n_translation_update_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
index a1b7a8b..a7ccf25 100644 (file)
@@ -34,13 +34,13 @@ void UpdateTranslation();
             }
 /// <summary>Interface for all translatable text APIs.
 /// This is intended for translation of human readable on-screen text strings but may also be used in text-to-speech situations.</summary>
-sealed public class IL10nConcrete : 
-
-IL10n
+sealed public class IL10nConcrete :
+    Efl.Eo.EoWrapper
+    , IL10n
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -55,86 +55,12 @@ IL10n
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_l10n_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IL10n"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IL10nConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IL10nConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IL10nConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>A unique string to be translated.
@@ -218,7 +144,7 @@ IL10n
             return Efl.Ui.IL10nConcrete.efl_ui_l10n_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_ui_l10n_text_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String domain);
@@ -231,14 +157,14 @@ IL10n
         private static System.String l10n_text_get(System.IntPtr obj, System.IntPtr pd, out System.String domain)
         {
             Eina.Log.Debug("function efl_ui_l10n_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 System.String _out_domain = default(System.String);
                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((IL10n)wrapper).GetL10nText(out _out_domain);
+                    _ret_var = ((IL10n)ws.Target).GetL10nText(out _out_domain);
                 }
                 catch (Exception e)
                 {
@@ -269,13 +195,13 @@ IL10n
         private static void l10n_text_set(System.IntPtr obj, System.IntPtr pd, System.String label, System.String domain)
         {
             Eina.Log.Debug("function efl_ui_l10n_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IL10n)wrapper).SetL10nText(label, domain);
+                    ((IL10n)ws.Target).SetL10nText(label, domain);
                 }
                 catch (Exception e)
                 {
@@ -304,13 +230,13 @@ IL10n
         private static void translation_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_l10n_translation_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IL10n)wrapper).UpdateTranslation();
+                    ((IL10n)ws.Target).UpdateTranslation();
                 }
                 catch (Exception e)
                 {
@@ -328,7 +254,7 @@ IL10n
 
         private static efl_ui_l10n_translation_update_delegate efl_ui_l10n_translation_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 7a9c531..5d93e47 100644 (file)
@@ -13,7 +13,7 @@ namespace Ui {
 /// When loading layouts from a file, use the <see cref="Efl.IFile.Key"/> property to specify the group that the data belongs to, in case it&apos;s an EET file (including Edje files).
 /// (Since EFL 1.22)</summary>
 [Efl.Ui.Layout.NativeMethods]
-public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
+public class Layout : Efl.Ui.LayoutBase, Efl.IFile
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -52,7 +52,7 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Layout(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Layout"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -63,33 +63,6 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
     /// (Since EFL 1.22)</summary>
     /// <returns>The handle to the <see cref="Eina.File"/> that will be used</returns>
@@ -175,33 +148,33 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
@@ -321,7 +294,7 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
             return Efl.Ui.Layout.efl_ui_layout_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.File efl_file_mmap_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -334,13 +307,13 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetMmap();
+                    _ret_var = ((Layout)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -370,13 +343,13 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetMmap(f);
+                    _ret_var = ((Layout)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -406,13 +379,13 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetFile();
+                    _ret_var = ((Layout)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -442,13 +415,13 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).SetFile(file);
+                    _ret_var = ((Layout)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -478,13 +451,13 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetKey();
+                    _ret_var = ((Layout)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -514,13 +487,13 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Layout)wrapper).SetKey(key);
+                    ((Layout)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -549,13 +522,13 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).GetLoaded();
+                    _ret_var = ((Layout)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -585,13 +558,13 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Layout)wrapper).Load();
+                    _ret_var = ((Layout)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -621,13 +594,13 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Layout)wrapper).Unload();
+                    ((Layout)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -645,7 +618,7 @@ public class Layout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile
 
         private static efl_file_unload_delegate efl_file_unload_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e0478ef..0a8d225 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Elementary layout abstract
 /// (Since EFL 1.22)</summary>
 [Efl.Ui.LayoutBase.NativeMethods]
-public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.Layout.ICalc,Efl.Layout.IGroup,Efl.Layout.ISignal,Efl.Ui.IFactoryBind
+public abstract class LayoutBase : Efl.Ui.Widget, Efl.IContainer, Efl.Layout.ICalc, Efl.Layout.IGroup, Efl.Layout.ISignal, Efl.Ui.IFactoryBind
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutBase(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class LayoutBaseRealized : LayoutBase
@@ -69,33 +69,6 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when theme changed
     /// (Since EFL 1.22)</summary>
     public event EventHandler ThemeChangedEvt
@@ -104,10 +77,9 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -150,7 +122,7 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -158,13 +130,12 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -206,7 +177,7 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -214,13 +185,12 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -270,10 +240,9 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -324,13 +293,12 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Layout.ICalcCircularDependencyEvt_Args args = new Efl.Layout.ICalcCircularDependencyEvt_Args();
+                        Efl.Layout.ICalcCircularDependencyEvt_Args args = new Efl.Layout.ICalcCircularDependencyEvt_Args();
                         args.arg = new Eina.Array<System.String>(evt.Info, false, false);
                         try
                         {
@@ -423,22 +391,22 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
                          }
     /// <summary>Apply a new rotation value to this object.
     /// (Since EFL 1.22)</summary>
-    /// <param name="orientation">The new rotation value.</param>
-    virtual public void ThemeRotationApply(Efl.Orient orientation) {
+    /// <param name="orientation">The new rotation angle, in degrees.</param>
+    virtual public void ThemeRotationApply(int orientation) {
                                  Efl.Ui.LayoutBase.NativeMethods.efl_ui_layout_theme_rotation_apply_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),orientation);
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     virtual public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     virtual public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
@@ -659,45 +627,45 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>This flag tells if this object will automatically mirror the rotation changes of the window to this object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> to mirror orientation changes to the theme <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> to mirror orientation changes to the theme <c>false</c> otherwise</value>
     public bool AutomaticThemeRotation {
         get { return GetAutomaticThemeRotation(); }
         set { SetAutomaticThemeRotation(value); }
     }
     /// <summary>Whether this object updates its size hints automatically.
-/// By default edje doesn&apos;t set size hints on itself. If this property is set to <c>true</c>, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.
-/// 
-/// A layout recalculation can be triggered by <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcPartsExtends"/> or even any other internal event.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether or not update the size hints.</value>
+    /// By default edje doesn&apos;t set size hints on itself. If this property is set to <c>true</c>, size hints will be updated after recalculation. Be careful, as recalculation may happen often, enabling this property may have a considerable performance impact as other widgets will be notified of the size hints changes.
+    /// 
+    /// A layout recalculation can be triggered by <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcSizeMin"/>, <see cref="Efl.Layout.ICalc.CalcPartsExtends"/> or even any other internal event.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether or not update the size hints.</value>
     public bool CalcAutoUpdateHints {
         get { return GetCalcAutoUpdateHints(); }
         set { SetCalcAutoUpdateHints(value); }
     }
     /// <summary>Gets the minimum size specified -- as an EDC property -- for a given Edje object
-/// This function retrieves the obj object&apos;s minimum size values, as declared in its EDC group definition. For instance, for an Edje object of minimum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; min: 100 100; } }
-/// 
-/// Note: If the <c>min</c> EDC property was not declared for this object, this call will return 0x0.
-/// 
-/// Note: On failure, this function also return 0x0.
-/// 
-/// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMax"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The minimum size as set in EDC.</value>
+    /// This function retrieves the obj object&apos;s minimum size values, as declared in its EDC group definition. For instance, for an Edje object of minimum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; min: 100 100; } }
+    /// 
+    /// Note: If the <c>min</c> EDC property was not declared for this object, this call will return 0x0.
+    /// 
+    /// Note: On failure, this function also return 0x0.
+    /// 
+    /// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMax"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The minimum size as set in EDC.</value>
     public Eina.Size2D GroupSizeMin {
         get { return GetGroupSizeMin(); }
     }
     /// <summary>Gets the maximum size specified -- as an EDC property -- for a given Edje object
-/// This function retrieves the object&apos;s maximum size values, as declared in its EDC group definition. For instance, for an Edje object of maximum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; max: 100 100; } }
-/// 
-/// Note: If the <c>max</c> EDC property was not declared for the object, this call will return the maximum size a given Edje object may have, for each axis.
-/// 
-/// Note: On failure, this function will return 0x0.
-/// 
-/// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMin"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The maximum size as set in EDC.</value>
+    /// This function retrieves the object&apos;s maximum size values, as declared in its EDC group definition. For instance, for an Edje object of maximum size 100x100 pixels: collections { group { name: &quot;a_group&quot;; max: 100 100; } }
+    /// 
+    /// Note: If the <c>max</c> EDC property was not declared for the object, this call will return the maximum size a given Edje object may have, for each axis.
+    /// 
+    /// Note: On failure, this function will return 0x0.
+    /// 
+    /// See also <see cref="Efl.Layout.IGroup.GetGroupSizeMin"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The maximum size as set in EDC.</value>
     public Eina.Size2D GroupSizeMax {
         get { return GetGroupSizeMax(); }
     }
@@ -967,7 +935,7 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
             return Efl.Ui.LayoutBase.efl_ui_layout_base_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_layout_theme_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String klass, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String group, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String style);
@@ -980,8 +948,8 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static void theme_get(System.IntPtr obj, System.IntPtr pd, out System.String klass, out System.String group, out System.String style)
         {
             Eina.Log.Debug("function efl_ui_layout_theme_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 System.String _out_klass = default(System.String);
         System.String _out_group = default(System.String);
@@ -989,7 +957,7 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
                                     
                 try
                 {
-                    ((LayoutBase)wrapper).GetTheme(out _out_klass, out _out_group, out _out_style);
+                    ((LayoutBase)ws.Target).GetTheme(out _out_klass, out _out_group, out _out_style);
                 }
                 catch (Exception e)
                 {
@@ -1021,13 +989,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static Eina.Error theme_set(System.IntPtr obj, System.IntPtr pd, System.String klass, System.String group, System.String style)
         {
             Eina.Log.Debug("function efl_ui_layout_theme_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).SetTheme(klass, group, style);
+                    _ret_var = ((LayoutBase)ws.Target).SetTheme(klass, group, style);
                 }
                 catch (Exception e)
                 {
@@ -1057,13 +1025,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static bool automatic_theme_rotation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_layout_automatic_theme_rotation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).GetAutomaticThemeRotation();
+                    _ret_var = ((LayoutBase)ws.Target).GetAutomaticThemeRotation();
                 }
                 catch (Exception e)
                 {
@@ -1093,13 +1061,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static void automatic_theme_rotation_set(System.IntPtr obj, System.IntPtr pd, bool automatic)
         {
             Eina.Log.Debug("function efl_ui_layout_automatic_theme_rotation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutBase)wrapper).SetAutomaticThemeRotation(automatic);
+                    ((LayoutBase)ws.Target).SetAutomaticThemeRotation(automatic);
                 }
                 catch (Exception e)
                 {
@@ -1118,23 +1086,23 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static efl_ui_layout_automatic_theme_rotation_set_delegate efl_ui_layout_automatic_theme_rotation_set_static_delegate;
 
         
-        private delegate void efl_ui_layout_theme_rotation_apply_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Orient orientation);
+        private delegate void efl_ui_layout_theme_rotation_apply_delegate(System.IntPtr obj, System.IntPtr pd,  int orientation);
 
         
-        public delegate void efl_ui_layout_theme_rotation_apply_api_delegate(System.IntPtr obj,  Efl.Orient orientation);
+        public delegate void efl_ui_layout_theme_rotation_apply_api_delegate(System.IntPtr obj,  int orientation);
 
         public static Efl.Eo.FunctionWrapper<efl_ui_layout_theme_rotation_apply_api_delegate> efl_ui_layout_theme_rotation_apply_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_theme_rotation_apply_api_delegate>(Module, "efl_ui_layout_theme_rotation_apply");
 
-        private static void theme_rotation_apply(System.IntPtr obj, System.IntPtr pd, Efl.Orient orientation)
+        private static void theme_rotation_apply(System.IntPtr obj, System.IntPtr pd, int orientation)
         {
             Eina.Log.Debug("function efl_ui_layout_theme_rotation_apply was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutBase)wrapper).ThemeRotationApply(orientation);
+                    ((LayoutBase)ws.Target).ThemeRotationApply(orientation);
                 }
                 catch (Exception e)
                 {
@@ -1163,13 +1131,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).ContentIterate();
+                    _ret_var = ((LayoutBase)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -1199,13 +1167,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).ContentCount();
+                    _ret_var = ((LayoutBase)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -1235,13 +1203,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static bool calc_auto_update_hints_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_auto_update_hints_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).GetCalcAutoUpdateHints();
+                    _ret_var = ((LayoutBase)ws.Target).GetCalcAutoUpdateHints();
                 }
                 catch (Exception e)
                 {
@@ -1271,13 +1239,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static void calc_auto_update_hints_set(System.IntPtr obj, System.IntPtr pd, bool update)
         {
             Eina.Log.Debug("function efl_layout_calc_auto_update_hints_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutBase)wrapper).SetCalcAutoUpdateHints(update);
+                    ((LayoutBase)ws.Target).SetCalcAutoUpdateHints(update);
                 }
                 catch (Exception e)
                 {
@@ -1306,14 +1274,14 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static Eina.Size2D.NativeStruct calc_size_min(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct restricted)
         {
             Eina.Log.Debug("function efl_layout_calc_size_min was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_restricted = restricted;
                             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).CalcSizeMin(_in_restricted);
+                    _ret_var = ((LayoutBase)ws.Target).CalcSizeMin(_in_restricted);
                 }
                 catch (Exception e)
                 {
@@ -1343,13 +1311,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static Eina.Rect.NativeStruct calc_parts_extends(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_parts_extends was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).CalcPartsExtends();
+                    _ret_var = ((LayoutBase)ws.Target).CalcPartsExtends();
                 }
                 catch (Exception e)
                 {
@@ -1379,13 +1347,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static int calc_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).FreezeCalc();
+                    _ret_var = ((LayoutBase)ws.Target).FreezeCalc();
                 }
                 catch (Exception e)
                 {
@@ -1415,13 +1383,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static int calc_thaw(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_thaw was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).ThawCalc();
+                    _ret_var = ((LayoutBase)ws.Target).ThawCalc();
                 }
                 catch (Exception e)
                 {
@@ -1451,13 +1419,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static void calc_force(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_calc_force was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((LayoutBase)wrapper).CalcForce();
+                    ((LayoutBase)ws.Target).CalcForce();
                 }
                 catch (Exception e)
                 {
@@ -1486,13 +1454,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static Eina.Size2D.NativeStruct group_size_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_group_size_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).GetGroupSizeMin();
+                    _ret_var = ((LayoutBase)ws.Target).GetGroupSizeMin();
                 }
                 catch (Exception e)
                 {
@@ -1522,13 +1490,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static Eina.Size2D.NativeStruct group_size_max_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_layout_group_size_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).GetGroupSizeMax();
+                    _ret_var = ((LayoutBase)ws.Target).GetGroupSizeMax();
                 }
                 catch (Exception e)
                 {
@@ -1558,13 +1526,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static System.String group_data_get(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_layout_group_data_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).GetGroupData(key);
+                    _ret_var = ((LayoutBase)ws.Target).GetGroupData(key);
                 }
                 catch (Exception e)
                 {
@@ -1594,13 +1562,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static bool part_exist_get(System.IntPtr obj, System.IntPtr pd, System.String part)
         {
             Eina.Log.Debug("function efl_layout_group_part_exist_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).GetPartExist(part);
+                    _ret_var = ((LayoutBase)ws.Target).GetPartExist(part);
                 }
                 catch (Exception e)
                 {
@@ -1630,13 +1598,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static void message_send(System.IntPtr obj, System.IntPtr pd, int id, Eina.ValueNative msg)
         {
             Eina.Log.Debug("function efl_layout_signal_message_send was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutBase)wrapper).MessageSend(id, msg);
+                    ((LayoutBase)ws.Target).MessageSend(id, msg);
                 }
                 catch (Exception e)
                 {
@@ -1665,14 +1633,14 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static bool signal_callback_add(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_layout_signal_callback_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                             EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb);
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).AddSignalCallback(emission, source, func_wrapper.ManagedCb);
+                    _ret_var = ((LayoutBase)ws.Target).AddSignalCallback(emission, source, func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -1702,14 +1670,14 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static bool signal_callback_del(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_layout_signal_callback_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                             EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb);
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutBase)wrapper).DelSignalCallback(emission, source, func_wrapper.ManagedCb);
+                    _ret_var = ((LayoutBase)ws.Target).DelSignalCallback(emission, source, func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -1739,13 +1707,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static void signal_emit(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source)
         {
             Eina.Log.Debug("function efl_layout_signal_emit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutBase)wrapper).EmitSignal(emission, source);
+                    ((LayoutBase)ws.Target).EmitSignal(emission, source);
                 }
                 catch (Exception e)
                 {
@@ -1774,13 +1742,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static void signal_process(System.IntPtr obj, System.IntPtr pd, bool recurse)
         {
             Eina.Log.Debug("function efl_layout_signal_process was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutBase)wrapper).SignalProcess(recurse);
+                    ((LayoutBase)ws.Target).SignalProcess(recurse);
                 }
                 catch (Exception e)
                 {
@@ -1809,13 +1777,13 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
         private static void factory_bind(System.IntPtr obj, System.IntPtr pd, System.String key, Efl.Ui.IFactory factory)
         {
             Eina.Log.Debug("function efl_ui_factory_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutBase)wrapper).FactoryBind(key, factory);
+                    ((LayoutBase)ws.Target).FactoryBind(key, factory);
                 }
                 catch (Exception e)
                 {
@@ -1833,7 +1801,7 @@ public abstract class LayoutBase : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer
 
         private static efl_ui_factory_bind_delegate efl_ui_factory_bind_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e523fdb..cd6b34f 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl Ui Layout Factory class</summary>
 [Efl.Ui.LayoutFactory.NativeMethods]
-public class LayoutFactory : Efl.Ui.CachingFactory, Efl.Eo.IWrapper
+public class LayoutFactory : Efl.Ui.CachingFactory
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class LayoutFactory : Efl.Ui.CachingFactory, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutFactory(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutFactory"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class LayoutFactory : Efl.Ui.CachingFactory, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>No description supplied.</summary>
     /// <param name="klass">The class of the group.</param>
     /// <param name="group">The group.</param>
@@ -132,7 +105,7 @@ public class LayoutFactory : Efl.Ui.CachingFactory, Efl.Eo.IWrapper
             return Efl.Ui.LayoutFactory.efl_ui_layout_factory_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_layout_factory_theme_config_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String klass, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String group, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String style);
@@ -145,13 +118,13 @@ public class LayoutFactory : Efl.Ui.CachingFactory, Efl.Eo.IWrapper
         private static void theme_config(System.IntPtr obj, System.IntPtr pd, System.String klass, System.String group, System.String style)
         {
             Eina.Log.Debug("function efl_ui_layout_factory_theme_config was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((LayoutFactory)wrapper).ThemeConfig(klass, group, style);
+                    ((LayoutFactory)ws.Target).ThemeConfig(klass, group, style);
                 }
                 catch (Exception e)
                 {
@@ -169,7 +142,7 @@ public class LayoutFactory : Efl.Ui.CachingFactory, Efl.Eo.IWrapper
 
         private static efl_ui_layout_factory_theme_config_delegate efl_ui_layout_factory_theme_config_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_layout_orientable.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_layout_orientable.eo.cs
new file mode 100644 (file)
index 0000000..2bc834c
--- /dev/null
@@ -0,0 +1,252 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Ui {
+
+/// <summary>Interface for UI objects which can have more than one orientation.
+/// For example, sliders, which can be horizontal or vertical, or container boxes, which can arrange their elements in a horizontal or vertical fashion.</summary>
+[Efl.Ui.ILayoutOrientableConcrete.NativeMethods]
+public interface ILayoutOrientable : 
+    Efl.Eo.IWrapper, IDisposable
+{
+    /// <summary>Control the direction of a given widget.
+/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+/// 
+/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+/// <returns>Direction of the widget.</returns>
+Efl.Ui.LayoutOrientation GetOrientation();
+    /// <summary>Control the direction of a given widget.
+/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+/// 
+/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+/// <param name="dir">Direction of the widget.</param>
+void SetOrientation(Efl.Ui.LayoutOrientation dir);
+            /// <summary>Control the direction of a given widget.
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    Efl.Ui.LayoutOrientation Orientation {
+        get ;
+        set ;
+    }
+}
+/// <summary>Interface for UI objects which can have more than one orientation.
+/// For example, sliders, which can be horizontal or vertical, or container boxes, which can arrange their elements in a horizontal or vertical fashion.</summary>
+sealed public class ILayoutOrientableConcrete :
+    Efl.Eo.EoWrapper
+    , ILayoutOrientable
+    
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(ILayoutOrientableConcrete))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
+        efl_ui_layout_orientable_interface_get();
+    /// <summary>Initializes a new instance of the <see cref="ILayoutOrientable"/> class.
+    /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
+    private ILayoutOrientableConcrete(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Control the direction of a given widget.
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <returns>Direction of the widget.</returns>
+    public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate(this.NativeHandle);
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Control the direction of a given widget.
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <param name="dir">Direction of the widget.</param>
+    public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate(this.NativeHandle,dir);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Control the direction of a given widget.
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Ui.ILayoutOrientableConcrete.efl_ui_layout_orientable_interface_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public class NativeMethods  : Efl.Eo.NativeClass
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Efl);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_ui_layout_orientation_get_static_delegate == null)
+            {
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
+            }
+
+            if (efl_ui_layout_orientation_set_static_delegate == null)
+            {
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
+            }
+
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Ui.ILayoutOrientableConcrete.efl_ui_layout_orientable_interface_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
+
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
+                try
+                {
+                    _ret_var = ((ILayoutOrientable)ws.Target).GetOrientation();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
+
+        
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
+
+        
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
+
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
+        {
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((ILayoutOrientable)ws.Target).SetOrientation(dir);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+            }
+        }
+
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
+namespace Efl {
+
+namespace Ui {
+
+/// <summary>Orientation for UI objects and layouts that can have multiple configurations.
+/// Select among <c>horizontal</c> or <c>vertical</c> orientations (or use <c>default</c> to let the object decide). Additionally, <c>inverted</c> can be added to reverse the direction along the selected axis.
+/// 
+/// Not to be confused with <see cref="Efl.Gfx.ImageOrientation"/> which is for images and canvases. This enum is used to define how widgets should expand and orient themselves, not to rotate images.
+/// 
+/// See also <see cref="Efl.Ui.ILayoutOrientable"/>.</summary>
+public enum LayoutOrientation
+{
+/// <summary>Default direction. Each widget may have a different default.</summary>
+Default = 0,
+/// <summary>Horizontal direction, along the X axis. Usually left-to-right, but can be inverted.</summary>
+Horizontal = 1,
+/// <summary>Vertical direction, along the Y axis. Usually downwards but can be inverted.</summary>
+Vertical = 2,
+/// <summary>This bitmask can be used to isolate the axis value from the rest of bits.</summary>
+AxisBitmask = 3,
+/// <summary>Add this value to make the object invert its default direction along the selected axis.</summary>
+Inverted = 4,
+}
+
+}
+
+}
+
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_layout_orientable_readonly.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_layout_orientable_readonly.eo.cs
new file mode 100644 (file)
index 0000000..0557b79
--- /dev/null
@@ -0,0 +1,200 @@
+#pragma warning disable CS1591
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.ComponentModel;
+namespace Efl {
+
+namespace Ui {
+
+[Efl.Ui.ILayoutOrientableReadonlyConcrete.NativeMethods]
+public interface ILayoutOrientableReadonly : 
+    Efl.Ui.ILayoutOrientable ,
+    Efl.Eo.IWrapper, IDisposable
+{
+}
+sealed public class ILayoutOrientableReadonlyConcrete :
+    Efl.Eo.EoWrapper
+    , ILayoutOrientableReadonly
+    , Efl.Ui.ILayoutOrientable
+{
+    ///<summary>Pointer to the native class description.</summary>
+    public override System.IntPtr NativeClass
+    {
+        get
+        {
+            if (((object)this).GetType() == typeof(ILayoutOrientableReadonlyConcrete))
+            {
+                return GetEflClassStatic();
+            }
+            else
+            {
+                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
+            }
+        }
+    }
+
+    [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
+        efl_ui_layout_orientable_readonly_mixin_get();
+    /// <summary>Initializes a new instance of the <see cref="ILayoutOrientableReadonly"/> class.
+    /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
+    private ILayoutOrientableReadonlyConcrete(System.IntPtr raw) : base(raw)
+    {
+    }
+
+    /// <summary>Control the direction of a given widget.
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <returns>Direction of the widget.</returns>
+    public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate(this.NativeHandle);
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Control the direction of a given widget.
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <param name="dir">Direction of the widget.</param>
+    public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate(this.NativeHandle,dir);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Control the direction of a given widget.
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
+    }
+    private static IntPtr GetEflClassStatic()
+    {
+        return Efl.Ui.ILayoutOrientableReadonlyConcrete.efl_ui_layout_orientable_readonly_mixin_get();
+    }
+    /// <summary>Wrapper for native methods and virtual method delegates.
+    /// For internal use by generated code only.</summary>
+    public class NativeMethods  : Efl.Eo.NativeClass
+    {
+        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Efl);
+        /// <summary>Gets the list of Eo operations to override.</summary>
+        /// <returns>The list of Eo operations to be overload.</returns>
+        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
+        {
+            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
+            var methods = Efl.Eo.Globals.GetUserMethods(type);
+
+            if (efl_ui_layout_orientation_get_static_delegate == null)
+            {
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
+            }
+
+            if (efl_ui_layout_orientation_set_static_delegate == null)
+            {
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
+            }
+
+            return descs;
+        }
+        /// <summary>Returns the Eo class for the native methods of this class.</summary>
+        /// <returns>The native class pointer.</returns>
+        public override IntPtr GetEflClass()
+        {
+            return Efl.Ui.ILayoutOrientableReadonlyConcrete.efl_ui_layout_orientable_readonly_mixin_get();
+        }
+
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
+
+        
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
+
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
+                try
+                {
+                    _ret_var = ((ILayoutOrientableReadonlyConcrete)ws.Target).GetOrientation();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
+
+        
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
+
+        
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
+
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
+        {
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((ILayoutOrientableReadonlyConcrete)ws.Target).SetOrientation(dir);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+            }
+        }
+
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
+
+}
+}
+}
+
+}
+
index 8683583..2309312 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary layout internal part class</summary>
 [Efl.Ui.LayoutPart.NativeMethods]
-public class LayoutPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper
+public class LayoutPart : Efl.Ui.WidgetPart
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class LayoutPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class LayoutPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.LayoutPart.efl_ui_layout_part_class_get();
@@ -105,9 +78,9 @@ public class LayoutPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper
             return Efl.Ui.LayoutPart.efl_ui_layout_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 09e6221..321c242 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary layout internal part background class</summary>
 [Efl.Ui.LayoutPartBg.NativeMethods]
-public class LayoutPartBg : Efl.Ui.WidgetPartBg, Efl.Eo.IWrapper
+public class LayoutPartBg : Efl.Ui.WidgetPartBg
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class LayoutPartBg : Efl.Ui.WidgetPartBg, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartBg(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartBg"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class LayoutPartBg : Efl.Ui.WidgetPartBg, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.LayoutPartBg.efl_ui_layout_part_bg_class_get();
@@ -105,9 +78,9 @@ public class LayoutPartBg : Efl.Ui.WidgetPartBg, Efl.Eo.IWrapper
             return Efl.Ui.LayoutPartBg.efl_ui_layout_part_bg_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3963127..d2b86cd 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Represents a Box created as part of a layout.
 /// Cannot be deleted. This is only a representation of an internal object of an EFL layout.</summary>
 [Efl.Ui.LayoutPartBox.NativeMethods]
-public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.IPackLinear,Efl.Ui.IDirection,Efl.Ui.IDirectionReadonly
+public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.IContainer, Efl.IPack, Efl.IPackLinear, Efl.Ui.ILayoutOrientable, Efl.Ui.ILayoutOrientableReadonly
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartBox(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartBox"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,34 +56,7 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -91,13 +64,12 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -139,7 +111,7 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -147,13 +119,12 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -204,78 +175,48 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
                                          }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     virtual public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     virtual public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
@@ -286,85 +227,83 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, 0).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the beginning.</param>
+    /// <param name="subobj">Object to pack at the beginning.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBegin(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_begin_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Append item at the end of this container.
+    /// <summary>Append object at the end of this container.
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, -1).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the end.</param>
+    /// <param name="subobj">Object to pack at the end.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackEnd(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_end_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Prepend item before other sub object.
+    /// <summary>Prepend an object before an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack before <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack before <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBefore(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_before_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Append item after other sub object.
+    /// <summary>Append an object after an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack after <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack after <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAfter(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_after_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Inserts <c>subobj</c> BEFORE the item at position <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Inserts <c>subobj</c> BEFORE the sub-object at position <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
     /// If <c>index</c> is less than -<c>count</c>, it will trigger <see cref="Efl.IPackLinear.PackBegin"/>(<c>subobj</c>) whereas <c>index</c> greater than <c>count</c>-1 will trigger <see cref="Efl.IPackLinear.PackEnd"/>(<c>subobj</c>).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack.</param>
-    /// <param name="index">Index of item to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <param name="subobj">Object to pack.</param>
+    /// <param name="index">Index of existing sub-object to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAt(Efl.Gfx.IEntity subobj, int index) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Content at a given <c>index</c> in this container.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Sub-object at a given <c>index</c> in this container.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will return the first item whereas <c>index</c> greater than <c>count</c>-1 will return the last item.</summary>
-    /// <param name="index">Index of the item to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The object contained at the given <c>index</c>.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will return the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will return the last sub-object.</summary>
+    /// <param name="index">Index of the existing sub-object to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object contained at the given <c>index</c>.</returns>
     virtual public Efl.Gfx.IEntity GetPackContent(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Get the index of a child in this container.</summary>
-    /// <param name="subobj">An object contained in this pack.</param>
-    /// <returns>-1 in case <c>subobj</c> is not a child of this object, or the index of this item in the range 0 to (<c>count</c>-1).</returns>
+    /// <summary>Get the index of a sub-object in this container.</summary>
+    /// <param name="subobj">An existing sub-object in this container.</param>
+    /// <returns>-1 in case <c>subobj</c> is not found, or the index of <c>subobj</c> in the range 0 to (<c>count</c>-1).</returns>
     virtual public int GetPackIndex(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_index_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Pop out (remove) the item at the specified <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
-    /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will remove the first item whereas <c>index</c> greater than <c>count</c>-1 will remove the last item.
+    /// <summary>Pop out (remove) the sub-object at the specified <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// Equivalent to <see cref="Efl.IPack.Unpack"/>(<see cref="Efl.IPackLinear.GetPackContent"/>(<c>index</c>)).</summary>
-    /// <param name="index">Index of item to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The child item if it could be removed.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will remove the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will remove the last sub-object.</summary>
+    /// <param name="index">Index of the sub-object to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object if it could be removed.</returns>
     virtual public Efl.Gfx.IEntity PackUnpackAt(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_unpack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
@@ -375,8 +314,8 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <returns>Direction of the widget.</returns>
-    virtual public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+    virtual public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
@@ -385,18 +324,18 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <param name="dir">Direction of the widget.</param>
-    virtual public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+    virtual public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
     }
     private static IntPtr GetEflClassStatic()
     {
@@ -444,46 +383,6 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_count"), func = Marshal.GetFunctionPointerForDelegate(efl_content_count_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -604,24 +503,24 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack_at"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_at_static_delegate) });
             }
 
-            if (efl_ui_direction_get_static_delegate == null)
+            if (efl_ui_layout_orientation_get_static_delegate == null)
             {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
             }
 
-            if (efl_ui_direction_set_static_delegate == null)
+            if (efl_ui_layout_orientation_set_static_delegate == null)
             {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
             }
 
             descs.AddRange(base.GetEoOps(type));
@@ -634,7 +533,7 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
             return Efl.Ui.LayoutPartBox.efl_ui_layout_part_box_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_layout_part_box_real_part_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object layout, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String part);
@@ -647,13 +546,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static void real_part_set(System.IntPtr obj, System.IntPtr pd, Efl.Object layout, System.String part)
         {
             Eina.Log.Debug("function efl_ui_layout_part_box_real_part_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartBox)wrapper).SetRealPart(layout, part);
+                    ((LayoutPartBox)ws.Target).SetRealPart(layout, part);
                 }
                 catch (Exception e)
                 {
@@ -682,13 +581,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).ContentIterate();
+                    _ret_var = ((LayoutPartBox)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -718,13 +617,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).ContentCount();
+                    _ret_var = ((LayoutPartBox)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -743,146 +642,6 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((LayoutPartBox)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((LayoutPartBox)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((LayoutPartBox)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((LayoutPartBox)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -894,13 +653,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).ClearPack();
+                    _ret_var = ((LayoutPartBox)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -930,13 +689,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).UnpackAll();
+                    _ret_var = ((LayoutPartBox)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -966,13 +725,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).Unpack(subobj);
+                    _ret_var = ((LayoutPartBox)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1002,13 +761,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).Pack(subobj);
+                    _ret_var = ((LayoutPartBox)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1038,13 +797,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static bool pack_begin(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_begin was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackBegin(subobj);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackBegin(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1074,13 +833,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static bool pack_end(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackEnd(subobj);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackEnd(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1110,13 +869,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static bool pack_before(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_before was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackBefore(subobj, existing);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackBefore(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -1146,13 +905,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static bool pack_after(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_after was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackAfter(subobj, existing);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackAfter(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -1182,13 +941,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static bool pack_at(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
         {
             Eina.Log.Debug("function efl_pack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackAt(subobj, index);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackAt(subobj, index);
                 }
                 catch (Exception e)
                 {
@@ -1218,13 +977,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static Efl.Gfx.IEntity pack_content_get(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).GetPackContent(index);
+                    _ret_var = ((LayoutPartBox)ws.Target).GetPackContent(index);
                 }
                 catch (Exception e)
                 {
@@ -1254,13 +1013,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static int pack_index_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).GetPackIndex(subobj);
+                    _ret_var = ((LayoutPartBox)ws.Target).GetPackIndex(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1290,13 +1049,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static Efl.Gfx.IEntity pack_unpack_at(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_unpack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).PackUnpackAt(index);
+                    _ret_var = ((LayoutPartBox)ws.Target).PackUnpackAt(index);
                 }
                 catch (Exception e)
                 {
@@ -1316,23 +1075,23 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
         private static efl_pack_unpack_at_delegate efl_pack_unpack_at_static_delegate;
 
         
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
 
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
                 try
                 {
-                    _ret_var = ((LayoutPartBox)wrapper).GetDirection();
+                    _ret_var = ((LayoutPartBox)ws.Target).GetOrientation();
                 }
                 catch (Exception e)
                 {
@@ -1345,30 +1104,30 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
             }
             else
             {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
 
         
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
 
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartBox)wrapper).SetDirection(dir);
+                    ((LayoutPartBox)ws.Target).SetOrientation(dir);
                 }
                 catch (Exception e)
                 {
@@ -1380,13 +1139,13 @@ public class LayoutPartBox : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,E
             }
             else
             {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
             }
         }
 
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 0923279..eadd226 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary layout internal part class</summary>
 [Efl.Ui.LayoutPartContent.NativeMethods]
-public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
+public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartContent(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartContent"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -90,13 +63,12 @@ public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -166,9 +138,9 @@ public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
         return _ret_var;
  }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
@@ -229,7 +201,7 @@ public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
             return Efl.Ui.LayoutPartContent.efl_ui_layout_part_content_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -242,13 +214,13 @@ public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartContent)wrapper).GetContent();
+                    _ret_var = ((LayoutPartContent)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -278,13 +250,13 @@ public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartContent)wrapper).SetContent(content);
+                    _ret_var = ((LayoutPartContent)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -314,13 +286,13 @@ public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartContent)wrapper).UnsetContent();
+                    _ret_var = ((LayoutPartContent)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -339,7 +311,7 @@ public class LayoutPartContent : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 6aba5cd..f0d5345 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary layout internal part class</summary>
 [Efl.Ui.LayoutPartLegacy.NativeMethods]
-public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,Efl.ITextMarkup,Efl.Ui.IL10n
+public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.IContent, Efl.IText, Efl.ITextMarkup, Efl.Ui.IL10n
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartLegacy(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartLegacy"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -90,13 +63,12 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -224,15 +196,15 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>Markup property</summary>
-/// <value>The markup-text representation set to this text.</value>
+    /// <value>The markup-text representation set to this text.</value>
     public System.String Markup {
         get { return GetMarkup(); }
         set { SetMarkup(value); }
@@ -363,7 +335,7 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
             return Efl.Ui.LayoutPartLegacy.efl_ui_layout_part_legacy_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -376,13 +348,13 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartLegacy)wrapper).GetContent();
+                    _ret_var = ((LayoutPartLegacy)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -412,13 +384,13 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartLegacy)wrapper).SetContent(content);
+                    _ret_var = ((LayoutPartLegacy)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -448,13 +420,13 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartLegacy)wrapper).UnsetContent();
+                    _ret_var = ((LayoutPartLegacy)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -484,13 +456,13 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartLegacy)wrapper).GetText();
+                    _ret_var = ((LayoutPartLegacy)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -520,13 +492,13 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartLegacy)wrapper).SetText(text);
+                    ((LayoutPartLegacy)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -555,13 +527,13 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_markup_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartLegacy)wrapper).GetMarkup();
+                    _ret_var = ((LayoutPartLegacy)ws.Target).GetMarkup();
                 }
                 catch (Exception e)
                 {
@@ -591,13 +563,13 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartLegacy)wrapper).SetMarkup(markup);
+                    ((LayoutPartLegacy)ws.Target).SetMarkup(markup);
                 }
                 catch (Exception e)
                 {
@@ -626,14 +598,14 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         private static System.String l10n_text_get(System.IntPtr obj, System.IntPtr pd, out System.String domain)
         {
             Eina.Log.Debug("function efl_ui_l10n_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 System.String _out_domain = default(System.String);
                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartLegacy)wrapper).GetL10nText(out _out_domain);
+                    _ret_var = ((LayoutPartLegacy)ws.Target).GetL10nText(out _out_domain);
                 }
                 catch (Exception e)
                 {
@@ -664,13 +636,13 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         private static void l10n_text_set(System.IntPtr obj, System.IntPtr pd, System.String label, System.String domain)
         {
             Eina.Log.Debug("function efl_ui_l10n_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartLegacy)wrapper).SetL10nText(label, domain);
+                    ((LayoutPartLegacy)ws.Target).SetL10nText(label, domain);
                 }
                 catch (Exception e)
                 {
@@ -699,13 +671,13 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
         private static void translation_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_l10n_translation_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((LayoutPartLegacy)wrapper).UpdateTranslation();
+                    ((LayoutPartLegacy)ws.Target).UpdateTranslation();
                 }
                 catch (Exception e)
                 {
@@ -723,7 +695,7 @@ public class LayoutPartLegacy : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,
 
         private static efl_ui_l10n_translation_update_delegate efl_ui_l10n_translation_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 5275b2b..e51a49a 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Represents a Table created as part of a layout.
 /// Cannot be deleted. This is only a representation of an internal object of an EFL layout.</summary>
 [Efl.Ui.LayoutPartTable.NativeMethods]
-public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.IPackTable
+public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.IContainer, Efl.IPack, Efl.IPackTable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartTable(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartTable"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,34 +56,7 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -91,13 +64,12 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -139,7 +111,7 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -147,13 +119,12 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -204,78 +175,48 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
                                          }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     virtual public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     virtual public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
@@ -308,48 +249,32 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
                                                          Efl.IPackTableConcrete.NativeMethods.efl_pack_table_size_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cols, rows);
         Eina.Error.RaiseIfUnhandledException();
                                          }
-    /// <summary>Gird columns property</summary>
-    /// <returns>Number of columns</returns>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <returns>Amount of columns.</returns>
     virtual public int GetTableColumns() {
          var _ret_var = Efl.IPackTableConcrete.NativeMethods.efl_pack_table_columns_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Specifies limit for linear adds - if direction is horizontal</summary>
-    /// <param name="cols">Number of columns</param>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <param name="cols">Amount of columns.</param>
     virtual public void SetTableColumns(int cols) {
                                  Efl.IPackTableConcrete.NativeMethods.efl_pack_table_columns_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cols);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Table rows property</summary>
-    /// <returns>Number of rows</returns>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <returns>Amount of rows.</returns>
     virtual public int GetTableRows() {
          var _ret_var = Efl.IPackTableConcrete.NativeMethods.efl_pack_table_rows_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Specifies limit for linear adds - if direction is vertical</summary>
-    /// <param name="rows">Number of rows</param>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <param name="rows">Amount of rows.</param>
     virtual public void SetTableRows(int rows) {
                                  Efl.IPackTableConcrete.NativeMethods.efl_pack_table_rows_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),rows);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Primary and secondary up/left/right/down directions for linear apis.
-    /// Default is horizontal and vertical. This overrides <see cref="Efl.Ui.IDirection.Direction"/>.</summary>
-    /// <param name="primary">Primary direction</param>
-    /// <param name="secondary">Secondary direction</param>
-    virtual public void GetTableDirection(out Efl.Ui.Dir primary, out Efl.Ui.Dir secondary) {
-                                                         Efl.IPackTableConcrete.NativeMethods.efl_pack_table_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out primary, out secondary);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Primary and secondary up/left/right/down directions for linear apis.
-    /// Default is horizontal and vertical. This overrides <see cref="Efl.Ui.IDirection.Direction"/>.</summary>
-    /// <param name="primary">Primary direction</param>
-    /// <param name="secondary">Secondary direction</param>
-    virtual public void SetTableDirection(Efl.Ui.Dir primary, Efl.Ui.Dir secondary) {
-                                                         Efl.IPackTableConcrete.NativeMethods.efl_pack_table_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),primary, secondary);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
     /// <summary>Pack object at a given location in the table.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
     /// <param name="subobj">A child object to pack in this table.</param>
@@ -382,14 +307,14 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Gird columns property</summary>
-/// <value>Number of columns</value>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <value>Amount of columns.</value>
     public int TableColumns {
         get { return GetTableColumns(); }
         set { SetTableColumns(value); }
     }
-    /// <summary>Table rows property</summary>
-/// <value>Number of rows</value>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <value>Amount of rows.</value>
     public int TableRows {
         get { return GetTableRows(); }
         set { SetTableRows(value); }
@@ -440,46 +365,6 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_count"), func = Marshal.GetFunctionPointerForDelegate(efl_content_count_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -590,26 +475,6 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_rows_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_rows_set_static_delegate) });
             }
 
-            if (efl_pack_table_direction_get_static_delegate == null)
-            {
-                efl_pack_table_direction_get_static_delegate = new efl_pack_table_direction_get_delegate(table_direction_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetTableDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_direction_get_static_delegate) });
-            }
-
-            if (efl_pack_table_direction_set_static_delegate == null)
-            {
-                efl_pack_table_direction_set_static_delegate = new efl_pack_table_direction_set_delegate(table_direction_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetTableDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_direction_set_static_delegate) });
-            }
-
             if (efl_pack_table_static_delegate == null)
             {
                 efl_pack_table_static_delegate = new efl_pack_table_delegate(pack_table);
@@ -650,7 +515,7 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
             return Efl.Ui.LayoutPartTable.efl_ui_layout_part_table_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_layout_part_table_real_part_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object layout, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String part);
@@ -663,13 +528,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static void real_part_set(System.IntPtr obj, System.IntPtr pd, Efl.Object layout, System.String part)
         {
             Eina.Log.Debug("function efl_ui_layout_part_table_real_part_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartTable)wrapper).SetRealPart(layout, part);
+                    ((LayoutPartTable)ws.Target).SetRealPart(layout, part);
                 }
                 catch (Exception e)
                 {
@@ -698,13 +563,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).ContentIterate();
+                    _ret_var = ((LayoutPartTable)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -734,13 +599,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).ContentCount();
+                    _ret_var = ((LayoutPartTable)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -759,146 +624,6 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((LayoutPartTable)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((LayoutPartTable)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((LayoutPartTable)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((LayoutPartTable)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -910,13 +635,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).ClearPack();
+                    _ret_var = ((LayoutPartTable)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -946,13 +671,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).UnpackAll();
+                    _ret_var = ((LayoutPartTable)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -982,13 +707,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).Unpack(subobj);
+                    _ret_var = ((LayoutPartTable)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1018,13 +743,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).Pack(subobj);
+                    _ret_var = ((LayoutPartTable)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1054,13 +779,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static bool table_position_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, out int col, out int row, out int colspan, out int rowspan)
         {
             Eina.Log.Debug("function efl_pack_table_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         col = default(int);        row = default(int);        colspan = default(int);        rowspan = default(int);                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).GetTablePosition(subobj, out col, out row, out colspan, out rowspan);
+                    _ret_var = ((LayoutPartTable)ws.Target).GetTablePosition(subobj, out col, out row, out colspan, out rowspan);
                 }
                 catch (Exception e)
                 {
@@ -1090,13 +815,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static void table_size_get(System.IntPtr obj, System.IntPtr pd, out int cols, out int rows)
         {
             Eina.Log.Debug("function efl_pack_table_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         cols = default(int);        rows = default(int);                            
                 try
                 {
-                    ((LayoutPartTable)wrapper).GetTableSize(out cols, out rows);
+                    ((LayoutPartTable)ws.Target).GetTableSize(out cols, out rows);
                 }
                 catch (Exception e)
                 {
@@ -1125,13 +850,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static void table_size_set(System.IntPtr obj, System.IntPtr pd, int cols, int rows)
         {
             Eina.Log.Debug("function efl_pack_table_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartTable)wrapper).SetTableSize(cols, rows);
+                    ((LayoutPartTable)ws.Target).SetTableSize(cols, rows);
                 }
                 catch (Exception e)
                 {
@@ -1160,13 +885,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static int table_columns_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_table_columns_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).GetTableColumns();
+                    _ret_var = ((LayoutPartTable)ws.Target).GetTableColumns();
                 }
                 catch (Exception e)
                 {
@@ -1196,13 +921,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static void table_columns_set(System.IntPtr obj, System.IntPtr pd, int cols)
         {
             Eina.Log.Debug("function efl_pack_table_columns_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartTable)wrapper).SetTableColumns(cols);
+                    ((LayoutPartTable)ws.Target).SetTableColumns(cols);
                 }
                 catch (Exception e)
                 {
@@ -1231,13 +956,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static int table_rows_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_table_rows_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).GetTableRows();
+                    _ret_var = ((LayoutPartTable)ws.Target).GetTableRows();
                 }
                 catch (Exception e)
                 {
@@ -1267,13 +992,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static void table_rows_set(System.IntPtr obj, System.IntPtr pd, int rows)
         {
             Eina.Log.Debug("function efl_pack_table_rows_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartTable)wrapper).SetTableRows(rows);
+                    ((LayoutPartTable)ws.Target).SetTableRows(rows);
                 }
                 catch (Exception e)
                 {
@@ -1291,76 +1016,6 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
 
         private static efl_pack_table_rows_set_delegate efl_pack_table_rows_set_static_delegate;
 
-        
-        private delegate void efl_pack_table_direction_get_delegate(System.IntPtr obj, System.IntPtr pd,  out Efl.Ui.Dir primary,  out Efl.Ui.Dir secondary);
-
-        
-        public delegate void efl_pack_table_direction_get_api_delegate(System.IntPtr obj,  out Efl.Ui.Dir primary,  out Efl.Ui.Dir secondary);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_direction_get_api_delegate> efl_pack_table_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_direction_get_api_delegate>(Module, "efl_pack_table_direction_get");
-
-        private static void table_direction_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.Dir primary, out Efl.Ui.Dir secondary)
-        {
-            Eina.Log.Debug("function efl_pack_table_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        primary = default(Efl.Ui.Dir);        secondary = default(Efl.Ui.Dir);                            
-                try
-                {
-                    ((LayoutPartTable)wrapper).GetTableDirection(out primary, out secondary);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_table_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out primary, out secondary);
-            }
-        }
-
-        private static efl_pack_table_direction_get_delegate efl_pack_table_direction_get_static_delegate;
-
-        
-        private delegate void efl_pack_table_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir primary,  Efl.Ui.Dir secondary);
-
-        
-        public delegate void efl_pack_table_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir primary,  Efl.Ui.Dir secondary);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_direction_set_api_delegate> efl_pack_table_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_direction_set_api_delegate>(Module, "efl_pack_table_direction_set");
-
-        private static void table_direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir primary, Efl.Ui.Dir secondary)
-        {
-            Eina.Log.Debug("function efl_pack_table_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((LayoutPartTable)wrapper).SetTableDirection(primary, secondary);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_table_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), primary, secondary);
-            }
-        }
-
-        private static efl_pack_table_direction_set_delegate efl_pack_table_direction_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_table_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int col,  int row,  int colspan,  int rowspan);
 
@@ -1372,13 +1027,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static bool pack_table(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int col, int row, int colspan, int rowspan)
         {
             Eina.Log.Debug("function efl_pack_table was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).PackTable(subobj, col, row, colspan, rowspan);
+                    _ret_var = ((LayoutPartTable)ws.Target).PackTable(subobj, col, row, colspan, rowspan);
                 }
                 catch (Exception e)
                 {
@@ -1408,13 +1063,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static System.IntPtr table_contents_get(System.IntPtr obj, System.IntPtr pd, int col, int row, bool below)
         {
             Eina.Log.Debug("function efl_pack_table_contents_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).GetTableContents(col, row, below);
+                    _ret_var = ((LayoutPartTable)ws.Target).GetTableContents(col, row, below);
                 }
                 catch (Exception e)
                 {
@@ -1444,13 +1099,13 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
         private static Efl.Gfx.IEntity table_content_get(System.IntPtr obj, System.IntPtr pd, int col, int row)
         {
             Eina.Log.Debug("function efl_pack_table_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((LayoutPartTable)wrapper).GetTableContent(col, row);
+                    _ret_var = ((LayoutPartTable)ws.Target).GetTableContent(col, row);
                 }
                 catch (Exception e)
                 {
@@ -1469,7 +1124,7 @@ public class LayoutPartTable : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContainer
 
         private static efl_pack_table_content_get_delegate efl_pack_table_content_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 9e189cd..934ef58 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary layout internal part class</summary>
 [Efl.Ui.LayoutPartText.NativeMethods]
-public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.ITextMarkup,Efl.Ui.IL10n
+public class LayoutPartText : Efl.Ui.LayoutPart, Efl.IText, Efl.ITextMarkup, Efl.Ui.IL10n
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected LayoutPartText(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="LayoutPartText"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Retrieves the text string currently being displayed by the given text object.
     /// Do not free() the return value.
     /// 
@@ -141,7 +114,7 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Markup property</summary>
-/// <value>The markup-text representation set to this text.</value>
+    /// <value>The markup-text representation set to this text.</value>
     public System.String Markup {
         get { return GetMarkup(); }
         set { SetMarkup(value); }
@@ -242,7 +215,7 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
             return Efl.Ui.LayoutPartText.efl_ui_layout_part_text_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_text_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -255,13 +228,13 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetText();
+                    _ret_var = ((LayoutPartText)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -291,13 +264,13 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetText(text);
+                    ((LayoutPartText)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -326,13 +299,13 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
         private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_markup_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetMarkup();
+                    _ret_var = ((LayoutPartText)ws.Target).GetMarkup();
                 }
                 catch (Exception e)
                 {
@@ -362,13 +335,13 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
         private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((LayoutPartText)wrapper).SetMarkup(markup);
+                    ((LayoutPartText)ws.Target).SetMarkup(markup);
                 }
                 catch (Exception e)
                 {
@@ -397,14 +370,14 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
         private static System.String l10n_text_get(System.IntPtr obj, System.IntPtr pd, out System.String domain)
         {
             Eina.Log.Debug("function efl_ui_l10n_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 System.String _out_domain = default(System.String);
                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((LayoutPartText)wrapper).GetL10nText(out _out_domain);
+                    _ret_var = ((LayoutPartText)ws.Target).GetL10nText(out _out_domain);
                 }
                 catch (Exception e)
                 {
@@ -435,13 +408,13 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
         private static void l10n_text_set(System.IntPtr obj, System.IntPtr pd, System.String label, System.String domain)
         {
             Eina.Log.Debug("function efl_ui_l10n_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((LayoutPartText)wrapper).SetL10nText(label, domain);
+                    ((LayoutPartText)ws.Target).SetL10nText(label, domain);
                 }
                 catch (Exception e)
                 {
@@ -470,13 +443,13 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
         private static void translation_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_l10n_translation_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((LayoutPartText)wrapper).UpdateTranslation();
+                    ((LayoutPartText)ws.Target).UpdateTranslation();
                 }
                 catch (Exception e)
                 {
@@ -494,7 +467,7 @@ public class LayoutPartText : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText,Efl.I
 
         private static efl_ui_l10n_translation_update_delegate efl_ui_l10n_translation_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e541ee8..6ad3773 100644 (file)
@@ -18,13 +18,13 @@ public interface ILegacy :
 }
 /// <summary>The bg (background) widget is used for setting (solid) background decorations
 /// in a window (unless it has transparency enabled) or on any container object. It works just like an image but has some properties useful for backgrounds, such as setting it to tiled, centered, scaled or stretched.</summary>
-sealed public class ILegacyConcrete : 
-
-ILegacy
+sealed public class ILegacyConcrete :
+    Efl.Eo.EoWrapper
+    , ILegacy
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -39,86 +39,12 @@ ILegacy
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_legacy_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ILegacy"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ILegacyConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ILegacyConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private ILegacyConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     private static IntPtr GetEflClassStatic()
@@ -143,9 +69,9 @@ ILegacy
             return Efl.Ui.ILegacyConcrete.efl_ui_legacy_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index cfb8023..7016aa3 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Simple list widget with Pack interface.</summary>
 [Efl.Ui.List.NativeMethods]
-public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout,Efl.IPackLinear,Efl.Ui.IClickable,Efl.Ui.IMultiSelectable,Efl.Ui.IScrollable,Efl.Ui.IScrollableInteractive,Efl.Ui.IScrollbar,Efl.Ui.ISelectable
+public class List : Efl.Ui.LayoutBase, Efl.IPack, Efl.IPackLayout, Efl.IPackLinear, Efl.Gfx.IArrangement, Efl.Ui.IMultiSelectable, Efl.Ui.IScrollable, Efl.Ui.IScrollableInteractive, Efl.Ui.IScrollbar, Efl.Ui.ISelectable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected List(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="List"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the layout was updated.</summary>
     public event EventHandler LayoutUpdatedEvt
     {
@@ -95,10 +68,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -141,438 +113,6 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is pressed</summary>
-    public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event PressedEvt.</summary>
-    public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is no longer pressed</summary>
-    public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event UnpressedEvt.</summary>
-    public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives a long press</summary>
-    public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event LongpressedEvt.</summary>
-    public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
     /// <summary>Called when scroll operation starts</summary>
     public event EventHandler ScrollStartEvt
     {
@@ -580,10 +120,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -633,10 +172,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -686,10 +224,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -739,10 +276,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -792,10 +328,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -845,10 +380,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -898,10 +432,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -951,10 +484,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1004,10 +536,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1057,10 +588,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1110,10 +640,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1163,10 +692,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1216,10 +744,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1269,10 +796,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1322,10 +848,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1375,13 +900,12 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
+                        Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1437,13 +961,12 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
+                        Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1499,13 +1022,12 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
+                        Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1561,10 +1083,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1614,10 +1135,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1667,13 +1187,12 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
+                        Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1729,13 +1248,12 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
+                        Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1791,13 +1309,12 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
+                        Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1846,13 +1363,12 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
+                        Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1901,10 +1417,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1954,10 +1469,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2007,10 +1521,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2060,10 +1573,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2113,10 +1625,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2166,10 +1677,9 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2241,64 +1751,34 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Ui.ListItem>(_ret_var, true, false);
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
@@ -2323,90 +1803,118 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, 0).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the beginning.</param>
+    /// <param name="subobj">Object to pack at the beginning.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBegin(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_begin_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Append item at the end of this container.
+    /// <summary>Append object at the end of this container.
     /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, -1).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the end.</param>
+    /// <param name="subobj">Object to pack at the end.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackEnd(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_end_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Prepend item before other sub object.
+    /// <summary>Prepend an object before an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack before <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack before <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackBefore(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_before_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Append item after other sub object.
+    /// <summary>Append an object after an existing sub-object.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack after <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
+    /// <param name="subobj">Object to pack after <c>existing</c>.</param>
+    /// <param name="existing">Existing reference sub-object.</param>
     /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAfter(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_after_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Inserts <c>subobj</c> BEFORE the item at position <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Inserts <c>subobj</c> BEFORE the sub-object at position <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
     /// If <c>index</c> is less than -<c>count</c>, it will trigger <see cref="Efl.IPackLinear.PackBegin"/>(<c>subobj</c>) whereas <c>index</c> greater than <c>count</c>-1 will trigger <see cref="Efl.IPackLinear.PackEnd"/>(<c>subobj</c>).
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack.</param>
-    /// <param name="index">Index of item to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <param name="subobj">Object to pack.</param>
+    /// <param name="index">Index of existing sub-object to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool PackAt(Efl.Gfx.IEntity subobj, int index) {
                                                          var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
-    /// <summary>Content at a given <c>index</c> in this container.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Sub-object at a given <c>index</c> in this container.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will return the first item whereas <c>index</c> greater than <c>count</c>-1 will return the last item.</summary>
-    /// <param name="index">Index of the item to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The object contained at the given <c>index</c>.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will return the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will return the last sub-object.</summary>
+    /// <param name="index">Index of the existing sub-object to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object contained at the given <c>index</c>.</returns>
     virtual public Efl.Gfx.IEntity GetPackContent(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Get the index of a child in this container.</summary>
-    /// <param name="subobj">An object contained in this pack.</param>
-    /// <returns>-1 in case <c>subobj</c> is not a child of this object, or the index of this item in the range 0 to (<c>count</c>-1).</returns>
+    /// <summary>Get the index of a sub-object in this container.</summary>
+    /// <param name="subobj">An existing sub-object in this container.</param>
+    /// <returns>-1 in case <c>subobj</c> is not found, or the index of <c>subobj</c> in the range 0 to (<c>count</c>-1).</returns>
     virtual public int GetPackIndex(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_index_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Pop out (remove) the item at the specified <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
+    /// <summary>Pop out (remove) the sub-object at the specified <c>index</c>.
+    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first sub-object (0) to last (<c>count</c>-1), and negative numbers go from last sub-object (-1) to first (-<c>count</c>). <c>count</c> is the number of sub-objects currently in the container as returned by <see cref="Efl.IContainer.ContentCount"/>.
     /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will remove the first item whereas <c>index</c> greater than <c>count</c>-1 will remove the last item.
-    /// 
-    /// Equivalent to <see cref="Efl.IPack.Unpack"/>(<see cref="Efl.IPackLinear.GetPackContent"/>(<c>index</c>)).</summary>
-    /// <param name="index">Index of item to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The child item if it could be removed.</returns>
+    /// If <c>index</c> is less than -<c>count</c>, it will remove the first sub-object whereas <c>index</c> greater than <c>count</c>-1 will remove the last sub-object.</summary>
+    /// <param name="index">Index of the sub-object to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
+    /// <returns>The sub-object if it could be removed.</returns>
     virtual public Efl.Gfx.IEntity PackUnpackAt(int index) {
                                  var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_unpack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
         Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
+                        return _ret_var;
+ }
+    /// <summary>Alignment of the container within its bounds</summary>
+    /// <param name="align_horiz">Horizontal alignment</param>
+    /// <param name="align_vert">Vertical alignment</param>
+    virtual public void GetContentAlign(out double align_horiz, out double align_vert) {
+                                                         Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Alignment of the container within its bounds</summary>
+    /// <param name="align_horiz">Horizontal alignment</param>
+    /// <param name="align_vert">Vertical alignment</param>
+    virtual public void SetContentAlign(double align_horiz, double align_vert) {
+                                                         Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Padding between items contained in this object.</summary>
+    /// <param name="pad_horiz">Horizontal padding</param>
+    /// <param name="pad_vert">Vertical padding</param>
+    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+    virtual public void GetContentPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
+                                                                                 Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Padding between items contained in this object.</summary>
+    /// <param name="pad_horiz">Horizontal padding</param>
+    /// <param name="pad_vert">Vertical padding</param>
+    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+    virtual public void SetContentPadding(double pad_horiz, double pad_vert, bool scalable) {
+                                                                                 Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
     /// <summary>The mode type for children selection.</summary>
     /// <returns>Type of selection of children</returns>
     virtual public Efl.Ui.SelectMode GetSelectMode() {
@@ -2622,54 +2130,54 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Property data of last selected item.</summary>
-/// <value>last selected item of list.</value>
+    /// <value>last selected item of list.</value>
     public Efl.Ui.ListItem LastSelectedItem {
         get { return GetLastSelectedItem(); }
     }
     /// <summary>The mode type for children selection.</summary>
-/// <value>Type of selection of children</value>
+    /// <value>Type of selection of children</value>
     public Efl.Ui.SelectMode SelectMode {
         get { return GetSelectMode(); }
         set { SetSelectMode(value); }
     }
     /// <summary>The content position</summary>
-/// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
+    /// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
     public Eina.Position2D ContentPos {
         get { return GetContentPos(); }
         set { SetContentPos(value); }
     }
     /// <summary>The content size</summary>
-/// <value>The content size in pixels.</value>
+    /// <value>The content size in pixels.</value>
     public Eina.Size2D ContentSize {
         get { return GetContentSize(); }
     }
     /// <summary>The viewport geometry</summary>
-/// <value>It is absolute geometry.</value>
+    /// <value>It is absolute geometry.</value>
     public Eina.Rect ViewportGeometry {
         get { return GetViewportGeometry(); }
     }
     /// <summary>Freeze property This function will freeze scrolling movement (by input of a user). Unlike efl_ui_scrollable_movement_block_set, this function freezes bidirectionally. If you want to freeze in only one direction, See <see cref="Efl.Ui.IScrollableInteractive.SetMovementBlock"/>.</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     public bool ScrollFreeze {
         get { return GetScrollFreeze(); }
         set { SetScrollFreeze(value); }
     }
     /// <summary>Hold property When hold turns on, it only scrolls by holding action.</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     public bool ScrollHold {
         get { return GetScrollHold(); }
         set { SetScrollHold(value); }
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
+    /// <value>Which axis (or axes) to block</value>
     public Efl.Ui.ScrollBlock MovementBlock {
         get { return GetMovementBlock(); }
         set { SetMovementBlock(value); }
     }
     /// <summary>Control the step size
-/// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
-/// <value>The step size in pixels</value>
+    /// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
+    /// <value>The step size in pixels</value>
     public Eina.Position2D StepSize {
         get { return GetStepSize(); }
         set { SetStepSize(value); }
@@ -2730,46 +2238,6 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_list_selected_items_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_list_selected_items_get_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -2910,6 +2378,46 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack_at"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_at_static_delegate) });
             }
 
+            if (efl_gfx_arrangement_content_align_get_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_align_get_static_delegate = new efl_gfx_arrangement_content_align_get_delegate(content_align_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetContentAlign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_align_get_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_align_set_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_align_set_static_delegate = new efl_gfx_arrangement_content_align_set_delegate(content_align_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetContentAlign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_align_set_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_padding_get_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_padding_get_static_delegate = new efl_gfx_arrangement_content_padding_get_delegate(content_padding_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetContentPadding") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_padding_get_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_padding_set_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_padding_set_static_delegate = new efl_gfx_arrangement_content_padding_set_delegate(content_padding_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetContentPadding") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_padding_set_static_delegate) });
+            }
+
             if (efl_ui_select_mode_get_static_delegate == null)
             {
                 efl_ui_select_mode_get_static_delegate = new efl_ui_select_mode_get_delegate(select_mode_get);
@@ -3200,7 +2708,7 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
             return Efl.Ui.List.efl_ui_list_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Ui.ListItem efl_ui_list_last_selected_item_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -3213,13 +2721,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Efl.Ui.ListItem last_selected_item_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_list_last_selected_item_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ListItem _ret_var = default(Efl.Ui.ListItem);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetLastSelectedItem();
+                    _ret_var = ((List)ws.Target).GetLastSelectedItem();
                 }
                 catch (Exception e)
                 {
@@ -3249,13 +2757,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void item_scroll(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ListItem item, bool animation)
         {
             Eina.Log.Debug("function efl_ui_list_item_scroll was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((List)wrapper).ItemScroll(item, animation);
+                    ((List)ws.Target).ItemScroll(item, animation);
                 }
                 catch (Exception e)
                 {
@@ -3284,13 +2792,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void item_scroll_align(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ListItem item, double align, bool animation)
         {
             Eina.Log.Debug("function efl_ui_list_item_scroll_align was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((List)wrapper).ItemScrollAlign(item, align, animation);
+                    ((List)ws.Target).ItemScrollAlign(item, align, animation);
                 }
                 catch (Exception e)
                 {
@@ -3319,13 +2827,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static System.IntPtr selected_items_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_list_selected_items_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.ListItem> _ret_var = default(Eina.Iterator<Efl.Ui.ListItem>);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetSelectedItems();
+                    _ret_var = ((List)ws.Target).GetSelectedItems();
                 }
                 catch (Exception e)
                 {
@@ -3344,146 +2852,6 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
 
         private static efl_ui_list_selected_items_get_delegate efl_ui_list_selected_items_get_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((List)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((List)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((List)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((List)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -3495,13 +2863,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).ClearPack();
+                    _ret_var = ((List)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -3531,13 +2899,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).UnpackAll();
+                    _ret_var = ((List)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -3567,13 +2935,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).Unpack(subobj);
+                    _ret_var = ((List)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -3603,13 +2971,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).Pack(subobj);
+                    _ret_var = ((List)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -3639,13 +3007,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void layout_request(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_request was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((List)wrapper).LayoutRequest();
+                    ((List)ws.Target).LayoutRequest();
                 }
                 catch (Exception e)
                 {
@@ -3674,13 +3042,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void layout_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((List)wrapper).UpdateLayout();
+                    ((List)ws.Target).UpdateLayout();
                 }
                 catch (Exception e)
                 {
@@ -3709,13 +3077,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_begin(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_begin was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).PackBegin(subobj);
+                    _ret_var = ((List)ws.Target).PackBegin(subobj);
                 }
                 catch (Exception e)
                 {
@@ -3745,13 +3113,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_end(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).PackEnd(subobj);
+                    _ret_var = ((List)ws.Target).PackEnd(subobj);
                 }
                 catch (Exception e)
                 {
@@ -3781,13 +3149,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_before(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_before was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).PackBefore(subobj, existing);
+                    _ret_var = ((List)ws.Target).PackBefore(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -3817,13 +3185,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_after(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
         {
             Eina.Log.Debug("function efl_pack_after was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).PackAfter(subobj, existing);
+                    _ret_var = ((List)ws.Target).PackAfter(subobj, existing);
                 }
                 catch (Exception e)
                 {
@@ -3853,13 +3221,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool pack_at(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
         {
             Eina.Log.Debug("function efl_pack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).PackAt(subobj, index);
+                    _ret_var = ((List)ws.Target).PackAt(subobj, index);
                 }
                 catch (Exception e)
                 {
@@ -3889,13 +3257,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Efl.Gfx.IEntity pack_content_get(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetPackContent(index);
+                    _ret_var = ((List)ws.Target).GetPackContent(index);
                 }
                 catch (Exception e)
                 {
@@ -3925,13 +3293,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static int pack_index_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetPackIndex(subobj);
+                    _ret_var = ((List)ws.Target).GetPackIndex(subobj);
                 }
                 catch (Exception e)
                 {
@@ -3961,13 +3329,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Efl.Gfx.IEntity pack_unpack_at(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_pack_unpack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((List)wrapper).PackUnpackAt(index);
+                    _ret_var = ((List)ws.Target).PackUnpackAt(index);
                 }
                 catch (Exception e)
                 {
@@ -3987,6 +3355,146 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static efl_pack_unpack_at_delegate efl_pack_unpack_at_static_delegate;
 
         
+        private delegate void efl_gfx_arrangement_content_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
+
+        
+        public delegate void efl_gfx_arrangement_content_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_get_api_delegate> efl_gfx_arrangement_content_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_get_api_delegate>(Module, "efl_gfx_arrangement_content_align_get");
+
+        private static void content_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_align_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                        align_horiz = default(double);        align_vert = default(double);                            
+                try
+                {
+                    ((List)ws.Target).GetContentAlign(out align_horiz, out align_vert);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_align_get_delegate efl_gfx_arrangement_content_align_get_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
+
+        
+        public delegate void efl_gfx_arrangement_content_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_set_api_delegate> efl_gfx_arrangement_content_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_set_api_delegate>(Module, "efl_gfx_arrangement_content_align_set");
+
+        private static void content_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_align_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((List)ws.Target).SetContentAlign(align_horiz, align_vert);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_align_set_delegate efl_gfx_arrangement_content_align_set_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
+
+        
+        public delegate void efl_gfx_arrangement_content_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_get_api_delegate> efl_gfx_arrangement_content_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_get_api_delegate>(Module, "efl_gfx_arrangement_content_padding_get");
+
+        private static void content_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_padding_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
+                try
+                {
+                    ((List)ws.Target).GetContentPadding(out pad_horiz, out pad_vert, out scalable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_padding_get_delegate efl_gfx_arrangement_content_padding_get_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
+
+        
+        public delegate void efl_gfx_arrangement_content_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_set_api_delegate> efl_gfx_arrangement_content_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_set_api_delegate>(Module, "efl_gfx_arrangement_content_padding_set");
+
+        private static void content_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_padding_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    
+                try
+                {
+                    ((List)ws.Target).SetContentPadding(pad_horiz, pad_vert, scalable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_padding_set_delegate efl_gfx_arrangement_content_padding_set_static_delegate;
+
+        
         private delegate Efl.Ui.SelectMode efl_ui_select_mode_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
@@ -3997,13 +3505,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Efl.Ui.SelectMode select_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_select_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.SelectMode _ret_var = default(Efl.Ui.SelectMode);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetSelectMode();
+                    _ret_var = ((List)ws.Target).GetSelectMode();
                 }
                 catch (Exception e)
                 {
@@ -4033,13 +3541,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void select_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectMode mode)
         {
             Eina.Log.Debug("function efl_ui_select_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((List)wrapper).SetSelectMode(mode);
+                    ((List)ws.Target).SetSelectMode(mode);
                 }
                 catch (Exception e)
                 {
@@ -4068,13 +3576,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Eina.Position2D.NativeStruct content_pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetContentPos();
+                    _ret_var = ((List)ws.Target).GetContentPos();
                 }
                 catch (Exception e)
                 {
@@ -4104,14 +3612,14 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void content_pos_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((List)wrapper).SetContentPos(_in_pos);
+                    ((List)ws.Target).SetContentPos(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -4140,13 +3648,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Eina.Size2D.NativeStruct content_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetContentSize();
+                    _ret_var = ((List)ws.Target).GetContentSize();
                 }
                 catch (Exception e)
                 {
@@ -4176,13 +3684,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Eina.Rect.NativeStruct viewport_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_viewport_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetViewportGeometry();
+                    _ret_var = ((List)ws.Target).GetViewportGeometry();
                 }
                 catch (Exception e)
                 {
@@ -4212,13 +3720,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bounce_enabled_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((List)wrapper).GetBounceEnabled(out horiz, out vert);
+                    ((List)ws.Target).GetBounceEnabled(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -4247,13 +3755,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bounce_enabled_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((List)wrapper).SetBounceEnabled(horiz, vert);
+                    ((List)ws.Target).SetBounceEnabled(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -4282,13 +3790,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool scroll_freeze_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetScrollFreeze();
+                    _ret_var = ((List)ws.Target).GetScrollFreeze();
                 }
                 catch (Exception e)
                 {
@@ -4318,13 +3826,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void scroll_freeze_set(System.IntPtr obj, System.IntPtr pd, bool freeze)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((List)wrapper).SetScrollFreeze(freeze);
+                    ((List)ws.Target).SetScrollFreeze(freeze);
                 }
                 catch (Exception e)
                 {
@@ -4353,13 +3861,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static bool scroll_hold_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetScrollHold();
+                    _ret_var = ((List)ws.Target).GetScrollHold();
                 }
                 catch (Exception e)
                 {
@@ -4389,13 +3897,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void scroll_hold_set(System.IntPtr obj, System.IntPtr pd, bool hold)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((List)wrapper).SetScrollHold(hold);
+                    ((List)ws.Target).SetScrollHold(hold);
                 }
                 catch (Exception e)
                 {
@@ -4424,13 +3932,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void looping_get(System.IntPtr obj, System.IntPtr pd, out bool loop_h, out bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         loop_h = default(bool);        loop_v = default(bool);                            
                 try
                 {
-                    ((List)wrapper).GetLooping(out loop_h, out loop_v);
+                    ((List)ws.Target).GetLooping(out loop_h, out loop_v);
                 }
                 catch (Exception e)
                 {
@@ -4459,13 +3967,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void looping_set(System.IntPtr obj, System.IntPtr pd, bool loop_h, bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((List)wrapper).SetLooping(loop_h, loop_v);
+                    ((List)ws.Target).SetLooping(loop_h, loop_v);
                 }
                 catch (Exception e)
                 {
@@ -4494,13 +4002,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Efl.Ui.ScrollBlock movement_block_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ScrollBlock _ret_var = default(Efl.Ui.ScrollBlock);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetMovementBlock();
+                    _ret_var = ((List)ws.Target).GetMovementBlock();
                 }
                 catch (Exception e)
                 {
@@ -4530,13 +4038,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void movement_block_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollBlock block)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((List)wrapper).SetMovementBlock(block);
+                    ((List)ws.Target).SetMovementBlock(block);
                 }
                 catch (Exception e)
                 {
@@ -4565,13 +4073,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void gravity_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((List)wrapper).GetGravity(out x, out y);
+                    ((List)ws.Target).GetGravity(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -4600,13 +4108,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void gravity_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((List)wrapper).SetGravity(x, y);
+                    ((List)ws.Target).SetGravity(x, y);
                 }
                 catch (Exception e)
                 {
@@ -4635,13 +4143,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void match_content_set(System.IntPtr obj, System.IntPtr pd, bool w, bool h)
         {
             Eina.Log.Debug("function efl_ui_scrollable_match_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((List)wrapper).SetMatchContent(w, h);
+                    ((List)ws.Target).SetMatchContent(w, h);
                 }
                 catch (Exception e)
                 {
@@ -4670,13 +4178,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static Eina.Position2D.NativeStruct step_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((List)wrapper).GetStepSize();
+                    _ret_var = ((List)ws.Target).GetStepSize();
                 }
                 catch (Exception e)
                 {
@@ -4706,14 +4214,14 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void step_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct step)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_step = step;
                             
                 try
                 {
-                    ((List)wrapper).SetStepSize(_in_step);
+                    ((List)ws.Target).SetStepSize(_in_step);
                 }
                 catch (Exception e)
                 {
@@ -4742,14 +4250,14 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void scroll(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool animation)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                     
                 try
                 {
-                    ((List)wrapper).Scroll(_in_rect, animation);
+                    ((List)ws.Target).Scroll(_in_rect, animation);
                 }
                 catch (Exception e)
                 {
@@ -4778,13 +4286,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_mode_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.ScrollbarMode hbar, out Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         hbar = default(Efl.Ui.ScrollbarMode);        vbar = default(Efl.Ui.ScrollbarMode);                            
                 try
                 {
-                    ((List)wrapper).GetBarMode(out hbar, out vbar);
+                    ((List)ws.Target).GetBarMode(out hbar, out vbar);
                 }
                 catch (Exception e)
                 {
@@ -4813,13 +4321,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollbarMode hbar, Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((List)wrapper).SetBarMode(hbar, vbar);
+                    ((List)ws.Target).SetBarMode(hbar, vbar);
                 }
                 catch (Exception e)
                 {
@@ -4848,13 +4356,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_size_get(System.IntPtr obj, System.IntPtr pd, out double width, out double height)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         width = default(double);        height = default(double);                            
                 try
                 {
-                    ((List)wrapper).GetBarSize(out width, out height);
+                    ((List)ws.Target).GetBarSize(out width, out height);
                 }
                 catch (Exception e)
                 {
@@ -4883,13 +4391,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_position_get(System.IntPtr obj, System.IntPtr pd, out double posx, out double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         posx = default(double);        posy = default(double);                            
                 try
                 {
-                    ((List)wrapper).GetBarPosition(out posx, out posy);
+                    ((List)ws.Target).GetBarPosition(out posx, out posy);
                 }
                 catch (Exception e)
                 {
@@ -4918,13 +4426,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_position_set(System.IntPtr obj, System.IntPtr pd, double posx, double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((List)wrapper).SetBarPosition(posx, posy);
+                    ((List)ws.Target).SetBarPosition(posx, posy);
                 }
                 catch (Exception e)
                 {
@@ -4953,13 +4461,13 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
         private static void bar_visibility_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_visibility_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((List)wrapper).UpdateBarVisibility();
+                    ((List)ws.Target).UpdateBarVisibility();
                 }
                 catch (Exception e)
                 {
@@ -4977,7 +4485,7 @@ public class List : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLayout
 
         private static efl_ui_scrollbar_bar_visibility_update_delegate efl_ui_scrollbar_bar_visibility_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 804c37d..82ec166 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>List Default Item class. This class need to be sub object of list widget. text and contents can be appliable by efl_text, efl_content or efl_part APIs.</summary>
 [Efl.Ui.ListDefaultItem.NativeMethods]
-public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,Efl.ITextMarkup
+public class ListDefaultItem : Efl.Ui.ListItem, Efl.IContent, Efl.IText, Efl.ITextMarkup
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ListDefaultItem(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ListDefaultItem"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -96,13 +69,12 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -144,6 +116,30 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
+    /// <summary>The extra content part for list default item. extra part is the right-side content of list item.</summary>
+    public Efl.Ui.ItemPartExtra ExtraPart
+    {
+        get
+        {
+            return GetPart("extra") as Efl.Ui.ItemPartExtra;
+        }
+    }
+    /// <summary>The icon content part for list default item. icon part is the left-side content of list item.</summary>
+    public Efl.Ui.ItemPartIcon IconPart
+    {
+        get
+        {
+            return GetPart("icon") as Efl.Ui.ItemPartIcon;
+        }
+    }
+    /// <summary>The text part for list default item.</summary>
+    public Efl.Ui.ItemPartText TextPart
+    {
+        get
+        {
+            return GetPart("text") as Efl.Ui.ItemPartText;
+        }
+    }
     /// <summary>Sub-object currently set as this object&apos;s single content.
     /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
     /// (Since EFL 1.22)</summary>
@@ -204,15 +200,15 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>Markup property</summary>
-/// <value>The markup-text representation set to this text.</value>
+    /// <value>The markup-text representation set to this text.</value>
     public System.String Markup {
         get { return GetMarkup(); }
         set { SetMarkup(value); }
@@ -313,7 +309,7 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
             return Efl.Ui.ListDefaultItem.efl_ui_list_default_item_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -326,13 +322,13 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ListDefaultItem)wrapper).GetContent();
+                    _ret_var = ((ListDefaultItem)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -362,13 +358,13 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListDefaultItem)wrapper).SetContent(content);
+                    _ret_var = ((ListDefaultItem)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -398,13 +394,13 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ListDefaultItem)wrapper).UnsetContent();
+                    _ret_var = ((ListDefaultItem)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -434,13 +430,13 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ListDefaultItem)wrapper).GetText();
+                    _ret_var = ((ListDefaultItem)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -470,13 +466,13 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListDefaultItem)wrapper).SetText(text);
+                    ((ListDefaultItem)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -505,13 +501,13 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_markup_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ListDefaultItem)wrapper).GetMarkup();
+                    _ret_var = ((ListDefaultItem)ws.Target).GetMarkup();
                 }
                 catch (Exception e)
                 {
@@ -541,13 +537,13 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListDefaultItem)wrapper).SetMarkup(markup);
+                    ((ListDefaultItem)ws.Target).SetMarkup(markup);
                 }
                 catch (Exception e)
                 {
@@ -565,7 +561,7 @@ public class ListDefaultItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent,Efl
 
         private static efl_text_markup_set_delegate efl_text_markup_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 5d0264e..2749be1 100644 (file)
@@ -10,7 +10,7 @@ namespace Efl {
 namespace Ui {
 
 [Efl.Ui.ListItem.NativeMethods]
-public abstract class ListItem : Efl.Ui.Item, Efl.Eo.IWrapper
+public abstract class ListItem : Efl.Ui.Item
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -49,7 +49,7 @@ public abstract class ListItem : Efl.Ui.Item, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ListItem(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class ListItemRealized : ListItem
@@ -67,33 +67,6 @@ public abstract class ListItem : Efl.Ui.Item, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.ListItem.efl_ui_list_item_class_get();
@@ -117,9 +90,9 @@ public abstract class ListItem : Efl.Ui.Item, Efl.Eo.IWrapper
             return Efl.Ui.ListItem.efl_ui_list_item_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -9,16 +9,16 @@ namespace Efl {
 
 namespace Ui {
 
-/// <summary>List Empty Item class. This item have only one swallow space, thus user can decorate item by filling the swallow with any kind of container.</summary>
-[Efl.Ui.ListEmptyItem.NativeMethods]
-public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
+/// <summary>List Placeholder Item class. This item have only one swallow space, thus user can decorate item by filling the swallow with any kind of container.</summary>
+[Efl.Ui.ListPlaceholderItem.NativeMethods]
+public class ListPlaceholderItem : Efl.Ui.ListItem, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
     {
         get
         {
-            if (((object)this).GetType() == typeof(ListEmptyItem))
+            if (((object)this).GetType() == typeof(ListPlaceholderItem))
             {
                 return GetEflClassStatic();
             }
@@ -30,12 +30,12 @@ public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
     }
 
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
-        efl_ui_list_empty_item_class_get();
-    /// <summary>Initializes a new instance of the <see cref="ListEmptyItem"/> class.</summary>
+        efl_ui_list_placeholder_item_class_get();
+    /// <summary>Initializes a new instance of the <see cref="ListPlaceholderItem"/> class.</summary>
     /// <param name="parent">Parent instance.</param>
     /// <param name="style">The widget style to use. See <see cref="Efl.Ui.Widget.SetStyle"/></param>
-    public ListEmptyItem(Efl.Object parent
-            , System.String style = null) : base(efl_ui_list_empty_item_class_get(), typeof(ListEmptyItem), parent)
+    public ListPlaceholderItem(Efl.Object parent
+            , System.String style = null) : base(efl_ui_list_placeholder_item_class_get(), typeof(ListPlaceholderItem), parent)
     {
         if (Efl.Eo.Globals.ParamHelperCheck(style))
         {
@@ -45,47 +45,20 @@ public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
         FinishInstantiation();
     }
 
-    /// <summary>Initializes a new instance of the <see cref="ListEmptyItem"/> class.
+    /// <summary>Initializes a new instance of the <see cref="ListPlaceholderItem"/> class.
     /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
     /// <param name="raw">The native pointer to be wrapped.</param>
-    protected ListEmptyItem(System.IntPtr raw) : base(raw)
+    protected ListPlaceholderItem(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
-    /// <summary>Initializes a new instance of the <see cref="ListEmptyItem"/> class.
+    /// <summary>Initializes a new instance of the <see cref="ListPlaceholderItem"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
     /// <param name="baseKlass">The pointer to the base native Eo class.</param>
     /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
     /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected ListEmptyItem(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
-    {
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
+    protected ListPlaceholderItem(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
     {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Sent after the content is set or unset using the current content object.
@@ -96,13 +69,12 @@ public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -144,6 +116,14 @@ public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
+    /// <summary>the content part for list placeholder item. the content part is empty slot for user customizing. fill the place with container widget such as layout, box, table.</summary>
+    public Efl.Ui.ItemPartContent ContentPart
+    {
+        get
+        {
+            return GetPart("content") as Efl.Ui.ItemPartContent;
+        }
+    }
     /// <summary>Sub-object currently set as this object&apos;s single content.
     /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
     /// (Since EFL 1.22)</summary>
@@ -172,16 +152,16 @@ public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
         return _ret_var;
  }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     private static IntPtr GetEflClassStatic()
     {
-        return Efl.Ui.ListEmptyItem.efl_ui_list_empty_item_class_get();
+        return Efl.Ui.ListPlaceholderItem.efl_ui_list_placeholder_item_class_get();
     }
     /// <summary>Wrapper for native methods and virtual method delegates.
     /// For internal use by generated code only.</summary>
@@ -232,10 +212,10 @@ public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
         /// <returns>The native class pointer.</returns>
         public override IntPtr GetEflClass()
         {
-            return Efl.Ui.ListEmptyItem.efl_ui_list_empty_item_class_get();
+            return Efl.Ui.ListPlaceholderItem.efl_ui_list_placeholder_item_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -248,13 +228,13 @@ public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ListEmptyItem)wrapper).GetContent();
+                    _ret_var = ((ListPlaceholderItem)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -284,13 +264,13 @@ public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListEmptyItem)wrapper).SetContent(content);
+                    _ret_var = ((ListPlaceholderItem)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -320,13 +300,13 @@ public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ListEmptyItem)wrapper).UnsetContent();
+                    _ret_var = ((ListPlaceholderItem)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -345,7 +325,7 @@ public class ListEmptyItem : Efl.Ui.ListItem, Efl.Eo.IWrapper,Efl.IContent
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 4ff278c..cc2421c 100644 (file)
@@ -40,7 +40,7 @@ public class ListViewItemUnhighlightedEvt_Args : EventArgs {
     public Efl.Ui.ListViewItemEvent arg { get; set; }
 }
 [Efl.Ui.ListView.NativeMethods]
-public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection,Efl.Ui.IClickable,Efl.Ui.IListViewModel,Efl.Ui.IScrollable,Efl.Ui.IScrollableInteractive,Efl.Ui.IScrollbar,Efl.Ui.ISelectable,Efl.Ui.IWidgetFocusManager,Efl.Ui.Focus.IComposition,Efl.Ui.Focus.IManager,Efl.Ui.Focus.IManagerSub
+public class ListView : Efl.Ui.LayoutBase, Efl.Access.ISelection, Efl.Ui.IListViewModel, Efl.Ui.IScrollable, Efl.Ui.IScrollableInteractive, Efl.Ui.IScrollbar, Efl.Ui.ISelectable, Efl.Ui.IWidgetFocusManager, Efl.Ui.Focus.IComposition, Efl.Ui.Focus.IManager, Efl.Ui.Focus.IManagerSub
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -79,7 +79,7 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ListView(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ListView"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -90,46 +90,18 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     public event EventHandler<Efl.Ui.ListViewItemRealizedEvt_Args> ItemRealizedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ListViewItemRealizedEvt_Args args = new Efl.Ui.ListViewItemRealizedEvt_Args();
+                        Efl.Ui.ListViewItemRealizedEvt_Args args = new Efl.Ui.ListViewItemRealizedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -185,13 +157,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ListViewItemUnrealizedEvt_Args args = new Efl.Ui.ListViewItemUnrealizedEvt_Args();
+                        Efl.Ui.ListViewItemUnrealizedEvt_Args args = new Efl.Ui.ListViewItemUnrealizedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -247,13 +218,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ListViewItemFocusedEvt_Args args = new Efl.Ui.ListViewItemFocusedEvt_Args();
+                        Efl.Ui.ListViewItemFocusedEvt_Args args = new Efl.Ui.ListViewItemFocusedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -309,13 +279,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ListViewItemUnfocusedEvt_Args args = new Efl.Ui.ListViewItemUnfocusedEvt_Args();
+                        Efl.Ui.ListViewItemUnfocusedEvt_Args args = new Efl.Ui.ListViewItemUnfocusedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -371,13 +340,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ListViewItemHighlightedEvt_Args args = new Efl.Ui.ListViewItemHighlightedEvt_Args();
+                        Efl.Ui.ListViewItemHighlightedEvt_Args args = new Efl.Ui.ListViewItemHighlightedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -433,13 +401,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ListViewItemUnhighlightedEvt_Args args = new Efl.Ui.ListViewItemUnhighlightedEvt_Args();
+                        Efl.Ui.ListViewItemUnhighlightedEvt_Args args = new Efl.Ui.ListViewItemUnhighlightedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -496,10 +463,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -542,438 +508,6 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is pressed</summary>
-    public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event PressedEvt.</summary>
-    public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is no longer pressed</summary>
-    public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event UnpressedEvt.</summary>
-    public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives a long press</summary>
-    public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event LongpressedEvt.</summary>
-    public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
     /// <summary>Called when scroll operation starts</summary>
     public event EventHandler ScrollStartEvt
     {
@@ -981,10 +515,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1034,10 +567,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1087,10 +619,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1140,10 +671,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1193,10 +723,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1246,10 +775,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1299,10 +827,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1352,10 +879,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1405,10 +931,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1458,10 +983,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1511,10 +1035,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1564,10 +1087,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1617,10 +1139,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1670,10 +1191,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1723,10 +1243,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1776,13 +1295,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
+                        Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1838,13 +1356,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
+                        Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1900,13 +1417,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
+                        Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1962,10 +1478,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2015,10 +1530,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2068,13 +1582,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
+                        Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -2130,13 +1643,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
+                        Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -2192,13 +1704,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
+                        Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -2247,13 +1758,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
+                        Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -2302,10 +1812,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2355,10 +1864,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2408,10 +1916,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2461,10 +1968,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2514,10 +2020,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2567,10 +2072,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2621,13 +2125,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -2677,10 +2180,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2731,10 +2233,9 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2785,13 +2286,12 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -2841,14 +2341,13 @@ public class ListView : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -3461,32 +2960,32 @@ logical_order.Own = false;
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Get whether the homogeneous mode is enabled.</summary>
-/// <value>Assume the items within the genlist are of the same height and width. Default is <c>false</c>.</value>
+    /// <value>Assume the items within the genlist are of the same height and width. Default is <c>false</c>.</value>
     public bool Homogeneous {
         get { return GetHomogeneous(); }
         set { SetHomogeneous(value); }
     }
     /// <summary>Listview select mode.</summary>
-/// <value>The select mode.</value>
+    /// <value>The select mode.</value>
     public Elm.Object.SelectMode SelectMode {
         get { return GetSelectMode(); }
         set { SetSelectMode(value); }
     }
-        public System.String DefaultStyle {
+    public System.String DefaultStyle {
         get { return GetDefaultStyle(); }
         set { SetDefaultStyle(value); }
     }
     /// <summary>Listview layout factory set.</summary>
-/// <value>The factory.</value>
+    /// <value>The factory.</value>
     public Efl.Ui.IFactory LayoutFactory {
         set { SetLayoutFactory(value); }
     }
     /// <summary>Gets the number of currently selected children</summary>
-/// <value>Number of currently selected children</value>
+    /// <value>Number of currently selected children</value>
     public int SelectedChildrenCount {
         get { return GetSelectedChildrenCount(); }
     }
-        public int ModelSize {
+    public int ModelSize {
         get { return GetModelSize(); }
     }
     /// <summary>Minimal content size.</summary>
@@ -3495,93 +2994,93 @@ logical_order.Own = false;
         set { SetMinSize(value); }
     }
     /// <summary>The content position</summary>
-/// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
+    /// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
     public Eina.Position2D ContentPos {
         get { return GetContentPos(); }
         set { SetContentPos(value); }
     }
     /// <summary>The content size</summary>
-/// <value>The content size in pixels.</value>
+    /// <value>The content size in pixels.</value>
     public Eina.Size2D ContentSize {
         get { return GetContentSize(); }
     }
     /// <summary>The viewport geometry</summary>
-/// <value>It is absolute geometry.</value>
+    /// <value>It is absolute geometry.</value>
     public Eina.Rect ViewportGeometry {
         get { return GetViewportGeometry(); }
     }
     /// <summary>Freeze property This function will freeze scrolling movement (by input of a user). Unlike efl_ui_scrollable_movement_block_set, this function freezes bidirectionally. If you want to freeze in only one direction, See <see cref="Efl.Ui.IScrollableInteractive.SetMovementBlock"/>.</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     public bool ScrollFreeze {
         get { return GetScrollFreeze(); }
         set { SetScrollFreeze(value); }
     }
     /// <summary>Hold property When hold turns on, it only scrolls by holding action.</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     public bool ScrollHold {
         get { return GetScrollHold(); }
         set { SetScrollHold(value); }
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
+    /// <value>Which axis (or axes) to block</value>
     public Efl.Ui.ScrollBlock MovementBlock {
         get { return GetMovementBlock(); }
         set { SetMovementBlock(value); }
     }
     /// <summary>Control the step size
-/// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
-/// <value>The step size in pixels</value>
+    /// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
+    /// <value>The step size in pixels</value>
     public Eina.Position2D StepSize {
         get { return GetStepSize(); }
         set { SetStepSize(value); }
     }
     /// <summary>Set the order of elements that will be used for composition
-/// Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
-/// 
-/// If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
-/// 
-/// If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
-/// 
-/// If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.</summary>
-/// <value>The order to use</value>
+    /// Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
+    /// 
+    /// If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
+    /// 
+    /// If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
+    /// 
+    /// If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.</summary>
+    /// <value>The order to use</value>
     public Eina.List<Efl.Gfx.IEntity> CompositionElements {
         get { return GetCompositionElements(); }
         set { SetCompositionElements(value); }
     }
     /// <summary>Set to true if all children should be registered as logicals</summary>
-/// <value><c>true</c> or <c>false</c></value>
+    /// <value><c>true</c> or <c>false</c></value>
     public bool LogicalMode {
         get { return GetLogicalMode(); }
         set { SetLogicalMode(value); }
     }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
@@ -4332,7 +3831,7 @@ logical_order.Own = false;
             return Efl.Ui.ListView.efl_ui_list_view_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_list_view_homogeneous_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -4345,13 +3844,13 @@ logical_order.Own = false;
         private static bool homogeneous_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_list_view_homogeneous_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetHomogeneous();
+                    _ret_var = ((ListView)ws.Target).GetHomogeneous();
                 }
                 catch (Exception e)
                 {
@@ -4381,13 +3880,13 @@ logical_order.Own = false;
         private static void homogeneous_set(System.IntPtr obj, System.IntPtr pd, bool homogeneous)
         {
             Eina.Log.Debug("function efl_ui_list_view_homogeneous_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListView)wrapper).SetHomogeneous(homogeneous);
+                    ((ListView)ws.Target).SetHomogeneous(homogeneous);
                 }
                 catch (Exception e)
                 {
@@ -4416,13 +3915,13 @@ logical_order.Own = false;
         private static Elm.Object.SelectMode select_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_list_view_select_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Elm.Object.SelectMode _ret_var = default(Elm.Object.SelectMode);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetSelectMode();
+                    _ret_var = ((ListView)ws.Target).GetSelectMode();
                 }
                 catch (Exception e)
                 {
@@ -4452,13 +3951,13 @@ logical_order.Own = false;
         private static void select_mode_set(System.IntPtr obj, System.IntPtr pd, Elm.Object.SelectMode mode)
         {
             Eina.Log.Debug("function efl_ui_list_view_select_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListView)wrapper).SetSelectMode(mode);
+                    ((ListView)ws.Target).SetSelectMode(mode);
                 }
                 catch (Exception e)
                 {
@@ -4487,13 +3986,13 @@ logical_order.Own = false;
         private static System.String default_style_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_list_view_default_style_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetDefaultStyle();
+                    _ret_var = ((ListView)ws.Target).GetDefaultStyle();
                 }
                 catch (Exception e)
                 {
@@ -4523,13 +4022,13 @@ logical_order.Own = false;
         private static void default_style_set(System.IntPtr obj, System.IntPtr pd, System.String style)
         {
             Eina.Log.Debug("function efl_ui_list_view_default_style_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListView)wrapper).SetDefaultStyle(style);
+                    ((ListView)ws.Target).SetDefaultStyle(style);
                 }
                 catch (Exception e)
                 {
@@ -4558,13 +4057,13 @@ logical_order.Own = false;
         private static void layout_factory_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.IFactory factory)
         {
             Eina.Log.Debug("function efl_ui_list_view_layout_factory_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListView)wrapper).SetLayoutFactory(factory);
+                    ((ListView)ws.Target).SetLayoutFactory(factory);
                 }
                 catch (Exception e)
                 {
@@ -4593,13 +4092,13 @@ logical_order.Own = false;
         private static int selected_children_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_selection_selected_children_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetSelectedChildrenCount();
+                    _ret_var = ((ListView)ws.Target).GetSelectedChildrenCount();
                 }
                 catch (Exception e)
                 {
@@ -4629,13 +4128,13 @@ logical_order.Own = false;
         private static Efl.Object selected_child_get(System.IntPtr obj, System.IntPtr pd, int selected_child_index)
         {
             Eina.Log.Debug("function efl_access_selection_selected_child_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetSelectedChild(selected_child_index);
+                    _ret_var = ((ListView)ws.Target).GetSelectedChild(selected_child_index);
                 }
                 catch (Exception e)
                 {
@@ -4665,13 +4164,13 @@ logical_order.Own = false;
         private static bool child_select(System.IntPtr obj, System.IntPtr pd, int child_index)
         {
             Eina.Log.Debug("function efl_access_selection_child_select was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).ChildSelect(child_index);
+                    _ret_var = ((ListView)ws.Target).ChildSelect(child_index);
                 }
                 catch (Exception e)
                 {
@@ -4701,13 +4200,13 @@ logical_order.Own = false;
         private static bool selected_child_deselect(System.IntPtr obj, System.IntPtr pd, int child_index)
         {
             Eina.Log.Debug("function efl_access_selection_selected_child_deselect was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).SelectedChildDeselect(child_index);
+                    _ret_var = ((ListView)ws.Target).SelectedChildDeselect(child_index);
                 }
                 catch (Exception e)
                 {
@@ -4737,13 +4236,13 @@ logical_order.Own = false;
         private static bool is_child_selected(System.IntPtr obj, System.IntPtr pd, int child_index)
         {
             Eina.Log.Debug("function efl_access_selection_is_child_selected was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).IsChildSelected(child_index);
+                    _ret_var = ((ListView)ws.Target).IsChildSelected(child_index);
                 }
                 catch (Exception e)
                 {
@@ -4773,13 +4272,13 @@ logical_order.Own = false;
         private static bool all_children_select(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_selection_all_children_select was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).AllChildrenSelect();
+                    _ret_var = ((ListView)ws.Target).AllChildrenSelect();
                 }
                 catch (Exception e)
                 {
@@ -4809,13 +4308,13 @@ logical_order.Own = false;
         private static bool access_selection_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_selection_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).ClearAccessSelection();
+                    _ret_var = ((ListView)ws.Target).ClearAccessSelection();
                 }
                 catch (Exception e)
                 {
@@ -4845,13 +4344,13 @@ logical_order.Own = false;
         private static bool child_deselect(System.IntPtr obj, System.IntPtr pd, int child_index)
         {
             Eina.Log.Debug("function efl_access_selection_child_deselect was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).ChildDeselect(child_index);
+                    _ret_var = ((ListView)ws.Target).ChildDeselect(child_index);
                 }
                 catch (Exception e)
                 {
@@ -4881,13 +4380,13 @@ logical_order.Own = false;
         private static void load_range_set(System.IntPtr obj, System.IntPtr pd, int first, int count)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_load_range_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ListView)wrapper).SetLoadRange(first, count);
+                    ((ListView)ws.Target).SetLoadRange(first, count);
                 }
                 catch (Exception e)
                 {
@@ -4916,13 +4415,13 @@ logical_order.Own = false;
         private static int model_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetModelSize();
+                    _ret_var = ((ListView)ws.Target).GetModelSize();
                 }
                 catch (Exception e)
                 {
@@ -4952,13 +4451,13 @@ logical_order.Own = false;
         private static Eina.Size2D.NativeStruct min_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_min_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetMinSize();
+                    _ret_var = ((ListView)ws.Target).GetMinSize();
                 }
                 catch (Exception e)
                 {
@@ -4988,14 +4487,14 @@ logical_order.Own = false;
         private static void min_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct min)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_min_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_min = min;
                             
                 try
                 {
-                    ((ListView)wrapper).SetMinSize(_in_min);
+                    ((ListView)ws.Target).SetMinSize(_in_min);
                 }
                 catch (Exception e)
                 {
@@ -5024,14 +4523,14 @@ logical_order.Own = false;
         private static System.IntPtr realize(System.IntPtr obj, System.IntPtr pd, ref Efl.Ui.ListViewLayoutItem.NativeStruct item)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_realize was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Ui.ListViewLayoutItem _in_item = item;
                             Efl.Ui.ListViewLayoutItem _ret_var = default(Efl.Ui.ListViewLayoutItem);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).Realize(ref _in_item);
+                    _ret_var = ((ListView)ws.Target).Realize(ref _in_item);
                 }
                 catch (Exception e)
                 {
@@ -5062,14 +4561,14 @@ logical_order.Own = false;
         private static void unrealize(System.IntPtr obj, System.IntPtr pd, ref Efl.Ui.ListViewLayoutItem.NativeStruct item)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_unrealize was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Ui.ListViewLayoutItem _in_item = item;
                             
                 try
                 {
-                    ((ListView)wrapper).Unrealize(ref _in_item);
+                    ((ListView)ws.Target).Unrealize(ref _in_item);
                 }
                 catch (Exception e)
                 {
@@ -5099,13 +4598,13 @@ logical_order.Own = false;
         private static Eina.Position2D.NativeStruct content_pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetContentPos();
+                    _ret_var = ((ListView)ws.Target).GetContentPos();
                 }
                 catch (Exception e)
                 {
@@ -5135,14 +4634,14 @@ logical_order.Own = false;
         private static void content_pos_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((ListView)wrapper).SetContentPos(_in_pos);
+                    ((ListView)ws.Target).SetContentPos(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -5171,13 +4670,13 @@ logical_order.Own = false;
         private static Eina.Size2D.NativeStruct content_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetContentSize();
+                    _ret_var = ((ListView)ws.Target).GetContentSize();
                 }
                 catch (Exception e)
                 {
@@ -5207,13 +4706,13 @@ logical_order.Own = false;
         private static Eina.Rect.NativeStruct viewport_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_viewport_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetViewportGeometry();
+                    _ret_var = ((ListView)ws.Target).GetViewportGeometry();
                 }
                 catch (Exception e)
                 {
@@ -5243,13 +4742,13 @@ logical_order.Own = false;
         private static void bounce_enabled_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((ListView)wrapper).GetBounceEnabled(out horiz, out vert);
+                    ((ListView)ws.Target).GetBounceEnabled(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -5278,13 +4777,13 @@ logical_order.Own = false;
         private static void bounce_enabled_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ListView)wrapper).SetBounceEnabled(horiz, vert);
+                    ((ListView)ws.Target).SetBounceEnabled(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -5313,13 +4812,13 @@ logical_order.Own = false;
         private static bool scroll_freeze_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetScrollFreeze();
+                    _ret_var = ((ListView)ws.Target).GetScrollFreeze();
                 }
                 catch (Exception e)
                 {
@@ -5349,13 +4848,13 @@ logical_order.Own = false;
         private static void scroll_freeze_set(System.IntPtr obj, System.IntPtr pd, bool freeze)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListView)wrapper).SetScrollFreeze(freeze);
+                    ((ListView)ws.Target).SetScrollFreeze(freeze);
                 }
                 catch (Exception e)
                 {
@@ -5384,13 +4883,13 @@ logical_order.Own = false;
         private static bool scroll_hold_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetScrollHold();
+                    _ret_var = ((ListView)ws.Target).GetScrollHold();
                 }
                 catch (Exception e)
                 {
@@ -5420,13 +4919,13 @@ logical_order.Own = false;
         private static void scroll_hold_set(System.IntPtr obj, System.IntPtr pd, bool hold)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListView)wrapper).SetScrollHold(hold);
+                    ((ListView)ws.Target).SetScrollHold(hold);
                 }
                 catch (Exception e)
                 {
@@ -5455,13 +4954,13 @@ logical_order.Own = false;
         private static void looping_get(System.IntPtr obj, System.IntPtr pd, out bool loop_h, out bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         loop_h = default(bool);        loop_v = default(bool);                            
                 try
                 {
-                    ((ListView)wrapper).GetLooping(out loop_h, out loop_v);
+                    ((ListView)ws.Target).GetLooping(out loop_h, out loop_v);
                 }
                 catch (Exception e)
                 {
@@ -5490,13 +4989,13 @@ logical_order.Own = false;
         private static void looping_set(System.IntPtr obj, System.IntPtr pd, bool loop_h, bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ListView)wrapper).SetLooping(loop_h, loop_v);
+                    ((ListView)ws.Target).SetLooping(loop_h, loop_v);
                 }
                 catch (Exception e)
                 {
@@ -5525,13 +5024,13 @@ logical_order.Own = false;
         private static Efl.Ui.ScrollBlock movement_block_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ScrollBlock _ret_var = default(Efl.Ui.ScrollBlock);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetMovementBlock();
+                    _ret_var = ((ListView)ws.Target).GetMovementBlock();
                 }
                 catch (Exception e)
                 {
@@ -5561,13 +5060,13 @@ logical_order.Own = false;
         private static void movement_block_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollBlock block)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListView)wrapper).SetMovementBlock(block);
+                    ((ListView)ws.Target).SetMovementBlock(block);
                 }
                 catch (Exception e)
                 {
@@ -5596,13 +5095,13 @@ logical_order.Own = false;
         private static void gravity_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((ListView)wrapper).GetGravity(out x, out y);
+                    ((ListView)ws.Target).GetGravity(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -5631,13 +5130,13 @@ logical_order.Own = false;
         private static void gravity_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ListView)wrapper).SetGravity(x, y);
+                    ((ListView)ws.Target).SetGravity(x, y);
                 }
                 catch (Exception e)
                 {
@@ -5666,13 +5165,13 @@ logical_order.Own = false;
         private static void match_content_set(System.IntPtr obj, System.IntPtr pd, bool w, bool h)
         {
             Eina.Log.Debug("function efl_ui_scrollable_match_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ListView)wrapper).SetMatchContent(w, h);
+                    ((ListView)ws.Target).SetMatchContent(w, h);
                 }
                 catch (Exception e)
                 {
@@ -5701,13 +5200,13 @@ logical_order.Own = false;
         private static Eina.Position2D.NativeStruct step_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetStepSize();
+                    _ret_var = ((ListView)ws.Target).GetStepSize();
                 }
                 catch (Exception e)
                 {
@@ -5737,14 +5236,14 @@ logical_order.Own = false;
         private static void step_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct step)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_step = step;
                             
                 try
                 {
-                    ((ListView)wrapper).SetStepSize(_in_step);
+                    ((ListView)ws.Target).SetStepSize(_in_step);
                 }
                 catch (Exception e)
                 {
@@ -5773,14 +5272,14 @@ logical_order.Own = false;
         private static void scroll(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool animation)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                     
                 try
                 {
-                    ((ListView)wrapper).Scroll(_in_rect, animation);
+                    ((ListView)ws.Target).Scroll(_in_rect, animation);
                 }
                 catch (Exception e)
                 {
@@ -5809,13 +5308,13 @@ logical_order.Own = false;
         private static void bar_mode_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.ScrollbarMode hbar, out Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         hbar = default(Efl.Ui.ScrollbarMode);        vbar = default(Efl.Ui.ScrollbarMode);                            
                 try
                 {
-                    ((ListView)wrapper).GetBarMode(out hbar, out vbar);
+                    ((ListView)ws.Target).GetBarMode(out hbar, out vbar);
                 }
                 catch (Exception e)
                 {
@@ -5844,13 +5343,13 @@ logical_order.Own = false;
         private static void bar_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollbarMode hbar, Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ListView)wrapper).SetBarMode(hbar, vbar);
+                    ((ListView)ws.Target).SetBarMode(hbar, vbar);
                 }
                 catch (Exception e)
                 {
@@ -5879,13 +5378,13 @@ logical_order.Own = false;
         private static void bar_size_get(System.IntPtr obj, System.IntPtr pd, out double width, out double height)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         width = default(double);        height = default(double);                            
                 try
                 {
-                    ((ListView)wrapper).GetBarSize(out width, out height);
+                    ((ListView)ws.Target).GetBarSize(out width, out height);
                 }
                 catch (Exception e)
                 {
@@ -5914,13 +5413,13 @@ logical_order.Own = false;
         private static void bar_position_get(System.IntPtr obj, System.IntPtr pd, out double posx, out double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         posx = default(double);        posy = default(double);                            
                 try
                 {
-                    ((ListView)wrapper).GetBarPosition(out posx, out posy);
+                    ((ListView)ws.Target).GetBarPosition(out posx, out posy);
                 }
                 catch (Exception e)
                 {
@@ -5949,13 +5448,13 @@ logical_order.Own = false;
         private static void bar_position_set(System.IntPtr obj, System.IntPtr pd, double posx, double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ListView)wrapper).SetBarPosition(posx, posy);
+                    ((ListView)ws.Target).SetBarPosition(posx, posy);
                 }
                 catch (Exception e)
                 {
@@ -5984,13 +5483,13 @@ logical_order.Own = false;
         private static void bar_visibility_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_visibility_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ListView)wrapper).UpdateBarVisibility();
+                    ((ListView)ws.Target).UpdateBarVisibility();
                 }
                 catch (Exception e)
                 {
@@ -6019,13 +5518,13 @@ logical_order.Own = false;
         private static Efl.Ui.Focus.IManager focus_manager_create(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_manager_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).FocusManagerCreate(root);
+                    _ret_var = ((ListView)ws.Target).FocusManagerCreate(root);
                 }
                 catch (Exception e)
                 {
@@ -6055,13 +5554,13 @@ logical_order.Own = false;
         private static System.IntPtr composition_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Gfx.IEntity> _ret_var = default(Eina.List<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetCompositionElements();
+                    _ret_var = ((ListView)ws.Target).GetCompositionElements();
                 }
                 catch (Exception e)
                 {
@@ -6091,14 +5590,14 @@ logical_order.Own = false;
         private static void composition_elements_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr logical_order)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_elements_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_logical_order = new Eina.List<Efl.Gfx.IEntity>(logical_order, true, false);
                             
                 try
                 {
-                    ((ListView)wrapper).SetCompositionElements(_in_logical_order);
+                    ((ListView)ws.Target).SetCompositionElements(_in_logical_order);
                 }
                 catch (Exception e)
                 {
@@ -6127,13 +5626,13 @@ logical_order.Own = false;
         private static bool logical_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_logical_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetLogicalMode();
+                    _ret_var = ((ListView)ws.Target).GetLogicalMode();
                 }
                 catch (Exception e)
                 {
@@ -6163,13 +5662,13 @@ logical_order.Own = false;
         private static void logical_mode_set(System.IntPtr obj, System.IntPtr pd, bool logical_mode)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_logical_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListView)wrapper).SetLogicalMode(logical_mode);
+                    ((ListView)ws.Target).SetLogicalMode(logical_mode);
                 }
                 catch (Exception e)
                 {
@@ -6198,13 +5697,13 @@ logical_order.Own = false;
         private static void dirty(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_dirty was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ListView)wrapper).Dirty();
+                    ((ListView)ws.Target).Dirty();
                 }
                 catch (Exception e)
                 {
@@ -6233,13 +5732,13 @@ logical_order.Own = false;
         private static void prepare(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_prepare was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ListView)wrapper).Prepare();
+                    ((ListView)ws.Target).Prepare();
                 }
                 catch (Exception e)
                 {
@@ -6268,13 +5767,13 @@ logical_order.Own = false;
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetManagerFocus();
+                    _ret_var = ((ListView)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -6304,13 +5803,13 @@ logical_order.Own = false;
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListView)wrapper).SetManagerFocus(focus);
+                    ((ListView)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -6339,13 +5838,13 @@ logical_order.Own = false;
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetRedirect();
+                    _ret_var = ((ListView)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -6375,13 +5874,13 @@ logical_order.Own = false;
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ListView)wrapper).SetRedirect(redirect);
+                    ((ListView)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -6410,13 +5909,13 @@ logical_order.Own = false;
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetBorderElements();
+                    _ret_var = ((ListView)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -6446,14 +5945,14 @@ logical_order.Own = false;
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((ListView)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -6483,13 +5982,13 @@ logical_order.Own = false;
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).GetRoot();
+                    _ret_var = ((ListView)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -6519,13 +6018,13 @@ logical_order.Own = false;
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).SetRoot(root);
+                    _ret_var = ((ListView)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -6555,13 +6054,13 @@ logical_order.Own = false;
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).Move(direction);
+                    _ret_var = ((ListView)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -6591,13 +6090,13 @@ logical_order.Own = false;
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((ListView)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -6627,13 +6126,13 @@ logical_order.Own = false;
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).RequestSubchild(root);
+                    _ret_var = ((ListView)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -6663,13 +6162,13 @@ logical_order.Own = false;
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).Fetch(child);
+                    _ret_var = ((ListView)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -6699,13 +6198,13 @@ logical_order.Own = false;
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((ListView)wrapper).LogicalEnd();
+                    _ret_var = ((ListView)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -6735,13 +6234,13 @@ logical_order.Own = false;
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ListView)wrapper).ResetHistory();
+                    ((ListView)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -6770,13 +6269,13 @@ logical_order.Own = false;
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ListView)wrapper).PopHistoryStack();
+                    ((ListView)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -6805,13 +6304,13 @@ logical_order.Own = false;
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ListView)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((ListView)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -6840,13 +6339,13 @@ logical_order.Own = false;
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ListView)wrapper).FreezeDirtyLogic();
+                    ((ListView)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -6875,13 +6374,13 @@ logical_order.Own = false;
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((ListView)wrapper).DirtyLogicUnfreeze();
+                    ((ListView)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -6899,7 +6398,7 @@ logical_order.Own = false;
 
         private static efl_ui_focus_manager_dirty_logic_unfreeze_delegate efl_ui_focus_manager_dirty_logic_unfreeze_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -6914,9 +6413,9 @@ namespace Ui {
 [StructLayout(LayoutKind.Sequential)]
 public struct ListViewItemEvent
 {
-        public Efl.Ui.Layout Layout;
-        public Efl.IModel Child;
-        public int Index;
+    public Efl.Ui.Layout Layout;
+    public Efl.IModel Child;
+    public int Index;
     ///<summary>Constructor for ListViewItemEvent.</summary>
     public ListViewItemEvent(
         Efl.Ui.Layout Layout = default(Efl.Ui.Layout),
@@ -6928,12 +6427,16 @@ public struct ListViewItemEvent
         this.Index = Index;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ListViewItemEvent(IntPtr ptr)
     {
         var tmp = (ListViewItemEvent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ListViewItemEvent.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ListViewItemEvent.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -6968,6 +6471,8 @@ public struct ListViewItemEvent
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index a805227..afbef80 100644 (file)
@@ -21,7 +21,7 @@ Eina.Size2D GetMinSize();
 void SetMinSize(Eina.Size2D min);
     Efl.Ui.ListViewLayoutItem Realize(ref Efl.Ui.ListViewLayoutItem item);
     void Unrealize(ref Efl.Ui.ListViewLayoutItem item);
-                                int ModelSize {
+                            int ModelSize {
         get ;
     }
     /// <summary>Minimal content size.</summary>
@@ -30,13 +30,13 @@ void SetMinSize(Eina.Size2D min);
         set ;
     }
 }
-sealed public class IListViewModelConcrete : 
-
-IListViewModel
+sealed public class IListViewModelConcrete :
+    Efl.Eo.EoWrapper
+    , IListViewModel
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -51,86 +51,12 @@ IListViewModel
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_list_view_model_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IListViewModel"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IListViewModelConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IListViewModelConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IListViewModelConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     public void SetLoadRange(int first, int count) {
@@ -169,7 +95,7 @@ IListViewModel
         Eina.Error.RaiseIfUnhandledException();
                 item = _in_item;
          }
-        public int ModelSize {
+    public int ModelSize {
         get { return GetModelSize(); }
     }
     /// <summary>Minimal content size.</summary>
@@ -262,7 +188,7 @@ IListViewModel
             return Efl.Ui.IListViewModelConcrete.efl_ui_list_view_model_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_list_view_model_load_range_set_delegate(System.IntPtr obj, System.IntPtr pd,  int first,  int count);
@@ -275,13 +201,13 @@ IListViewModel
         private static void load_range_set(System.IntPtr obj, System.IntPtr pd, int first, int count)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_load_range_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IListViewModel)wrapper).SetLoadRange(first, count);
+                    ((IListViewModel)ws.Target).SetLoadRange(first, count);
                 }
                 catch (Exception e)
                 {
@@ -310,13 +236,13 @@ IListViewModel
         private static int model_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((IListViewModel)wrapper).GetModelSize();
+                    _ret_var = ((IListViewModel)ws.Target).GetModelSize();
                 }
                 catch (Exception e)
                 {
@@ -346,13 +272,13 @@ IListViewModel
         private static Eina.Size2D.NativeStruct min_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_min_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IListViewModel)wrapper).GetMinSize();
+                    _ret_var = ((IListViewModel)ws.Target).GetMinSize();
                 }
                 catch (Exception e)
                 {
@@ -382,14 +308,14 @@ IListViewModel
         private static void min_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct min)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_min_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_min = min;
                             
                 try
                 {
-                    ((IListViewModel)wrapper).SetMinSize(_in_min);
+                    ((IListViewModel)ws.Target).SetMinSize(_in_min);
                 }
                 catch (Exception e)
                 {
@@ -418,14 +344,14 @@ IListViewModel
         private static System.IntPtr realize(System.IntPtr obj, System.IntPtr pd, ref Efl.Ui.ListViewLayoutItem.NativeStruct item)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_realize was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Ui.ListViewLayoutItem _in_item = item;
                             Efl.Ui.ListViewLayoutItem _ret_var = default(Efl.Ui.ListViewLayoutItem);
                 try
                 {
-                    _ret_var = ((IListViewModel)wrapper).Realize(ref _in_item);
+                    _ret_var = ((IListViewModel)ws.Target).Realize(ref _in_item);
                 }
                 catch (Exception e)
                 {
@@ -456,14 +382,14 @@ IListViewModel
         private static void unrealize(System.IntPtr obj, System.IntPtr pd, ref Efl.Ui.ListViewLayoutItem.NativeStruct item)
         {
             Eina.Log.Debug("function efl_ui_list_view_model_unrealize was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Ui.ListViewLayoutItem _in_item = item;
                             
                 try
                 {
-                    ((IListViewModel)wrapper).Unrealize(ref _in_item);
+                    ((IListViewModel)ws.Target).Unrealize(ref _in_item);
                 }
                 catch (Exception e)
                 {
@@ -482,7 +408,7 @@ IListViewModel
 
         private static efl_ui_list_view_model_unrealize_delegate efl_ui_list_view_model_unrealize_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 42be2a1..0fbd874 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary Efl_Ui_List_View pan class</summary>
 [Efl.Ui.ListViewPan.NativeMethods]
-public class ListViewPan : Efl.Ui.Pan, Efl.Eo.IWrapper
+public class ListViewPan : Efl.Ui.Pan
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class ListViewPan : Efl.Ui.Pan, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ListViewPan(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ListViewPan"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class ListViewPan : Efl.Ui.Pan, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.ListViewPan.efl_ui_list_view_pan_class_get();
@@ -105,9 +78,9 @@ public class ListViewPan : Efl.Ui.Pan, Efl.Eo.IWrapper
             return Efl.Ui.ListViewPan.efl_ui_list_view_pan_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index a4aa657..ec10fa4 100644 (file)
@@ -12,14 +12,14 @@ namespace Ui {
 [StructLayout(LayoutKind.Sequential)]
 public struct ListViewLayoutItem
 {
-        public Efl.Ui.Layout Layout;
-        public  Eina.Future Layout_request;
-        public Efl.IModel Children;
-        public int Index_offset;
-        public System.IntPtr Tree_node;
-        public Eina.Size2D Min;
-        public Eina.Size2D Size;
-        public Eina.Position2D Pos;
+    public Efl.Ui.Layout Layout;
+    public  Eina.Future Layout_request;
+    public Efl.IModel Children;
+    public int Index_offset;
+    public System.IntPtr Tree_node;
+    public Eina.Size2D Min;
+    public Eina.Size2D Size;
+    public Eina.Position2D Pos;
     ///<summary>Constructor for ListViewLayoutItem.</summary>
     public ListViewLayoutItem(
         Efl.Ui.Layout Layout = default(Efl.Ui.Layout),
@@ -41,12 +41,16 @@ public struct ListViewLayoutItem
         this.Pos = Pos;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ListViewLayoutItem(IntPtr ptr)
     {
         var tmp = (ListViewLayoutItem.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ListViewLayoutItem.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ListViewLayoutItem.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -101,6 +105,8 @@ public struct ListViewLayoutItem
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -112,12 +118,16 @@ public struct EflUiListViewSegArray
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator EflUiListViewSegArray(IntPtr ptr)
     {
         var tmp = (EflUiListViewSegArray.NativeStruct)Marshal.PtrToStructure(ptr, typeof(EflUiListViewSegArray.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct EflUiListViewSegArray.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -139,6 +149,8 @@ public struct EflUiListViewSegArray
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 
index c468618..5870285 100644 (file)
@@ -21,20 +21,20 @@ Efl.Ui.SelectMode GetSelectMode();
 /// <param name="mode">Type of selection of children</param>
 void SetSelectMode(Efl.Ui.SelectMode mode);
             /// <summary>The mode type for children selection.</summary>
-/// <value>Type of selection of children</value>
+    /// <value>Type of selection of children</value>
     Efl.Ui.SelectMode SelectMode {
         get ;
         set ;
     }
 }
 /// <summary>Efl UI Multi selectable interface. The container have to control select property of multiple chidren.</summary>
-sealed public class IMultiSelectableConcrete : 
-
-IMultiSelectable
+sealed public class IMultiSelectableConcrete :
+    Efl.Eo.EoWrapper
+    , IMultiSelectable
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -49,86 +49,12 @@ IMultiSelectable
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_multi_selectable_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IMultiSelectable"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IMultiSelectableConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IMultiSelectableConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IMultiSelectableConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>The mode type for children selection.</summary>
@@ -145,7 +71,7 @@ IMultiSelectable
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>The mode type for children selection.</summary>
-/// <value>Type of selection of children</value>
+    /// <value>Type of selection of children</value>
     public Efl.Ui.SelectMode SelectMode {
         get { return GetSelectMode(); }
         set { SetSelectMode(value); }
@@ -195,7 +121,7 @@ IMultiSelectable
             return Efl.Ui.IMultiSelectableConcrete.efl_ui_multi_selectable_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Ui.SelectMode efl_ui_select_mode_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -208,13 +134,13 @@ IMultiSelectable
         private static Efl.Ui.SelectMode select_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_select_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.SelectMode _ret_var = default(Efl.Ui.SelectMode);
                 try
                 {
-                    _ret_var = ((IMultiSelectable)wrapper).GetSelectMode();
+                    _ret_var = ((IMultiSelectable)ws.Target).GetSelectMode();
                 }
                 catch (Exception e)
                 {
@@ -244,13 +170,13 @@ IMultiSelectable
         private static void select_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectMode mode)
         {
             Eina.Log.Debug("function efl_ui_select_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IMultiSelectable)wrapper).SetSelectMode(mode);
+                    ((IMultiSelectable)ws.Target).SetSelectMode(mode);
                 }
                 catch (Exception e)
                 {
@@ -268,7 +194,7 @@ IMultiSelectable
 
         private static efl_ui_select_mode_set_delegate efl_ui_select_mode_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 6ae664b..6bfa2a4 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Navigation_Bar widget.
 /// Navigation_Bar widget provides a bar form useful for navigation. Navigation_Bar has a back button which is used to navigate to the previous content in the stack.</summary>
 [Efl.Ui.NavigationBar.NativeMethods]
-public class NavigationBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText
+public class NavigationBar : Efl.Ui.LayoutBase, Efl.IText
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class NavigationBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected NavigationBar(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="NavigationBar"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,127 +62,17 @@ public class NavigationBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Sent after the content is set or unset using the current content object.
-    /// (Since EFL 1.22)</summary>
-    public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_CONTENT_EVENT_CONTENT_CHANGED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_CONTENT_EVENT_CONTENT_CHANGED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ContentChangedEvt.</summary>
-    public void OnContentChangedEvt(Efl.IContentContentChangedEvt_Args e)
-    {
-        var key = "_EFL_CONTENT_EVENT_CONTENT_CHANGED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
     /// <summary>Back button to navigate to the previous content in the stack.
-/// The back button works only if the Navigation_Bar widget is contained in the Stack widget(Efl.Ui.Stack class). e.g. The Navigation_Bar widget is set in the Navigation_Layout widget and the Navigation_Layout widget is pushed to the Stack widget.
-/// 
-/// The back button is hidden by default and it can be visible. e.g. efl_gfx_entity_visible_set(efl_part(navigation_bar, &quot;back_button&quot;), EINA_TRUE);</summary>
-    public Efl.Ui.NavigationBarPartBackButton BackButton
+    /// The back button works only if the Navigation_Bar widget is contained in the Stack widget(Efl.Ui.Stack class). e.g. The Navigation_Bar widget is set in the Navigation_Layout widget and the Navigation_Layout widget is pushed to the Stack widget.
+    /// 
+    /// The back button is hidden by default and it can be visible. e.g. efl_gfx_entity_visible_set(efl_part(navigation_bar, &quot;back_button&quot;), EINA_TRUE);</summary>
+    public Efl.Ui.NavigationBarPartBackButton BackButtonPart
     {
         get
         {
             return GetPart("back_button") as Efl.Ui.NavigationBarPartBackButton;
         }
     }
-    /// <summary>Sub-object currently set as this object&apos;s single content.
-    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-    /// (Since EFL 1.22)</summary>
-    /// <returns>The sub-object.</returns>
-    virtual public Efl.Gfx.IEntity GetContent() {
-         var _ret_var = Efl.IContentConcrete.NativeMethods.efl_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Sub-object currently set as this object&apos;s single content.
-    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-    /// (Since EFL 1.22)</summary>
-    /// <param name="content">The sub-object.</param>
-    /// <returns><c>true</c> if <c>content</c> was successfully swallowed.</returns>
-    virtual public bool SetContent(Efl.Gfx.IEntity content) {
-                                 var _ret_var = Efl.IContentConcrete.NativeMethods.efl_content_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),content);
-        Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
-    /// <summary>Remove the sub-object currently set as content of this object and return it. This object becomes empty.
-    /// (Since EFL 1.22)</summary>
-    /// <returns>Unswallowed object</returns>
-    virtual public Efl.Gfx.IEntity UnsetContent() {
-         var _ret_var = Efl.IContentConcrete.NativeMethods.efl_content_unset_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
     /// <summary>Retrieves the text string currently being displayed by the given text object.
     /// Do not free() the return value.
     /// 
@@ -202,14 +92,6 @@ public class NavigationBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl
                                  Efl.ITextConcrete.NativeMethods.efl_text_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),text);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
-    public Efl.Gfx.IEntity Content {
-        get { return GetContent(); }
-        set { SetContent(value); }
-    }
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.NavigationBar.efl_ui_navigation_bar_class_get();
@@ -226,36 +108,6 @@ public class NavigationBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl
             var descs = new System.Collections.Generic.List<Efl_Op_Description>();
             var methods = Efl.Eo.Globals.GetUserMethods(type);
 
-            if (efl_content_get_static_delegate == null)
-            {
-                efl_content_get_static_delegate = new efl_content_get_delegate(content_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetContent") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_get"), func = Marshal.GetFunctionPointerForDelegate(efl_content_get_static_delegate) });
-            }
-
-            if (efl_content_set_static_delegate == null)
-            {
-                efl_content_set_static_delegate = new efl_content_set_delegate(content_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetContent") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_set"), func = Marshal.GetFunctionPointerForDelegate(efl_content_set_static_delegate) });
-            }
-
-            if (efl_content_unset_static_delegate == null)
-            {
-                efl_content_unset_static_delegate = new efl_content_unset_delegate(content_unset);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "UnsetContent") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_unset"), func = Marshal.GetFunctionPointerForDelegate(efl_content_unset_static_delegate) });
-            }
-
             if (efl_text_get_static_delegate == null)
             {
                 efl_text_get_static_delegate = new efl_text_get_delegate(text_get);
@@ -286,115 +138,7 @@ public class NavigationBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl
             return Efl.Ui.NavigationBar.efl_ui_navigation_bar_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        public delegate Efl.Gfx.IEntity efl_content_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_content_get_api_delegate> efl_content_get_ptr = new Efl.Eo.FunctionWrapper<efl_content_get_api_delegate>(Module, "efl_content_get");
-
-        private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
-                try
-                {
-                    _ret_var = ((NavigationBar)wrapper).GetContent();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_content_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_content_get_delegate efl_content_get_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_content_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity content);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_content_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity content);
-
-        public static Efl.Eo.FunctionWrapper<efl_content_set_api_delegate> efl_content_set_ptr = new Efl.Eo.FunctionWrapper<efl_content_set_api_delegate>(Module, "efl_content_set");
-
-        private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
-        {
-            Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((NavigationBar)wrapper).SetContent(content);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_content_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), content);
-            }
-        }
-
-        private static efl_content_set_delegate efl_content_set_static_delegate;
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        private delegate Efl.Gfx.IEntity efl_content_unset_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        public delegate Efl.Gfx.IEntity efl_content_unset_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_content_unset_api_delegate> efl_content_unset_ptr = new Efl.Eo.FunctionWrapper<efl_content_unset_api_delegate>(Module, "efl_content_unset");
-
-        private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
-                try
-                {
-                    _ret_var = ((NavigationBar)wrapper).UnsetContent();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_content_unset_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_content_unset_delegate efl_content_unset_static_delegate;
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_text_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -407,13 +151,13 @@ public class NavigationBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((NavigationBar)wrapper).GetText();
+                    _ret_var = ((NavigationBar)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -443,13 +187,13 @@ public class NavigationBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((NavigationBar)wrapper).SetText(text);
+                    ((NavigationBar)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -467,7 +211,7 @@ public class NavigationBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl
 
         private static efl_text_set_delegate efl_text_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index bd02640..1c5fcfa 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI Navigation_Bar internal part class</summary>
 [Efl.Ui.NavigationBarPart.NativeMethods]
-public class NavigationBarPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
+public class NavigationBarPart : Efl.Ui.LayoutPartContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class NavigationBarPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected NavigationBarPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="NavigationBarPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class NavigationBarPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.NavigationBarPart.efl_ui_navigation_bar_part_class_get();
@@ -105,9 +78,9 @@ public class NavigationBarPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
             return Efl.Ui.NavigationBarPart.efl_ui_navigation_bar_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 11bc235..8cf59e4 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl Ui Navigation_Bar internal part back button class</summary>
 [Efl.Ui.NavigationBarPartBackButton.NativeMethods]
-public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,Efl.Gfx.IEntity,Efl.Ui.IClickable
+public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.IContent, Efl.IText, Efl.Gfx.IEntity
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected NavigationBarPartBackButton(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="NavigationBarPartBackButton"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -90,13 +63,12 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -146,14 +118,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Gfx.IEntityVisibilityChangedEvt_Args args = new Efl.Gfx.IEntityVisibilityChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -209,13 +180,12 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
+                        Efl.Gfx.IEntityPositionChangedEvt_Args args = new Efl.Gfx.IEntityPositionChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -273,13 +243,12 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
+                        Efl.Gfx.IEntitySizeChangedEvt_Args args = new Efl.Gfx.IEntitySizeChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -329,438 +298,6 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
             Marshal.FreeHGlobal(info);
         }
     }
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is pressed</summary>
-    public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event PressedEvt.</summary>
-    public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is no longer pressed</summary>
-    public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event UnpressedEvt.</summary>
-    public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives a long press</summary>
-    public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event LongpressedEvt.</summary>
-    public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
     /// <summary>Sub-object currently set as this object&apos;s single content.
     /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
     /// (Since EFL 1.22)</summary>
@@ -887,51 +424,51 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>The 2D position of a canvas object.
-/// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D coordinate in pixel units.</value>
+    /// The position is absolute, in pixels, relative to the top-left corner of the window, within its border decorations (application space).
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D coordinate in pixel units.</value>
     public Eina.Position2D Position {
         get { return GetPosition(); }
         set { SetPosition(value); }
     }
     /// <summary>The 2D size of a canvas object.
-/// (Since EFL 1.22)</summary>
-/// <value>A 2D size in pixel units.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>A 2D size in pixel units.</value>
     public Eina.Size2D Size {
         get { return GetSize(); }
         set { SetSize(value); }
     }
     /// <summary>Rectangular geometry that combines both position and size.
-/// (Since EFL 1.22)</summary>
-/// <value>The X,Y position and W,H size, in pixels.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The X,Y position and W,H size, in pixels.</value>
     public Eina.Rect Geometry {
         get { return GetGeometry(); }
         set { SetGeometry(value); }
     }
     /// <summary>The visibility of a canvas object.
-/// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
-/// 
-/// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
+    /// All canvas objects will become visible by default just before render. This means that it is not required to call <see cref="Efl.Gfx.IEntity.SetVisible"/> after creating an object unless you want to create it without showing it. Note that this behavior is new since 1.21, and only applies to canvas objects created with the EO API (i.e. not the legacy C-only API). Other types of Gfx objects may or may not be visible by default.
+    /// 
+    /// Note that many other parameters can prevent a visible object from actually being &quot;visible&quot; on screen. For instance if its color is fully transparent, or its parent is hidden, or it is clipped out, etc...
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if to make the object visible, <c>false</c> otherwise</value>
     public bool Visible {
         get { return GetVisible(); }
         set { SetVisible(value); }
     }
     /// <summary>The scaling factor of an object.
-/// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
-/// 
-/// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
-/// (Since EFL 1.22)</summary>
-/// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
+    /// This property is an individual scaling factor on the object (Edje or UI widget). This property (or Edje&apos;s global scaling factor, when applicable), will affect this object&apos;s part sizes. If scale is not zero, than the individual scaling will override any global scaling set, for the object obj&apos;s parts. Set it back to zero to get the effects of the global scaling again.
+    /// 
+    /// Warning: In Edje, only parts which, at EDC level, had the &quot;scale&quot; property set to 1, will be affected by this function. Check the complete &quot;syntax reference&quot; for EDC files.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The scaling factor (the default value is 0.0, meaning individual scaling is not set)</value>
     public double Scale {
         get { return GetScale(); }
         set { SetScale(value); }
@@ -1112,7 +649,7 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
             return Efl.Ui.NavigationBarPartBackButton.efl_ui_navigation_bar_part_back_button_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1125,13 +662,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((NavigationBarPartBackButton)wrapper).GetContent();
+                    _ret_var = ((NavigationBarPartBackButton)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -1161,13 +698,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((NavigationBarPartBackButton)wrapper).SetContent(content);
+                    _ret_var = ((NavigationBarPartBackButton)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -1197,13 +734,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((NavigationBarPartBackButton)wrapper).UnsetContent();
+                    _ret_var = ((NavigationBarPartBackButton)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -1233,13 +770,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((NavigationBarPartBackButton)wrapper).GetText();
+                    _ret_var = ((NavigationBarPartBackButton)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -1269,13 +806,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((NavigationBarPartBackButton)wrapper).SetText(text);
+                    ((NavigationBarPartBackButton)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -1304,13 +841,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static Eina.Position2D.NativeStruct position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((NavigationBarPartBackButton)wrapper).GetPosition();
+                    _ret_var = ((NavigationBarPartBackButton)ws.Target).GetPosition();
                 }
                 catch (Exception e)
                 {
@@ -1340,14 +877,14 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static void position_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_gfx_entity_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((NavigationBarPartBackButton)wrapper).SetPosition(_in_pos);
+                    ((NavigationBarPartBackButton)ws.Target).SetPosition(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -1376,13 +913,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static Eina.Size2D.NativeStruct size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((NavigationBarPartBackButton)wrapper).GetSize();
+                    _ret_var = ((NavigationBarPartBackButton)ws.Target).GetSize();
                 }
                 catch (Exception e)
                 {
@@ -1412,14 +949,14 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static void size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_gfx_entity_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((NavigationBarPartBackButton)wrapper).SetSize(_in_size);
+                    ((NavigationBarPartBackButton)ws.Target).SetSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -1448,13 +985,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static Eina.Rect.NativeStruct geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((NavigationBarPartBackButton)wrapper).GetGeometry();
+                    _ret_var = ((NavigationBarPartBackButton)ws.Target).GetGeometry();
                 }
                 catch (Exception e)
                 {
@@ -1484,14 +1021,14 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static void geometry_set(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_gfx_entity_geometry_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                             
                 try
                 {
-                    ((NavigationBarPartBackButton)wrapper).SetGeometry(_in_rect);
+                    ((NavigationBarPartBackButton)ws.Target).SetGeometry(_in_rect);
                 }
                 catch (Exception e)
                 {
@@ -1520,13 +1057,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static bool visible_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((NavigationBarPartBackButton)wrapper).GetVisible();
+                    _ret_var = ((NavigationBarPartBackButton)ws.Target).GetVisible();
                 }
                 catch (Exception e)
                 {
@@ -1556,13 +1093,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static void visible_set(System.IntPtr obj, System.IntPtr pd, bool v)
         {
             Eina.Log.Debug("function efl_gfx_entity_visible_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((NavigationBarPartBackButton)wrapper).SetVisible(v);
+                    ((NavigationBarPartBackButton)ws.Target).SetVisible(v);
                 }
                 catch (Exception e)
                 {
@@ -1591,13 +1128,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static double scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((NavigationBarPartBackButton)wrapper).GetScale();
+                    _ret_var = ((NavigationBarPartBackButton)ws.Target).GetScale();
                 }
                 catch (Exception e)
                 {
@@ -1627,13 +1164,13 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
         private static void scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_entity_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((NavigationBarPartBackButton)wrapper).SetScale(scale);
+                    ((NavigationBarPartBackButton)ws.Target).SetScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -1651,7 +1188,7 @@ public class NavigationBarPartBackButton : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Ef
 
         private static efl_gfx_entity_scale_set_delegate efl_gfx_entity_scale_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 191f2a5..d55fd6a 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Navigation_Layout widget.
 /// Navigation_Layout widget provides a layout form useful for navigation. Navigation_Layout widget is used to be pushed to or popped from Stack widget(Efl.Ui.Stack class) as a content.</summary>
 [Efl.Ui.NavigationLayout.NativeMethods]
-public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
+public class NavigationLayout : Efl.Ui.LayoutBase, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected NavigationLayout(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="NavigationLayout"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -97,13 +70,12 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -186,15 +158,15 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         return _ret_var;
  }
     /// <summary>The bar object which is located at the top area as a title. e.g. Navigation_Bar widget(Efl.Ui.Navigation_Bar) can be used as <c>bar</c>.</summary>
-/// <value>The bar object located at the top area of the Navigation Layout.</value>
+    /// <value>The bar object located at the top area of the Navigation Layout.</value>
     public Efl.Ui.LayoutBase Bar {
         get { return GetBar(); }
         set { SetBar(value); }
     }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
@@ -275,7 +247,7 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
             return Efl.Ui.NavigationLayout.efl_ui_navigation_layout_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Ui.LayoutBase efl_ui_navigation_layout_bar_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -288,13 +260,13 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Ui.LayoutBase bar_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_navigation_layout_bar_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.LayoutBase _ret_var = default(Efl.Ui.LayoutBase);
                 try
                 {
-                    _ret_var = ((NavigationLayout)wrapper).GetBar();
+                    _ret_var = ((NavigationLayout)ws.Target).GetBar();
                 }
                 catch (Exception e)
                 {
@@ -324,13 +296,13 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         private static void bar_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutBase value)
         {
             Eina.Log.Debug("function efl_ui_navigation_layout_bar_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((NavigationLayout)wrapper).SetBar(value);
+                    ((NavigationLayout)ws.Target).SetBar(value);
                 }
                 catch (Exception e)
                 {
@@ -359,13 +331,13 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((NavigationLayout)wrapper).GetContent();
+                    _ret_var = ((NavigationLayout)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -395,13 +367,13 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((NavigationLayout)wrapper).SetContent(content);
+                    _ret_var = ((NavigationLayout)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -431,13 +403,13 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((NavigationLayout)wrapper).UnsetContent();
+                    _ret_var = ((NavigationLayout)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -456,7 +428,7 @@ public class NavigationLayout : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 232eed7..6983622 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI nstate class</summary>
 [Efl.Ui.Nstate.NativeMethods]
-public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
+public class Nstate : Efl.Ui.Button
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Nstate(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Nstate"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when the value changed.</summary>
     public event EventHandler ChangedEvt
     {
@@ -95,10 +68,9 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -173,13 +145,13 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Maximum number of states</summary>
-/// <value>The number of states.</value>
+    /// <value>The number of states.</value>
     public int Count {
         get { return GetCount(); }
         set { SetCount(value); }
     }
     /// <summary>Get the state value.</summary>
-/// <value>The state.</value>
+    /// <value>The state.</value>
     public int Value {
         get { return GetValue(); }
         set { SetValue(value); }
@@ -260,7 +232,7 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
             return Efl.Ui.Nstate.efl_ui_nstate_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_ui_nstate_count_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -273,13 +245,13 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
         private static int count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_nstate_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Nstate)wrapper).GetCount();
+                    _ret_var = ((Nstate)ws.Target).GetCount();
                 }
                 catch (Exception e)
                 {
@@ -309,13 +281,13 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
         private static void count_set(System.IntPtr obj, System.IntPtr pd, int nstate)
         {
             Eina.Log.Debug("function efl_ui_nstate_count_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Nstate)wrapper).SetCount(nstate);
+                    ((Nstate)ws.Target).SetCount(nstate);
                 }
                 catch (Exception e)
                 {
@@ -344,13 +316,13 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
         private static int value_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_nstate_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Nstate)wrapper).GetValue();
+                    _ret_var = ((Nstate)ws.Target).GetValue();
                 }
                 catch (Exception e)
                 {
@@ -380,13 +352,13 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
         private static void value_set(System.IntPtr obj, System.IntPtr pd, int state)
         {
             Eina.Log.Debug("function efl_ui_nstate_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Nstate)wrapper).SetValue(state);
+                    ((Nstate)ws.Target).SetValue(state);
                 }
                 catch (Exception e)
                 {
@@ -415,13 +387,13 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
         private static void activate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_nstate_activate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Nstate)wrapper).Activate();
+                    ((Nstate)ws.Target).Activate();
                 }
                 catch (Exception e)
                 {
@@ -439,7 +411,7 @@ public class Nstate : Efl.Ui.Button, Efl.Eo.IWrapper
 
         private static efl_ui_nstate_activate_delegate efl_ui_nstate_activate_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
diff --git a/internals/src/EflSharp/EflSharp/efl/efl_ui_pager.eo.cs b/internals/src/EflSharp/EflSharp/efl/efl_ui_pager.eo.cs
deleted file mode 100644 (file)
index 66f83f0..0000000
+++ /dev/null
@@ -1,1667 +0,0 @@
-#pragma warning disable CS1591
-using System;
-using System.Runtime.InteropServices;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.ComponentModel;
-namespace Efl {
-
-namespace Ui {
-
-/// <summary>Pager widget
-/// A pager contains many pages in a linear fashion and allows users to scroll through pages. Each page is numbered according to linear order and one of the pages is marked as &apos;current page&apos; and displayed in the middle. The way each page is displayed is defined by <see cref="Efl.Page.Transition"/> object, allowing users to adopt different types of transition. The most common use case of this widget is the home screen of mobile devices.</summary>
-[Efl.Ui.Pager.NativeMethods]
-public class Pager : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IPack,Efl.IPackLinear
-{
-    ///<summary>Pointer to the native class description.</summary>
-    public override System.IntPtr NativeClass
-    {
-        get
-        {
-            if (((object)this).GetType() == typeof(Pager))
-            {
-                return GetEflClassStatic();
-            }
-            else
-            {
-                return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
-            }
-        }
-    }
-
-    [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
-        efl_ui_pager_class_get();
-    /// <summary>Initializes a new instance of the <see cref="Pager"/> class.</summary>
-    /// <param name="parent">Parent instance.</param>
-    /// <param name="style">The widget style to use. See <see cref="Efl.Ui.Widget.SetStyle"/></param>
-    public Pager(Efl.Object parent
-            , System.String style = null) : base(efl_ui_pager_class_get(), typeof(Pager), parent)
-    {
-        if (Efl.Eo.Globals.ParamHelperCheck(style))
-        {
-            SetStyle(Efl.Eo.Globals.GetParamHelper(style));
-        }
-
-        FinishInstantiation();
-    }
-
-    /// <summary>Initializes a new instance of the <see cref="Pager"/> class.
-    /// Internal usage: Constructs an instance from a native pointer. This is used when interacting with C code and should not be used directly.</summary>
-    /// <param name="raw">The native pointer to be wrapped.</param>
-    protected Pager(System.IntPtr raw) : base(raw)
-    {
-            }
-
-    /// <summary>Initializes a new instance of the <see cref="Pager"/> class.
-    /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
-    /// <param name="baseKlass">The pointer to the base native Eo class.</param>
-    /// <param name="managedType">The managed type of the public constructor that originated this call.</param>
-    /// <param name="parent">The Efl.Object parent of this instance.</param>
-    protected Pager(IntPtr baseKlass, System.Type managedType, Efl.Object parent) : base(baseKlass, managedType, parent)
-    {
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Set a page transition effect</summary>
-    /// <param name="transition">transition effect</param>
-    virtual public void SetTransition(Efl.Page.Transition transition) {
-                                 Efl.Ui.Pager.NativeMethods.efl_ui_pager_transition_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),transition);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Set a page indicator</summary>
-    /// <param name="indicator">indicator class</param>
-    virtual public void SetIndicator(Efl.Page.Indicator indicator) {
-                                 Efl.Ui.Pager.NativeMethods.efl_ui_pager_indicator_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),indicator);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Get the current page</summary>
-    virtual public int GetCurrentPage() {
-         var _ret_var = Efl.Ui.Pager.NativeMethods.efl_ui_pager_current_page_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Set one page as current page</summary>
-    virtual public void SetCurrentPage(int index) {
-                                 Efl.Ui.Pager.NativeMethods.efl_ui_pager_current_page_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Pages can be scrolled back and forth by default. This property allows limiting the direction of scrolling, or blocking scroll gesture at all.</summary>
-    virtual public void GetScrollBlock(out bool prev, out bool next) {
-                                                         Efl.Ui.Pager.NativeMethods.efl_ui_pager_scroll_block_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out prev, out next);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Pages can be scrolled back and forth by default. This property allows limiting the direction of scrolling, or blocking scroll gesture at all.</summary>
-    virtual public void SetScrollBlock(bool prev, bool next) {
-                                                         Efl.Ui.Pager.NativeMethods.efl_ui_pager_scroll_block_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),prev, next);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Pager is not scrolled after it&apos;s scrolled to the end by default. This property gives the option to make a loop through pages.</summary>
-    virtual public Efl.Ui.PagerLoop GetLoopMode() {
-         var _ret_var = Efl.Ui.Pager.NativeMethods.efl_ui_pager_loop_mode_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Pager is not scrolled after it&apos;s scrolled to the end by default. This property gives the option to make a loop through pages.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
-    virtual public bool SetLoopMode(Efl.Ui.PagerLoop loop) {
-                                 var _ret_var = Efl.Ui.Pager.NativeMethods.efl_ui_pager_loop_mode_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),loop);
-        Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
-    virtual public Eina.Size2D GetPageSize() {
-         var _ret_var = Efl.Ui.Pager.NativeMethods.efl_ui_pager_page_size_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    virtual public void SetPageSize(Eina.Size2D size) {
-         Eina.Size2D.NativeStruct _in_size = size;
-                        Efl.Ui.Pager.NativeMethods.efl_ui_pager_page_size_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),_in_size);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    virtual public int GetPadding() {
-         var _ret_var = Efl.Ui.Pager.NativeMethods.efl_ui_pager_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    virtual public void SetPadding(int padding) {
-                                 Efl.Ui.Pager.NativeMethods.efl_ui_pager_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),padding);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
-    virtual public bool ClearPack() {
-         var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Removes all packed contents, without unreferencing them.
-    /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
-    virtual public bool UnpackAll() {
-         var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
-    virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
-                                 var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
-        Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
-    /// <summary>Adds an item to this container.
-    /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
-    /// 
-    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
-    /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
-    virtual public bool Pack(Efl.Gfx.IEntity subobj) {
-                                 var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
-        Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
-    /// <summary>Prepend an object at the beginning of this container.
-    /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, 0).
-    /// 
-    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the beginning.</param>
-    /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
-    virtual public bool PackBegin(Efl.Gfx.IEntity subobj) {
-                                 var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_begin_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
-        Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
-    /// <summary>Append item at the end of this container.
-    /// This is the same as <see cref="Efl.IPackLinear.PackAt"/>(<c>subobj</c>, -1).
-    /// 
-    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack at the end.</param>
-    /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
-    virtual public bool PackEnd(Efl.Gfx.IEntity subobj) {
-                                 var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_end_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
-        Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
-    /// <summary>Prepend item before other sub object.
-    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack before <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
-    /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
-    virtual public bool PackBefore(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
-                                                         var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_before_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
-        Eina.Error.RaiseIfUnhandledException();
-                                        return _ret_var;
- }
-    /// <summary>Append item after other sub object.
-    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack after <c>existing</c>.</param>
-    /// <param name="existing">Item to refer to.</param>
-    /// <returns><c>false</c> if <c>existing</c> could not be found or <c>subobj</c> could not be packed.</returns>
-    virtual public bool PackAfter(Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing) {
-                                                         var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_after_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, existing);
-        Eina.Error.RaiseIfUnhandledException();
-                                        return _ret_var;
- }
-    /// <summary>Inserts <c>subobj</c> BEFORE the item at position <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
-    /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will trigger <see cref="Efl.IPackLinear.PackBegin"/>(<c>subobj</c>) whereas <c>index</c> greater than <c>count</c>-1 will trigger <see cref="Efl.IPackLinear.PackEnd"/>(<c>subobj</c>).
-    /// 
-    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">Item to pack.</param>
-    /// <param name="index">Index of item to insert BEFORE. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
-    virtual public bool PackAt(Efl.Gfx.IEntity subobj, int index) {
-                                                         var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj, index);
-        Eina.Error.RaiseIfUnhandledException();
-                                        return _ret_var;
- }
-    /// <summary>Content at a given <c>index</c> in this container.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
-    /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will return the first item whereas <c>index</c> greater than <c>count</c>-1 will return the last item.</summary>
-    /// <param name="index">Index of the item to retrieve. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The object contained at the given <c>index</c>.</returns>
-    virtual public Efl.Gfx.IEntity GetPackContent(int index) {
-                                 var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_content_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
-        Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
-    /// <summary>Get the index of a child in this container.</summary>
-    /// <param name="subobj">An object contained in this pack.</param>
-    /// <returns>-1 in case <c>subobj</c> is not a child of this object, or the index of this item in the range 0 to (<c>count</c>-1).</returns>
-    virtual public int GetPackIndex(Efl.Gfx.IEntity subobj) {
-                                 var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_index_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
-        Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
-    /// <summary>Pop out (remove) the item at the specified <c>index</c>.
-    /// <c>index</c> ranges from -<c>count</c> to <c>count</c>-1, where positive numbers go from first item (0) to last item (<c>count</c>-1), and negative numbers go from last item (-1) to first item (-<c>count</c>). Where <c>count</c> is the number of items currently in the container.
-    /// 
-    /// If <c>index</c> is less than -<c>count</c>, it will remove the first item whereas <c>index</c> greater than <c>count</c>-1 will remove the last item.
-    /// 
-    /// Equivalent to <see cref="Efl.IPack.Unpack"/>(<see cref="Efl.IPackLinear.GetPackContent"/>(<c>index</c>)).</summary>
-    /// <param name="index">Index of item to remove. Valid range is -<c>count</c> to (<c>count</c>-1).</param>
-    /// <returns>The child item if it could be removed.</returns>
-    virtual public Efl.Gfx.IEntity PackUnpackAt(int index) {
-                                 var _ret_var = Efl.IPackLinearConcrete.NativeMethods.efl_pack_unpack_at_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index);
-        Eina.Error.RaiseIfUnhandledException();
-                        return _ret_var;
- }
-    /// <summary>Page transition effect
-/// Page transition is in charge of displaying pages in a specific way and invoked every time page layout needs to be updated.</summary>
-/// <value>transition effect</value>
-    public Efl.Page.Transition Transition {
-        set { SetTransition(value); }
-    }
-    /// <summary>Page indicator
-/// Page indicator, located on the top layer of pager widget, helps users to know the number of pages and the current page&apos;s index without scrolling.</summary>
-/// <value>indicator class</value>
-    public Efl.Page.Indicator Indicator {
-        set { SetIndicator(value); }
-    }
-    /// <summary>One page is selected as the current page and mainly displayed.</summary>
-    public int CurrentPage {
-        get { return GetCurrentPage(); }
-        set { SetCurrentPage(value); }
-    }
-    /// <summary>Pager is not scrolled after it&apos;s scrolled to the end by default. This property gives the option to make a loop through pages.</summary>
-    public Efl.Ui.PagerLoop LoopMode {
-        get { return GetLoopMode(); }
-        set { SetLoopMode(value); }
-    }
-        public Eina.Size2D PageSize {
-        get { return GetPageSize(); }
-        set { SetPageSize(value); }
-    }
-        public int Padding {
-        get { return GetPadding(); }
-        set { SetPadding(value); }
-    }
-    private static IntPtr GetEflClassStatic()
-    {
-        return Efl.Ui.Pager.efl_ui_pager_class_get();
-    }
-    /// <summary>Wrapper for native methods and virtual method delegates.
-    /// For internal use by generated code only.</summary>
-    public new class NativeMethods : Efl.Ui.LayoutBase.NativeMethods
-    {
-        private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
-        /// <summary>Gets the list of Eo operations to override.</summary>
-        /// <returns>The list of Eo operations to be overload.</returns>
-        public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
-        {
-            var descs = new System.Collections.Generic.List<Efl_Op_Description>();
-            var methods = Efl.Eo.Globals.GetUserMethods(type);
-
-            if (efl_ui_pager_transition_set_static_delegate == null)
-            {
-                efl_ui_pager_transition_set_static_delegate = new efl_ui_pager_transition_set_delegate(transition_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetTransition") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_transition_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_transition_set_static_delegate) });
-            }
-
-            if (efl_ui_pager_indicator_set_static_delegate == null)
-            {
-                efl_ui_pager_indicator_set_static_delegate = new efl_ui_pager_indicator_set_delegate(indicator_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetIndicator") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_indicator_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_indicator_set_static_delegate) });
-            }
-
-            if (efl_ui_pager_current_page_get_static_delegate == null)
-            {
-                efl_ui_pager_current_page_get_static_delegate = new efl_ui_pager_current_page_get_delegate(current_page_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetCurrentPage") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_current_page_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_current_page_get_static_delegate) });
-            }
-
-            if (efl_ui_pager_current_page_set_static_delegate == null)
-            {
-                efl_ui_pager_current_page_set_static_delegate = new efl_ui_pager_current_page_set_delegate(current_page_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetCurrentPage") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_current_page_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_current_page_set_static_delegate) });
-            }
-
-            if (efl_ui_pager_scroll_block_get_static_delegate == null)
-            {
-                efl_ui_pager_scroll_block_get_static_delegate = new efl_ui_pager_scroll_block_get_delegate(scroll_block_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetScrollBlock") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_scroll_block_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_scroll_block_get_static_delegate) });
-            }
-
-            if (efl_ui_pager_scroll_block_set_static_delegate == null)
-            {
-                efl_ui_pager_scroll_block_set_static_delegate = new efl_ui_pager_scroll_block_set_delegate(scroll_block_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetScrollBlock") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_scroll_block_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_scroll_block_set_static_delegate) });
-            }
-
-            if (efl_ui_pager_loop_mode_get_static_delegate == null)
-            {
-                efl_ui_pager_loop_mode_get_static_delegate = new efl_ui_pager_loop_mode_get_delegate(loop_mode_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetLoopMode") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_loop_mode_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_loop_mode_get_static_delegate) });
-            }
-
-            if (efl_ui_pager_loop_mode_set_static_delegate == null)
-            {
-                efl_ui_pager_loop_mode_set_static_delegate = new efl_ui_pager_loop_mode_set_delegate(loop_mode_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetLoopMode") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_loop_mode_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_loop_mode_set_static_delegate) });
-            }
-
-            if (efl_ui_pager_page_size_get_static_delegate == null)
-            {
-                efl_ui_pager_page_size_get_static_delegate = new efl_ui_pager_page_size_get_delegate(page_size_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPageSize") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_page_size_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_page_size_get_static_delegate) });
-            }
-
-            if (efl_ui_pager_page_size_set_static_delegate == null)
-            {
-                efl_ui_pager_page_size_set_static_delegate = new efl_ui_pager_page_size_set_delegate(page_size_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPageSize") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_page_size_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_page_size_set_static_delegate) });
-            }
-
-            if (efl_ui_pager_padding_get_static_delegate == null)
-            {
-                efl_ui_pager_padding_get_static_delegate = new efl_ui_pager_padding_get_delegate(padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_padding_get_static_delegate) });
-            }
-
-            if (efl_ui_pager_padding_set_static_delegate == null)
-            {
-                efl_ui_pager_padding_set_static_delegate = new efl_ui_pager_padding_set_delegate(padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_pager_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_pager_padding_set_static_delegate) });
-            }
-
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
-            if (efl_pack_clear_static_delegate == null)
-            {
-                efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "ClearPack") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_clear"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_clear_static_delegate) });
-            }
-
-            if (efl_pack_unpack_all_static_delegate == null)
-            {
-                efl_pack_unpack_all_static_delegate = new efl_pack_unpack_all_delegate(unpack_all);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "UnpackAll") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack_all"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_all_static_delegate) });
-            }
-
-            if (efl_pack_unpack_static_delegate == null)
-            {
-                efl_pack_unpack_static_delegate = new efl_pack_unpack_delegate(unpack);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "Unpack") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_static_delegate) });
-            }
-
-            if (efl_pack_static_delegate == null)
-            {
-                efl_pack_static_delegate = new efl_pack_delegate(pack);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "Pack") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_static_delegate) });
-            }
-
-            if (efl_pack_begin_static_delegate == null)
-            {
-                efl_pack_begin_static_delegate = new efl_pack_begin_delegate(pack_begin);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "PackBegin") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_begin"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_begin_static_delegate) });
-            }
-
-            if (efl_pack_end_static_delegate == null)
-            {
-                efl_pack_end_static_delegate = new efl_pack_end_delegate(pack_end);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "PackEnd") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_end"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_end_static_delegate) });
-            }
-
-            if (efl_pack_before_static_delegate == null)
-            {
-                efl_pack_before_static_delegate = new efl_pack_before_delegate(pack_before);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "PackBefore") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_before"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_before_static_delegate) });
-            }
-
-            if (efl_pack_after_static_delegate == null)
-            {
-                efl_pack_after_static_delegate = new efl_pack_after_delegate(pack_after);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "PackAfter") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_after"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_after_static_delegate) });
-            }
-
-            if (efl_pack_at_static_delegate == null)
-            {
-                efl_pack_at_static_delegate = new efl_pack_at_delegate(pack_at);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "PackAt") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_at"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_at_static_delegate) });
-            }
-
-            if (efl_pack_content_get_static_delegate == null)
-            {
-                efl_pack_content_get_static_delegate = new efl_pack_content_get_delegate(pack_content_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackContent") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_content_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_content_get_static_delegate) });
-            }
-
-            if (efl_pack_index_get_static_delegate == null)
-            {
-                efl_pack_index_get_static_delegate = new efl_pack_index_get_delegate(pack_index_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackIndex") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_index_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_index_get_static_delegate) });
-            }
-
-            if (efl_pack_unpack_at_static_delegate == null)
-            {
-                efl_pack_unpack_at_static_delegate = new efl_pack_unpack_at_delegate(pack_unpack_at);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "PackUnpackAt") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack_at"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_at_static_delegate) });
-            }
-
-            descs.AddRange(base.GetEoOps(type));
-            return descs;
-        }
-        /// <summary>Returns the Eo class for the native methods of this class.</summary>
-        /// <returns>The native class pointer.</returns>
-        public override IntPtr GetEflClass()
-        {
-            return Efl.Ui.Pager.efl_ui_pager_class_get();
-        }
-
-        #pragma warning disable CA1707, SA1300, SA1600
-
-        
-        private delegate void efl_ui_pager_transition_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Page.Transition transition);
-
-        
-        public delegate void efl_ui_pager_transition_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Page.Transition transition);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_transition_set_api_delegate> efl_ui_pager_transition_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_transition_set_api_delegate>(Module, "efl_ui_pager_transition_set");
-
-        private static void transition_set(System.IntPtr obj, System.IntPtr pd, Efl.Page.Transition transition)
-        {
-            Eina.Log.Debug("function efl_ui_pager_transition_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((Pager)wrapper).SetTransition(transition);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_ui_pager_transition_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), transition);
-            }
-        }
-
-        private static efl_ui_pager_transition_set_delegate efl_ui_pager_transition_set_static_delegate;
-
-        
-        private delegate void efl_ui_pager_indicator_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Page.Indicator indicator);
-
-        
-        public delegate void efl_ui_pager_indicator_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Page.Indicator indicator);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_indicator_set_api_delegate> efl_ui_pager_indicator_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_indicator_set_api_delegate>(Module, "efl_ui_pager_indicator_set");
-
-        private static void indicator_set(System.IntPtr obj, System.IntPtr pd, Efl.Page.Indicator indicator)
-        {
-            Eina.Log.Debug("function efl_ui_pager_indicator_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((Pager)wrapper).SetIndicator(indicator);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_ui_pager_indicator_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), indicator);
-            }
-        }
-
-        private static efl_ui_pager_indicator_set_delegate efl_ui_pager_indicator_set_static_delegate;
-
-        
-        private delegate int efl_ui_pager_current_page_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate int efl_ui_pager_current_page_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_current_page_get_api_delegate> efl_ui_pager_current_page_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_current_page_get_api_delegate>(Module, "efl_ui_pager_current_page_get");
-
-        private static int current_page_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_ui_pager_current_page_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            int _ret_var = default(int);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).GetCurrentPage();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_ui_pager_current_page_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_ui_pager_current_page_get_delegate efl_ui_pager_current_page_get_static_delegate;
-
-        
-        private delegate void efl_ui_pager_current_page_set_delegate(System.IntPtr obj, System.IntPtr pd,  int index);
-
-        
-        public delegate void efl_ui_pager_current_page_set_api_delegate(System.IntPtr obj,  int index);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_current_page_set_api_delegate> efl_ui_pager_current_page_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_current_page_set_api_delegate>(Module, "efl_ui_pager_current_page_set");
-
-        private static void current_page_set(System.IntPtr obj, System.IntPtr pd, int index)
-        {
-            Eina.Log.Debug("function efl_ui_pager_current_page_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((Pager)wrapper).SetCurrentPage(index);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_ui_pager_current_page_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), index);
-            }
-        }
-
-        private static efl_ui_pager_current_page_set_delegate efl_ui_pager_current_page_set_static_delegate;
-
-        
-        private delegate void efl_ui_pager_scroll_block_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] out bool prev, [MarshalAs(UnmanagedType.U1)] out bool next);
-
-        
-        public delegate void efl_ui_pager_scroll_block_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.U1)] out bool prev, [MarshalAs(UnmanagedType.U1)] out bool next);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_scroll_block_get_api_delegate> efl_ui_pager_scroll_block_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_scroll_block_get_api_delegate>(Module, "efl_ui_pager_scroll_block_get");
-
-        private static void scroll_block_get(System.IntPtr obj, System.IntPtr pd, out bool prev, out bool next)
-        {
-            Eina.Log.Debug("function efl_ui_pager_scroll_block_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        prev = default(bool);        next = default(bool);                            
-                try
-                {
-                    ((Pager)wrapper).GetScrollBlock(out prev, out next);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_ui_pager_scroll_block_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out prev, out next);
-            }
-        }
-
-        private static efl_ui_pager_scroll_block_get_delegate efl_ui_pager_scroll_block_get_static_delegate;
-
-        
-        private delegate void efl_ui_pager_scroll_block_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] bool prev, [MarshalAs(UnmanagedType.U1)] bool next);
-
-        
-        public delegate void efl_ui_pager_scroll_block_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.U1)] bool prev, [MarshalAs(UnmanagedType.U1)] bool next);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_scroll_block_set_api_delegate> efl_ui_pager_scroll_block_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_scroll_block_set_api_delegate>(Module, "efl_ui_pager_scroll_block_set");
-
-        private static void scroll_block_set(System.IntPtr obj, System.IntPtr pd, bool prev, bool next)
-        {
-            Eina.Log.Debug("function efl_ui_pager_scroll_block_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((Pager)wrapper).SetScrollBlock(prev, next);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_ui_pager_scroll_block_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), prev, next);
-            }
-        }
-
-        private static efl_ui_pager_scroll_block_set_delegate efl_ui_pager_scroll_block_set_static_delegate;
-
-        
-        private delegate Efl.Ui.PagerLoop efl_ui_pager_loop_mode_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate Efl.Ui.PagerLoop efl_ui_pager_loop_mode_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_loop_mode_get_api_delegate> efl_ui_pager_loop_mode_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_loop_mode_get_api_delegate>(Module, "efl_ui_pager_loop_mode_get");
-
-        private static Efl.Ui.PagerLoop loop_mode_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_ui_pager_loop_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Efl.Ui.PagerLoop _ret_var = default(Efl.Ui.PagerLoop);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).GetLoopMode();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_ui_pager_loop_mode_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_ui_pager_loop_mode_get_delegate efl_ui_pager_loop_mode_get_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_ui_pager_loop_mode_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.PagerLoop loop);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_ui_pager_loop_mode_set_api_delegate(System.IntPtr obj,  Efl.Ui.PagerLoop loop);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_loop_mode_set_api_delegate> efl_ui_pager_loop_mode_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_loop_mode_set_api_delegate>(Module, "efl_ui_pager_loop_mode_set");
-
-        private static bool loop_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.PagerLoop loop)
-        {
-            Eina.Log.Debug("function efl_ui_pager_loop_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).SetLoopMode(loop);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_ui_pager_loop_mode_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), loop);
-            }
-        }
-
-        private static efl_ui_pager_loop_mode_set_delegate efl_ui_pager_loop_mode_set_static_delegate;
-
-        
-        private delegate Eina.Size2D.NativeStruct efl_ui_pager_page_size_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate Eina.Size2D.NativeStruct efl_ui_pager_page_size_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_page_size_get_api_delegate> efl_ui_pager_page_size_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_page_size_get_api_delegate>(Module, "efl_ui_pager_page_size_get");
-
-        private static Eina.Size2D.NativeStruct page_size_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_ui_pager_page_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            Eina.Size2D _ret_var = default(Eina.Size2D);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).GetPageSize();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_ui_pager_page_size_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_ui_pager_page_size_get_delegate efl_ui_pager_page_size_get_static_delegate;
-
-        
-        private delegate void efl_ui_pager_page_size_set_delegate(System.IntPtr obj, System.IntPtr pd,  Eina.Size2D.NativeStruct size);
-
-        
-        public delegate void efl_ui_pager_page_size_set_api_delegate(System.IntPtr obj,  Eina.Size2D.NativeStruct size);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_page_size_set_api_delegate> efl_ui_pager_page_size_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_page_size_set_api_delegate>(Module, "efl_ui_pager_page_size_set");
-
-        private static void page_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
-        {
-            Eina.Log.Debug("function efl_ui_pager_page_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-        Eina.Size2D _in_size = size;
-                            
-                try
-                {
-                    ((Pager)wrapper).SetPageSize(_in_size);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_ui_pager_page_size_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), size);
-            }
-        }
-
-        private static efl_ui_pager_page_size_set_delegate efl_ui_pager_page_size_set_static_delegate;
-
-        
-        private delegate int efl_ui_pager_padding_get_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        
-        public delegate int efl_ui_pager_padding_get_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_padding_get_api_delegate> efl_ui_pager_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_padding_get_api_delegate>(Module, "efl_ui_pager_padding_get");
-
-        private static int padding_get(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_ui_pager_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            int _ret_var = default(int);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).GetPadding();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_ui_pager_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_ui_pager_padding_get_delegate efl_ui_pager_padding_get_static_delegate;
-
-        
-        private delegate void efl_ui_pager_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  int padding);
-
-        
-        public delegate void efl_ui_pager_padding_set_api_delegate(System.IntPtr obj,  int padding);
-
-        public static Efl.Eo.FunctionWrapper<efl_ui_pager_padding_set_api_delegate> efl_ui_pager_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_pager_padding_set_api_delegate>(Module, "efl_ui_pager_padding_set");
-
-        private static void padding_set(System.IntPtr obj, System.IntPtr pd, int padding)
-        {
-            Eina.Log.Debug("function efl_ui_pager_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    
-                try
-                {
-                    ((Pager)wrapper).SetPadding(padding);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        
-            }
-            else
-            {
-                efl_ui_pager_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), padding);
-            }
-        }
-
-        private static efl_ui_pager_padding_set_delegate efl_ui_pager_padding_set_static_delegate;
-
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((Pager)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((Pager)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((Pager)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((Pager)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_pack_clear_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_clear_api_delegate> efl_pack_clear_ptr = new Efl.Eo.FunctionWrapper<efl_pack_clear_api_delegate>(Module, "efl_pack_clear");
-
-        private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).ClearPack();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_clear_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_pack_clear_delegate efl_pack_clear_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_pack_unpack_all_delegate(System.IntPtr obj, System.IntPtr pd);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_pack_unpack_all_api_delegate(System.IntPtr obj);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_unpack_all_api_delegate> efl_pack_unpack_all_ptr = new Efl.Eo.FunctionWrapper<efl_pack_unpack_all_api_delegate>(Module, "efl_pack_unpack_all");
-
-        private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
-        {
-            Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-            bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).UnpackAll();
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_unpack_all_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
-            }
-        }
-
-        private static efl_pack_unpack_all_delegate efl_pack_unpack_all_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_pack_unpack_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_pack_unpack_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_unpack_api_delegate> efl_pack_unpack_ptr = new Efl.Eo.FunctionWrapper<efl_pack_unpack_api_delegate>(Module, "efl_pack_unpack");
-
-        private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
-        {
-            Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).Unpack(subobj);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_unpack_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
-            }
-        }
-
-        private static efl_pack_unpack_delegate efl_pack_unpack_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_pack_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_pack_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_api_delegate> efl_pack_ptr = new Efl.Eo.FunctionWrapper<efl_pack_api_delegate>(Module, "efl_pack");
-
-        private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
-        {
-            Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).Pack(subobj);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
-            }
-        }
-
-        private static efl_pack_delegate efl_pack_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_pack_begin_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_pack_begin_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_begin_api_delegate> efl_pack_begin_ptr = new Efl.Eo.FunctionWrapper<efl_pack_begin_api_delegate>(Module, "efl_pack_begin");
-
-        private static bool pack_begin(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
-        {
-            Eina.Log.Debug("function efl_pack_begin was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).PackBegin(subobj);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_begin_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
-            }
-        }
-
-        private static efl_pack_begin_delegate efl_pack_begin_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_pack_end_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_pack_end_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_end_api_delegate> efl_pack_end_ptr = new Efl.Eo.FunctionWrapper<efl_pack_end_api_delegate>(Module, "efl_pack_end");
-
-        private static bool pack_end(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
-        {
-            Eina.Log.Debug("function efl_pack_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).PackEnd(subobj);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_end_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
-            }
-        }
-
-        private static efl_pack_end_delegate efl_pack_end_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_pack_before_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity existing);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_pack_before_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity existing);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_before_api_delegate> efl_pack_before_ptr = new Efl.Eo.FunctionWrapper<efl_pack_before_api_delegate>(Module, "efl_pack_before");
-
-        private static bool pack_before(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
-        {
-            Eina.Log.Debug("function efl_pack_before was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).PackBefore(subobj, existing);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_before_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, existing);
-            }
-        }
-
-        private static efl_pack_before_delegate efl_pack_before_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_pack_after_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity existing);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_pack_after_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity existing);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_after_api_delegate> efl_pack_after_ptr = new Efl.Eo.FunctionWrapper<efl_pack_after_api_delegate>(Module, "efl_pack_after");
-
-        private static bool pack_after(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, Efl.Gfx.IEntity existing)
-        {
-            Eina.Log.Debug("function efl_pack_after was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).PackAfter(subobj, existing);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_after_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, existing);
-            }
-        }
-
-        private static efl_pack_after_delegate efl_pack_after_static_delegate;
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_pack_at_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
-
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_pack_at_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int index);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_at_api_delegate> efl_pack_at_ptr = new Efl.Eo.FunctionWrapper<efl_pack_at_api_delegate>(Module, "efl_pack_at");
-
-        private static bool pack_at(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int index)
-        {
-            Eina.Log.Debug("function efl_pack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            bool _ret_var = default(bool);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).PackAt(subobj, index);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_at_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, index);
-            }
-        }
-
-        private static efl_pack_at_delegate efl_pack_at_static_delegate;
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        private delegate Efl.Gfx.IEntity efl_pack_content_get_delegate(System.IntPtr obj, System.IntPtr pd,  int index);
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        public delegate Efl.Gfx.IEntity efl_pack_content_get_api_delegate(System.IntPtr obj,  int index);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_content_get_api_delegate> efl_pack_content_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_content_get_api_delegate>(Module, "efl_pack_content_get");
-
-        private static Efl.Gfx.IEntity pack_content_get(System.IntPtr obj, System.IntPtr pd, int index)
-        {
-            Eina.Log.Debug("function efl_pack_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).GetPackContent(index);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_content_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), index);
-            }
-        }
-
-        private static efl_pack_content_get_delegate efl_pack_content_get_static_delegate;
-
-        
-        private delegate int efl_pack_index_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
-
-        
-        public delegate int efl_pack_index_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_index_get_api_delegate> efl_pack_index_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_index_get_api_delegate>(Module, "efl_pack_index_get");
-
-        private static int pack_index_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
-        {
-            Eina.Log.Debug("function efl_pack_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    int _ret_var = default(int);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).GetPackIndex(subobj);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_index_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
-            }
-        }
-
-        private static efl_pack_index_get_delegate efl_pack_index_get_static_delegate;
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        private delegate Efl.Gfx.IEntity efl_pack_unpack_at_delegate(System.IntPtr obj, System.IntPtr pd,  int index);
-
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        public delegate Efl.Gfx.IEntity efl_pack_unpack_at_api_delegate(System.IntPtr obj,  int index);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_unpack_at_api_delegate> efl_pack_unpack_at_ptr = new Efl.Eo.FunctionWrapper<efl_pack_unpack_at_api_delegate>(Module, "efl_pack_unpack_at");
-
-        private static Efl.Gfx.IEntity pack_unpack_at(System.IntPtr obj, System.IntPtr pd, int index)
-        {
-            Eina.Log.Debug("function efl_pack_unpack_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                    Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
-                try
-                {
-                    _ret_var = ((Pager)wrapper).PackUnpackAt(index);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                        return _ret_var;
-
-            }
-            else
-            {
-                return efl_pack_unpack_at_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), index);
-            }
-        }
-
-        private static efl_pack_unpack_at_delegate efl_pack_unpack_at_static_delegate;
-
-        #pragma warning restore CA1707, SA1300, SA1600
-
-}
-}
-}
-
-}
-
-namespace Efl {
-
-namespace Ui {
-
-/// <summary>Efl ui pager loop mode</summary>
-public enum PagerLoop
-{
-Disabled = 0,
-Enabled = 1,
-}
-
-}
-
-}
-
index d93d002..b4033b1 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary pan class</summary>
 [Efl.Ui.Pan.NativeMethods]
-public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
+public class Pan : Efl.Canvas.Group, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Pan(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Pan"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when pan content changed</summary>
     public event EventHandler PanContentChangedEvt
     {
@@ -89,10 +62,9 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -142,10 +114,9 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -195,10 +166,9 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -249,13 +219,12 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -372,9 +341,9 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         get { return GetPanPositionMax(); }
     }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
@@ -485,7 +454,7 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
             return Efl.Ui.Pan.efl_ui_pan_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Position2D.NativeStruct efl_ui_pan_position_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -498,13 +467,13 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         private static Eina.Position2D.NativeStruct pan_position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_pan_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Pan)wrapper).GetPanPosition();
+                    _ret_var = ((Pan)ws.Target).GetPanPosition();
                 }
                 catch (Exception e)
                 {
@@ -534,14 +503,14 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         private static void pan_position_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct position)
         {
             Eina.Log.Debug("function efl_ui_pan_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_position = position;
                             
                 try
                 {
-                    ((Pan)wrapper).SetPanPosition(_in_position);
+                    ((Pan)ws.Target).SetPanPosition(_in_position);
                 }
                 catch (Exception e)
                 {
@@ -570,13 +539,13 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         private static Eina.Size2D.NativeStruct content_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_pan_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Pan)wrapper).GetContentSize();
+                    _ret_var = ((Pan)ws.Target).GetContentSize();
                 }
                 catch (Exception e)
                 {
@@ -606,13 +575,13 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         private static Eina.Position2D.NativeStruct pan_position_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_pan_position_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Pan)wrapper).GetPanPositionMin();
+                    _ret_var = ((Pan)ws.Target).GetPanPositionMin();
                 }
                 catch (Exception e)
                 {
@@ -642,13 +611,13 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         private static Eina.Position2D.NativeStruct pan_position_max_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_pan_position_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Pan)wrapper).GetPanPositionMax();
+                    _ret_var = ((Pan)ws.Target).GetPanPositionMax();
                 }
                 catch (Exception e)
                 {
@@ -678,13 +647,13 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Pan)wrapper).GetContent();
+                    _ret_var = ((Pan)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -714,13 +683,13 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Pan)wrapper).SetContent(content);
+                    _ret_var = ((Pan)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -750,13 +719,13 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Pan)wrapper).UnsetContent();
+                    _ret_var = ((Pan)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -775,7 +744,7 @@ public class Pan : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IContent
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 82fe520..156751e 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary panel class</summary>
 [Efl.Ui.Panel.NativeMethods]
-public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScrollable,Efl.Ui.IWidgetFocusManager,Efl.Ui.Focus.ILayer,Efl.Ui.Focus.IManager,Efl.Ui.Focus.IManagerSub,Elm.IInterfaceScrollable
+public class Panel : Efl.Ui.LayoutBase, Efl.IContent, Efl.Ui.IScrollable, Efl.Ui.IWidgetFocusManager, Efl.Ui.Focus.ILayer, Efl.Ui.Focus.IManager, Efl.Ui.Focus.IManagerSub, Elm.IInterfaceScrollable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Panel(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Panel"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when the hidden state was toggled</summary>
     public event EventHandler ToggledEvt
     {
@@ -95,10 +68,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -149,13 +121,12 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -204,10 +175,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -257,10 +227,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -310,10 +279,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -363,10 +331,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -416,10 +383,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -469,10 +435,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -522,10 +487,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -575,10 +539,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -628,10 +591,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -681,10 +643,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -734,10 +695,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -787,10 +747,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -840,10 +799,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -893,10 +851,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -946,10 +903,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1000,13 +956,12 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -1056,10 +1011,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1110,10 +1064,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1164,13 +1117,12 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -1220,14 +1172,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -1282,10 +1233,9 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2194,258 +2144,258 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Gets the orientation of the panel.</summary>
-/// <value>The panel orientation.</value>
+    /// <value>The panel orientation.</value>
     public Efl.Ui.PanelOrient Orient {
         get { return GetOrient(); }
         set { SetOrient(value); }
     }
     /// <summary>Gets the state of the panel.</summary>
-/// <value>If <c>true</c>, the panel will run the animation to disappear.</value>
+    /// <value>If <c>true</c>, the panel will run the animation to disappear.</value>
     public bool Hidden {
         get { return GetHidden(); }
         set { SetHidden(value); }
     }
     /// <summary>Gets the state of the scrollability.</summary>
-/// <value>The scrollable state.</value>
+    /// <value>The scrollable state.</value>
     public bool Scrollable {
         get { return GetScrollable(); }
         set { SetScrollable(value); }
     }
     /// <summary>Gets the size of the scrollable panel.</summary>
-/// <value>Size ratio</value>
+    /// <value>Size ratio</value>
     public double ScrollableContentSize {
         get { return GetScrollableContentSize(); }
         set { SetScrollableContentSize(value); }
     }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>Enable property</summary>
-/// <value><c>true</c> to set enable the layer <c>false</c> to disable it</value>
+    /// <value><c>true</c> to set enable the layer <c>false</c> to disable it</value>
     public bool Enable {
         get { return GetEnable(); }
         set { SetEnable(value); }
     }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
     }
     /// <summary>Control Wheel disable Enable or disable mouse wheel to be used to scroll the scroller content. heel is enabled by default.</summary>
-/// <value><c>true</c> if wheel is disabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if wheel is disabled, <c>false</c> otherwise</value>
     public bool WheelDisabled {
         get { return GetWheelDisabled(); }
         set { SetWheelDisabled(value); }
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. One can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.
-/// 
-/// What makes this function different from freeze_push(), hold_push() and lock_x_set() (or lock_y_set()) is that it doesn&apos;t propagate its effects to any parent or child widget of <c>obj</c>. Only the target scrollable widget will be locked with regard to scrolling.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. One can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.
+    /// 
+    /// What makes this function different from freeze_push(), hold_push() and lock_x_set() (or lock_y_set()) is that it doesn&apos;t propagate its effects to any parent or child widget of <c>obj</c>. Only the target scrollable widget will be locked with regard to scrolling.</summary>
+    /// <value>Which axis (or axes) to block</value>
     public Efl.Ui.ScrollBlock MovementBlock {
         get { return GetMovementBlock(); }
         set { SetMovementBlock(value); }
     }
     /// <summary>Momentum animator</summary>
-/// <value><c>true</c> if disabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if disabled, <c>false</c> otherwise</value>
     public bool MomentumAnimatorDisabled {
         get { return GetMomentumAnimatorDisabled(); }
         set { SetMomentumAnimatorDisabled(value); }
     }
     /// <summary>It decides whether the scrollable object propagates the events to content object or not.</summary>
-/// <value><c>true</c> if events are propagated, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if events are propagated, <c>false</c> otherwise</value>
     public bool ContentEvents {
         get { return GetContentEvents(); }
         set { SetContentEvents(value); }
     }
     /// <summary>Bounce animator</summary>
-/// <value><c>true</c> if bounce animation is disabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if bounce animation is disabled, <c>false</c> otherwise</value>
     public bool BounceAnimatorDisabled {
         get { return GetBounceAnimatorDisabled(); }
         set { SetBounceAnimatorDisabled(value); }
     }
     /// <summary>Single direction scroll configuration
-/// This makes it possible to restrict scrolling to a single direction, with a &quot;soft&quot; or &quot;hard&quot; behavior.
-/// 
-/// The hard behavior restricts the scrolling to a single direction all of the time while the soft one will restrict depending on factors such as the movement angle. If the user scrolls roughly in one direction only, it will only move according to it while if the move was clearly wanted on both axes, it will happen on both of them.</summary>
-/// <value>The single direction scroll policy</value>
+    /// This makes it possible to restrict scrolling to a single direction, with a &quot;soft&quot; or &quot;hard&quot; behavior.
+    /// 
+    /// The hard behavior restricts the scrolling to a single direction all of the time while the soft one will restrict depending on factors such as the movement angle. If the user scrolls roughly in one direction only, it will only move according to it while if the move was clearly wanted on both axes, it will happen on both of them.</summary>
+    /// <value>The single direction scroll policy</value>
     public Elm.Scroller.SingleDirection SingleDirection {
         get { return GetSingleDirection(); }
         set { SetSingleDirection(value); }
     }
     /// <summary>Set the callback to run when the content has been moved up.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollUpCb {
         set { SetScrollUpCb(value); }
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is dragged.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb HbarDragCb {
         set { SetHbarDragCb(value); }
     }
     /// <summary>Set the callback to run when dragging of the contents has started.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb DragStartCb {
         set { SetDragStartCb(value); }
     }
     /// <summary>Set the callback to run when scrolling of the contents has started.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollStartCb {
         set { SetScrollStartCb(value); }
     }
     /// <summary>Freeze property</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     public bool Freeze {
         set { SetFreeze(value); }
     }
     /// <summary>When the viewport is resized, the callback is called.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableResizeCb ContentViewportResizeCb {
         set { SetContentViewportResizeCb(value); }
     }
     /// <summary>Set the callback to run when the content has been moved to the left</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollLeftCb {
         set { SetScrollLeftCb(value); }
     }
     /// <summary>Set the callback to run when the vertical scrollbar is pressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb VbarPressCb {
         set { SetVbarPressCb(value); }
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is pressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb HbarPressCb {
         set { SetHbarPressCb(value); }
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is unpressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb HbarUnpressCb {
         set { SetHbarUnpressCb(value); }
     }
     /// <summary>Set the callback to run when dragging of the contents has stopped.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb DragStopCb {
         set { SetDragStopCb(value); }
     }
     /// <summary>Set the callback to run when scrolling of the contents has stopped.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollStopCb {
         set { SetScrollStopCb(value); }
     }
     /// <summary>Extern pan</summary>
-/// <value>Pan object</value>
+    /// <value>Pan object</value>
     public Efl.Canvas.Object ExternPan {
         set { SetExternPan(value); }
     }
     /// <summary>Set the callback to run when the visible page changes.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb PageChangeCb {
         set { SetPageChangeCb(value); }
     }
     /// <summary>Hold property</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     public bool Hold {
         set { SetHold(value); }
     }
     /// <summary>Set the callback to run when the scrolling animation has started.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb AnimateStartCb {
         set { SetAnimateStartCb(value); }
     }
     /// <summary>Set the callback to run when the content has been moved down.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollDownCb {
         set { SetScrollDownCb(value); }
     }
     /// <summary>Set the callback to run when the content has been moved.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollCb {
         set { SetScrollCb(value); }
     }
     /// <summary>Set the callback to run when the scrolling animation has stopped.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb AnimateStopCb {
         set { SetAnimateStopCb(value); }
     }
     /// <summary>set the callback to run on minimal limit content</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableMinLimitCb ContentMinLimitCb {
         set { SetContentMinLimitCb(value); }
     }
     /// <summary>Set the callback to run when the content has been moved to the right.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollRightCb {
         set { SetScrollRightCb(value); }
     }
     /// <summary>Content property</summary>
-/// <value>Content object</value>
+    /// <value>Content object</value>
     public Efl.Canvas.Object ScrollableContent {
         set { SetScrollableContent(value); }
     }
     /// <summary>Set the callback to run when the left edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb EdgeLeftCb {
         set { SetEdgeLeftCb(value); }
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is dragged.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb VbarDragCb {
         set { SetVbarDragCb(value); }
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is unpressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb VbarUnpressCb {
         set { SetVbarUnpressCb(value); }
     }
     /// <summary>Set the callback to run when the bottom edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb EdgeBottomCb {
         set { SetEdgeBottomCb(value); }
     }
     /// <summary>Set the callback to run when the right edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb EdgeRightCb {
         set { SetEdgeRightCb(value); }
     }
     /// <summary>Set the callback to run when the top edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb EdgeTopCb {
         set { SetEdgeTopCb(value); }
     }
     /// <summary>Whether scrolling should loop around.</summary>
-/// <value>True to enable looping.</value>
+    /// <value>True to enable looping.</value>
     public bool ItemLoopEnabled {
         get { return GetItemLoopEnabled(); }
         set { SetItemLoopEnabled(value); }
@@ -3596,7 +3546,7 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
             return Efl.Ui.Panel.efl_ui_panel_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Ui.PanelOrient efl_ui_panel_orient_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -3609,13 +3559,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Ui.PanelOrient orient_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_panel_orient_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.PanelOrient _ret_var = default(Efl.Ui.PanelOrient);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetOrient();
+                    _ret_var = ((Panel)ws.Target).GetOrient();
                 }
                 catch (Exception e)
                 {
@@ -3645,13 +3595,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void orient_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.PanelOrient orient)
         {
             Eina.Log.Debug("function efl_ui_panel_orient_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetOrient(orient);
+                    ((Panel)ws.Target).SetOrient(orient);
                 }
                 catch (Exception e)
                 {
@@ -3680,13 +3630,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static bool hidden_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_panel_hidden_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetHidden();
+                    _ret_var = ((Panel)ws.Target).GetHidden();
                 }
                 catch (Exception e)
                 {
@@ -3716,13 +3666,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void hidden_set(System.IntPtr obj, System.IntPtr pd, bool hidden)
         {
             Eina.Log.Debug("function efl_ui_panel_hidden_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetHidden(hidden);
+                    ((Panel)ws.Target).SetHidden(hidden);
                 }
                 catch (Exception e)
                 {
@@ -3751,13 +3701,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static bool scrollable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_panel_scrollable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetScrollable();
+                    _ret_var = ((Panel)ws.Target).GetScrollable();
                 }
                 catch (Exception e)
                 {
@@ -3787,13 +3737,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void scrollable_set(System.IntPtr obj, System.IntPtr pd, bool scrollable)
         {
             Eina.Log.Debug("function efl_ui_panel_scrollable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetScrollable(scrollable);
+                    ((Panel)ws.Target).SetScrollable(scrollable);
                 }
                 catch (Exception e)
                 {
@@ -3822,13 +3772,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static double scrollable_content_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_panel_scrollable_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetScrollableContentSize();
+                    _ret_var = ((Panel)ws.Target).GetScrollableContentSize();
                 }
                 catch (Exception e)
                 {
@@ -3858,13 +3808,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void scrollable_content_size_set(System.IntPtr obj, System.IntPtr pd, double ratio)
         {
             Eina.Log.Debug("function efl_ui_panel_scrollable_content_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetScrollableContentSize(ratio);
+                    ((Panel)ws.Target).SetScrollableContentSize(ratio);
                 }
                 catch (Exception e)
                 {
@@ -3893,13 +3843,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void toggle(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_panel_toggle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Panel)wrapper).Toggle();
+                    ((Panel)ws.Target).Toggle();
                 }
                 catch (Exception e)
                 {
@@ -3928,13 +3878,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetContent();
+                    _ret_var = ((Panel)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -3964,13 +3914,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).SetContent(content);
+                    _ret_var = ((Panel)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -4000,13 +3950,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).UnsetContent();
+                    _ret_var = ((Panel)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -4036,13 +3986,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Ui.Focus.IManager focus_manager_create(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_manager_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).FocusManagerCreate(root);
+                    _ret_var = ((Panel)ws.Target).FocusManagerCreate(root);
                 }
                 catch (Exception e)
                 {
@@ -4072,13 +4022,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static bool enable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_enable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetEnable();
+                    _ret_var = ((Panel)ws.Target).GetEnable();
                 }
                 catch (Exception e)
                 {
@@ -4108,13 +4058,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void enable_set(System.IntPtr obj, System.IntPtr pd, bool v)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_enable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetEnable(v);
+                    ((Panel)ws.Target).SetEnable(v);
                 }
                 catch (Exception e)
                 {
@@ -4143,13 +4093,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void behaviour_get(System.IntPtr obj, System.IntPtr pd, out bool enable_on_visible, out bool cycle)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_behaviour_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         enable_on_visible = default(bool);        cycle = default(bool);                            
                 try
                 {
-                    ((Panel)wrapper).GetBehaviour(out enable_on_visible, out cycle);
+                    ((Panel)ws.Target).GetBehaviour(out enable_on_visible, out cycle);
                 }
                 catch (Exception e)
                 {
@@ -4178,13 +4128,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void behaviour_set(System.IntPtr obj, System.IntPtr pd, bool enable_on_visible, bool cycle)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_behaviour_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetBehaviour(enable_on_visible, cycle);
+                    ((Panel)ws.Target).SetBehaviour(enable_on_visible, cycle);
                 }
                 catch (Exception e)
                 {
@@ -4213,13 +4163,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetManagerFocus();
+                    _ret_var = ((Panel)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -4249,13 +4199,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetManagerFocus(focus);
+                    ((Panel)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -4284,13 +4234,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetRedirect();
+                    _ret_var = ((Panel)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -4320,13 +4270,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetRedirect(redirect);
+                    ((Panel)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -4355,13 +4305,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetBorderElements();
+                    _ret_var = ((Panel)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -4391,14 +4341,14 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((Panel)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -4428,13 +4378,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetRoot();
+                    _ret_var = ((Panel)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -4464,13 +4414,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).SetRoot(root);
+                    _ret_var = ((Panel)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -4500,13 +4450,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).Move(direction);
+                    _ret_var = ((Panel)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -4536,13 +4486,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((Panel)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -4572,13 +4522,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).RequestSubchild(root);
+                    _ret_var = ((Panel)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -4608,13 +4558,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).Fetch(child);
+                    _ret_var = ((Panel)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -4644,13 +4594,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).LogicalEnd();
+                    _ret_var = ((Panel)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -4680,13 +4630,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Panel)wrapper).ResetHistory();
+                    ((Panel)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -4715,13 +4665,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Panel)wrapper).PopHistoryStack();
+                    ((Panel)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -4750,13 +4700,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((Panel)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -4785,13 +4735,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Panel)wrapper).FreezeDirtyLogic();
+                    ((Panel)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -4820,13 +4770,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Panel)wrapper).DirtyLogicUnfreeze();
+                    ((Panel)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -4855,13 +4805,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void gravity_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_gravity_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Panel)wrapper).GetGravity(out x, out y);
+                    ((Panel)ws.Target).GetGravity(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -4890,13 +4840,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void gravity_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_gravity_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetGravity(x, y);
+                    ((Panel)ws.Target).SetGravity(x, y);
                 }
                 catch (Exception e)
                 {
@@ -4925,13 +4875,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void bounce_allow_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function elm_interface_scrollable_bounce_allow_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((Panel)wrapper).GetBounceAllow(out horiz, out vert);
+                    ((Panel)ws.Target).GetBounceAllow(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -4960,13 +4910,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void bounce_allow_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function elm_interface_scrollable_bounce_allow_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetBounceAllow(horiz, vert);
+                    ((Panel)ws.Target).SetBounceAllow(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -4995,13 +4945,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static bool wheel_disabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_wheel_disabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetWheelDisabled();
+                    _ret_var = ((Panel)ws.Target).GetWheelDisabled();
                 }
                 catch (Exception e)
                 {
@@ -5031,13 +4981,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void wheel_disabled_set(System.IntPtr obj, System.IntPtr pd, bool disabled)
         {
             Eina.Log.Debug("function elm_interface_scrollable_wheel_disabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetWheelDisabled(disabled);
+                    ((Panel)ws.Target).SetWheelDisabled(disabled);
                 }
                 catch (Exception e)
                 {
@@ -5066,13 +5016,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Efl.Ui.ScrollBlock movement_block_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_movement_block_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ScrollBlock _ret_var = default(Efl.Ui.ScrollBlock);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetMovementBlock();
+                    _ret_var = ((Panel)ws.Target).GetMovementBlock();
                 }
                 catch (Exception e)
                 {
@@ -5102,13 +5052,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void movement_block_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollBlock block)
         {
             Eina.Log.Debug("function elm_interface_scrollable_movement_block_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetMovementBlock(block);
+                    ((Panel)ws.Target).SetMovementBlock(block);
                 }
                 catch (Exception e)
                 {
@@ -5137,13 +5087,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static bool momentum_animator_disabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_momentum_animator_disabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetMomentumAnimatorDisabled();
+                    _ret_var = ((Panel)ws.Target).GetMomentumAnimatorDisabled();
                 }
                 catch (Exception e)
                 {
@@ -5173,13 +5123,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void momentum_animator_disabled_set(System.IntPtr obj, System.IntPtr pd, bool disabled)
         {
             Eina.Log.Debug("function elm_interface_scrollable_momentum_animator_disabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetMomentumAnimatorDisabled(disabled);
+                    ((Panel)ws.Target).SetMomentumAnimatorDisabled(disabled);
                 }
                 catch (Exception e)
                 {
@@ -5208,13 +5158,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void policy_get(System.IntPtr obj, System.IntPtr pd, out Elm.Scroller.Policy hbar, out Elm.Scroller.Policy vbar)
         {
             Eina.Log.Debug("function elm_interface_scrollable_policy_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         hbar = default(Elm.Scroller.Policy);        vbar = default(Elm.Scroller.Policy);                            
                 try
                 {
-                    ((Panel)wrapper).GetPolicy(out hbar, out vbar);
+                    ((Panel)ws.Target).GetPolicy(out hbar, out vbar);
                 }
                 catch (Exception e)
                 {
@@ -5243,13 +5193,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void policy_set(System.IntPtr obj, System.IntPtr pd, Elm.Scroller.Policy hbar, Elm.Scroller.Policy vbar)
         {
             Eina.Log.Debug("function elm_interface_scrollable_policy_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetPolicy(hbar, vbar);
+                    ((Panel)ws.Target).SetPolicy(hbar, vbar);
                 }
                 catch (Exception e)
                 {
@@ -5278,13 +5228,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_region_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y, out int w, out int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_region_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         x = default(int);        y = default(int);        w = default(int);        h = default(int);                                            
                 try
                 {
-                    ((Panel)wrapper).GetContentRegion(out x, out y, out w, out h);
+                    ((Panel)ws.Target).GetContentRegion(out x, out y, out w, out h);
                 }
                 catch (Exception e)
                 {
@@ -5313,13 +5263,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_region_set(System.IntPtr obj, System.IntPtr pd, int x, int y, int w, int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_region_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Panel)wrapper).SetContentRegion(x, y, w, h);
+                    ((Panel)ws.Target).SetContentRegion(x, y, w, h);
                 }
                 catch (Exception e)
                 {
@@ -5348,13 +5298,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static bool content_events_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_events_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetContentEvents();
+                    _ret_var = ((Panel)ws.Target).GetContentEvents();
                 }
                 catch (Exception e)
                 {
@@ -5384,13 +5334,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_events_set(System.IntPtr obj, System.IntPtr pd, bool repeat_events)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_events_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetContentEvents(repeat_events);
+                    ((Panel)ws.Target).SetContentEvents(repeat_events);
                 }
                 catch (Exception e)
                 {
@@ -5419,13 +5369,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void page_size_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(int);        y = default(int);                            
                 try
                 {
-                    ((Panel)wrapper).GetPageSize(out x, out y);
+                    ((Panel)ws.Target).GetPageSize(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -5454,13 +5404,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void page_size_set(System.IntPtr obj, System.IntPtr pd, int x, int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetPageSize(x, y);
+                    ((Panel)ws.Target).SetPageSize(x, y);
                 }
                 catch (Exception e)
                 {
@@ -5489,13 +5439,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static bool bounce_animator_disabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_bounce_animator_disabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetBounceAnimatorDisabled();
+                    _ret_var = ((Panel)ws.Target).GetBounceAnimatorDisabled();
                 }
                 catch (Exception e)
                 {
@@ -5525,13 +5475,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void bounce_animator_disabled_set(System.IntPtr obj, System.IntPtr pd, bool disabled)
         {
             Eina.Log.Debug("function elm_interface_scrollable_bounce_animator_disabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetBounceAnimatorDisabled(disabled);
+                    ((Panel)ws.Target).SetBounceAnimatorDisabled(disabled);
                 }
                 catch (Exception e)
                 {
@@ -5560,13 +5510,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void page_scroll_limit_get(System.IntPtr obj, System.IntPtr pd, out int page_limit_h, out int page_limit_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_scroll_limit_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         page_limit_h = default(int);        page_limit_v = default(int);                            
                 try
                 {
-                    ((Panel)wrapper).GetPageScrollLimit(out page_limit_h, out page_limit_v);
+                    ((Panel)ws.Target).GetPageScrollLimit(out page_limit_h, out page_limit_v);
                 }
                 catch (Exception e)
                 {
@@ -5595,13 +5545,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void page_scroll_limit_set(System.IntPtr obj, System.IntPtr pd, int page_limit_h, int page_limit_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_scroll_limit_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetPageScrollLimit(page_limit_h, page_limit_v);
+                    ((Panel)ws.Target).SetPageScrollLimit(page_limit_h, page_limit_v);
                 }
                 catch (Exception e)
                 {
@@ -5630,13 +5580,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void page_snap_allow_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_snap_allow_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((Panel)wrapper).GetPageSnapAllow(out horiz, out vert);
+                    ((Panel)ws.Target).GetPageSnapAllow(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -5665,13 +5615,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void page_snap_allow_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_snap_allow_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetPageSnapAllow(horiz, vert);
+                    ((Panel)ws.Target).SetPageSnapAllow(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -5700,13 +5650,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void paging_get(System.IntPtr obj, System.IntPtr pd, out double pagerel_h, out double pagerel_v, out int pagesize_h, out int pagesize_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_paging_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         pagerel_h = default(double);        pagerel_v = default(double);        pagesize_h = default(int);        pagesize_v = default(int);                                            
                 try
                 {
-                    ((Panel)wrapper).GetPaging(out pagerel_h, out pagerel_v, out pagesize_h, out pagesize_v);
+                    ((Panel)ws.Target).GetPaging(out pagerel_h, out pagerel_v, out pagesize_h, out pagesize_v);
                 }
                 catch (Exception e)
                 {
@@ -5735,13 +5685,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void paging_set(System.IntPtr obj, System.IntPtr pd, double pagerel_h, double pagerel_v, int pagesize_h, int pagesize_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_paging_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Panel)wrapper).SetPaging(pagerel_h, pagerel_v, pagesize_h, pagesize_v);
+                    ((Panel)ws.Target).SetPaging(pagerel_h, pagerel_v, pagesize_h, pagesize_v);
                 }
                 catch (Exception e)
                 {
@@ -5770,13 +5720,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static Elm.Scroller.SingleDirection single_direction_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_single_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Elm.Scroller.SingleDirection _ret_var = default(Elm.Scroller.SingleDirection);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetSingleDirection();
+                    _ret_var = ((Panel)ws.Target).GetSingleDirection();
                 }
                 catch (Exception e)
                 {
@@ -5806,13 +5756,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void single_direction_set(System.IntPtr obj, System.IntPtr pd, Elm.Scroller.SingleDirection single_dir)
         {
             Eina.Log.Debug("function elm_interface_scrollable_single_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetSingleDirection(single_dir);
+                    ((Panel)ws.Target).SetSingleDirection(single_dir);
                 }
                 catch (Exception e)
                 {
@@ -5841,13 +5791,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void step_size_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_step_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(int);        y = default(int);                            
                 try
                 {
-                    ((Panel)wrapper).GetStepSize(out x, out y);
+                    ((Panel)ws.Target).GetStepSize(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -5876,13 +5826,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void step_size_set(System.IntPtr obj, System.IntPtr pd, int x, int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_step_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetStepSize(x, y);
+                    ((Panel)ws.Target).SetStepSize(x, y);
                 }
                 catch (Exception e)
                 {
@@ -5911,13 +5861,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_loop_get(System.IntPtr obj, System.IntPtr pd, out bool loop_h, out bool loop_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_loop_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         loop_h = default(bool);        loop_v = default(bool);                            
                 try
                 {
-                    ((Panel)wrapper).GetContentLoop(out loop_h, out loop_v);
+                    ((Panel)ws.Target).GetContentLoop(out loop_h, out loop_v);
                 }
                 catch (Exception e)
                 {
@@ -5946,13 +5896,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_loop_set(System.IntPtr obj, System.IntPtr pd, bool loop_h, bool loop_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_loop_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetContentLoop(loop_h, loop_v);
+                    ((Panel)ws.Target).SetContentLoop(loop_h, loop_v);
                 }
                 catch (Exception e)
                 {
@@ -5981,13 +5931,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void scroll_up_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_up_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_up_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetScrollUpCb(scroll_up_cb);
+                    ((Panel)ws.Target).SetScrollUpCb(scroll_up_cb);
                 }
                 catch (Exception e)
                 {
@@ -6016,13 +5966,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void hbar_drag_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb hbar_drag_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_hbar_drag_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetHbarDragCb(hbar_drag_cb);
+                    ((Panel)ws.Target).SetHbarDragCb(hbar_drag_cb);
                 }
                 catch (Exception e)
                 {
@@ -6051,13 +6001,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void drag_start_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb drag_start_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_drag_start_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetDragStartCb(drag_start_cb);
+                    ((Panel)ws.Target).SetDragStartCb(drag_start_cb);
                 }
                 catch (Exception e)
                 {
@@ -6086,13 +6036,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void scroll_start_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_start_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_start_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetScrollStartCb(scroll_start_cb);
+                    ((Panel)ws.Target).SetScrollStartCb(scroll_start_cb);
                 }
                 catch (Exception e)
                 {
@@ -6121,13 +6071,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void freeze_set(System.IntPtr obj, System.IntPtr pd, bool freeze)
         {
             Eina.Log.Debug("function elm_interface_scrollable_freeze_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetFreeze(freeze);
+                    ((Panel)ws.Target).SetFreeze(freeze);
                 }
                 catch (Exception e)
                 {
@@ -6156,13 +6106,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_viewport_resize_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableResizeCb viewport_resize_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_viewport_resize_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetContentViewportResizeCb(viewport_resize_cb);
+                    ((Panel)ws.Target).SetContentViewportResizeCb(viewport_resize_cb);
                 }
                 catch (Exception e)
                 {
@@ -6191,13 +6141,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void scroll_left_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_left_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_left_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetScrollLeftCb(scroll_left_cb);
+                    ((Panel)ws.Target).SetScrollLeftCb(scroll_left_cb);
                 }
                 catch (Exception e)
                 {
@@ -6226,13 +6176,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void vbar_press_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb vbar_press_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_vbar_press_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetVbarPressCb(vbar_press_cb);
+                    ((Panel)ws.Target).SetVbarPressCb(vbar_press_cb);
                 }
                 catch (Exception e)
                 {
@@ -6261,13 +6211,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void hbar_press_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb hbar_press_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_hbar_press_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetHbarPressCb(hbar_press_cb);
+                    ((Panel)ws.Target).SetHbarPressCb(hbar_press_cb);
                 }
                 catch (Exception e)
                 {
@@ -6296,13 +6246,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void hbar_unpress_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb hbar_unpress_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_hbar_unpress_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetHbarUnpressCb(hbar_unpress_cb);
+                    ((Panel)ws.Target).SetHbarUnpressCb(hbar_unpress_cb);
                 }
                 catch (Exception e)
                 {
@@ -6331,13 +6281,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void drag_stop_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb drag_stop_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_drag_stop_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetDragStopCb(drag_stop_cb);
+                    ((Panel)ws.Target).SetDragStopCb(drag_stop_cb);
                 }
                 catch (Exception e)
                 {
@@ -6366,13 +6316,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void scroll_stop_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_stop_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_stop_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetScrollStopCb(scroll_stop_cb);
+                    ((Panel)ws.Target).SetScrollStopCb(scroll_stop_cb);
                 }
                 catch (Exception e)
                 {
@@ -6401,13 +6351,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void extern_pan_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object pan)
         {
             Eina.Log.Debug("function elm_interface_scrollable_extern_pan_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetExternPan(pan);
+                    ((Panel)ws.Target).SetExternPan(pan);
                 }
                 catch (Exception e)
                 {
@@ -6436,13 +6386,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void page_change_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb page_change_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_change_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetPageChangeCb(page_change_cb);
+                    ((Panel)ws.Target).SetPageChangeCb(page_change_cb);
                 }
                 catch (Exception e)
                 {
@@ -6471,13 +6421,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void hold_set(System.IntPtr obj, System.IntPtr pd, bool hold)
         {
             Eina.Log.Debug("function elm_interface_scrollable_hold_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetHold(hold);
+                    ((Panel)ws.Target).SetHold(hold);
                 }
                 catch (Exception e)
                 {
@@ -6506,13 +6456,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void animate_start_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb animate_start_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_animate_start_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetAnimateStartCb(animate_start_cb);
+                    ((Panel)ws.Target).SetAnimateStartCb(animate_start_cb);
                 }
                 catch (Exception e)
                 {
@@ -6541,13 +6491,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void scroll_down_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_down_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_down_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetScrollDownCb(scroll_down_cb);
+                    ((Panel)ws.Target).SetScrollDownCb(scroll_down_cb);
                 }
                 catch (Exception e)
                 {
@@ -6576,13 +6526,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void page_relative_set(System.IntPtr obj, System.IntPtr pd, double h_pagerel, double v_pagerel)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_relative_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetPageRelative(h_pagerel, v_pagerel);
+                    ((Panel)ws.Target).SetPageRelative(h_pagerel, v_pagerel);
                 }
                 catch (Exception e)
                 {
@@ -6611,13 +6561,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void scroll_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetScrollCb(scroll_cb);
+                    ((Panel)ws.Target).SetScrollCb(scroll_cb);
                 }
                 catch (Exception e)
                 {
@@ -6646,13 +6596,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void animate_stop_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb animate_stop_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_animate_stop_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetAnimateStopCb(animate_stop_cb);
+                    ((Panel)ws.Target).SetAnimateStopCb(animate_stop_cb);
                 }
                 catch (Exception e)
                 {
@@ -6681,13 +6631,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_min_limit_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableMinLimitCb min_limit_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_min_limit_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetContentMinLimitCb(min_limit_cb);
+                    ((Panel)ws.Target).SetContentMinLimitCb(min_limit_cb);
                 }
                 catch (Exception e)
                 {
@@ -6716,13 +6666,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void scroll_right_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_right_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_right_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetScrollRightCb(scroll_right_cb);
+                    ((Panel)ws.Target).SetScrollRightCb(scroll_right_cb);
                 }
                 catch (Exception e)
                 {
@@ -6751,13 +6701,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void scrollable_content_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object content)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetScrollableContent(content);
+                    ((Panel)ws.Target).SetScrollableContent(content);
                 }
                 catch (Exception e)
                 {
@@ -6786,13 +6736,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void edge_left_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb edge_left_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_edge_left_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetEdgeLeftCb(edge_left_cb);
+                    ((Panel)ws.Target).SetEdgeLeftCb(edge_left_cb);
                 }
                 catch (Exception e)
                 {
@@ -6821,13 +6771,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void vbar_drag_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb vbar_drag_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_vbar_drag_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetVbarDragCb(vbar_drag_cb);
+                    ((Panel)ws.Target).SetVbarDragCb(vbar_drag_cb);
                 }
                 catch (Exception e)
                 {
@@ -6856,13 +6806,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void vbar_unpress_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb vbar_unpress_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_vbar_unpress_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetVbarUnpressCb(vbar_unpress_cb);
+                    ((Panel)ws.Target).SetVbarUnpressCb(vbar_unpress_cb);
                 }
                 catch (Exception e)
                 {
@@ -6891,13 +6841,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void edge_bottom_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb edge_bottom_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_edge_bottom_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetEdgeBottomCb(edge_bottom_cb);
+                    ((Panel)ws.Target).SetEdgeBottomCb(edge_bottom_cb);
                 }
                 catch (Exception e)
                 {
@@ -6926,13 +6876,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void edge_right_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb edge_right_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_edge_right_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetEdgeRightCb(edge_right_cb);
+                    ((Panel)ws.Target).SetEdgeRightCb(edge_right_cb);
                 }
                 catch (Exception e)
                 {
@@ -6961,13 +6911,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void edge_top_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb edge_top_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_edge_top_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetEdgeTopCb(edge_top_cb);
+                    ((Panel)ws.Target).SetEdgeTopCb(edge_top_cb);
                 }
                 catch (Exception e)
                 {
@@ -6996,13 +6946,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void objects_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object edje_object, Efl.Canvas.Object hit_rectangle)
         {
             Eina.Log.Debug("function elm_interface_scrollable_objects_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetObjects(edje_object, hit_rectangle);
+                    ((Panel)ws.Target).SetObjects(edje_object, hit_rectangle);
                 }
                 catch (Exception e)
                 {
@@ -7031,13 +6981,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void last_page_get(System.IntPtr obj, System.IntPtr pd, out int pagenumber_h, out int pagenumber_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_last_page_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         pagenumber_h = default(int);        pagenumber_v = default(int);                            
                 try
                 {
-                    ((Panel)wrapper).GetLastPage(out pagenumber_h, out pagenumber_v);
+                    ((Panel)ws.Target).GetLastPage(out pagenumber_h, out pagenumber_v);
                 }
                 catch (Exception e)
                 {
@@ -7066,13 +7016,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void current_page_get(System.IntPtr obj, System.IntPtr pd, out int pagenumber_h, out int pagenumber_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_current_page_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         pagenumber_h = default(int);        pagenumber_v = default(int);                            
                 try
                 {
-                    ((Panel)wrapper).GetCurrentPage(out pagenumber_h, out pagenumber_v);
+                    ((Panel)ws.Target).GetCurrentPage(out pagenumber_h, out pagenumber_v);
                 }
                 catch (Exception e)
                 {
@@ -7101,13 +7051,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_viewport_geometry_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y, out int w, out int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_viewport_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         x = default(int);        y = default(int);        w = default(int);        h = default(int);                                            
                 try
                 {
-                    ((Panel)wrapper).GetContentViewportGeometry(out x, out y, out w, out h);
+                    ((Panel)ws.Target).GetContentViewportGeometry(out x, out y, out w, out h);
                 }
                 catch (Exception e)
                 {
@@ -7136,13 +7086,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_size_get(System.IntPtr obj, System.IntPtr pd, out int w, out int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         w = default(int);        h = default(int);                            
                 try
                 {
-                    ((Panel)wrapper).GetContentSize(out w, out h);
+                    ((Panel)ws.Target).GetContentSize(out w, out h);
                 }
                 catch (Exception e)
                 {
@@ -7171,13 +7121,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static bool item_loop_enabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_item_loop_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panel)wrapper).GetItemLoopEnabled();
+                    _ret_var = ((Panel)ws.Target).GetItemLoopEnabled();
                 }
                 catch (Exception e)
                 {
@@ -7207,13 +7157,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void item_loop_enabled_set(System.IntPtr obj, System.IntPtr pd, bool enable)
         {
             Eina.Log.Debug("function elm_interface_scrollable_item_loop_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panel)wrapper).SetItemLoopEnabled(enable);
+                    ((Panel)ws.Target).SetItemLoopEnabled(enable);
                 }
                 catch (Exception e)
                 {
@@ -7242,13 +7192,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_pos_set(System.IntPtr obj, System.IntPtr pd, int x, int y, bool sig)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Panel)wrapper).SetContentPos(x, y, sig);
+                    ((Panel)ws.Target).SetContentPos(x, y, sig);
                 }
                 catch (Exception e)
                 {
@@ -7277,13 +7227,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_pos_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(int);        y = default(int);                            
                 try
                 {
-                    ((Panel)wrapper).GetContentPos(out x, out y);
+                    ((Panel)ws.Target).GetContentPos(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -7312,13 +7262,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void page_show(System.IntPtr obj, System.IntPtr pd, int pagenumber_h, int pagenumber_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_show was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).ShowPage(pagenumber_h, pagenumber_v);
+                    ((Panel)ws.Target).ShowPage(pagenumber_h, pagenumber_v);
                 }
                 catch (Exception e)
                 {
@@ -7347,13 +7297,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void region_bring_in(System.IntPtr obj, System.IntPtr pd, int x, int y, int w, int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_region_bring_in was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Panel)wrapper).RegionBringIn(x, y, w, h);
+                    ((Panel)ws.Target).RegionBringIn(x, y, w, h);
                 }
                 catch (Exception e)
                 {
@@ -7382,13 +7332,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void page_bring_in(System.IntPtr obj, System.IntPtr pd, int pagenumber_h, int pagenumber_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_bring_in was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).PageBringIn(pagenumber_h, pagenumber_v);
+                    ((Panel)ws.Target).PageBringIn(pagenumber_h, pagenumber_v);
                 }
                 catch (Exception e)
                 {
@@ -7417,13 +7367,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_region_show(System.IntPtr obj, System.IntPtr pd, int x, int y, int w, int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_region_show was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Panel)wrapper).ShowContentRegion(x, y, w, h);
+                    ((Panel)ws.Target).ShowContentRegion(x, y, w, h);
                 }
                 catch (Exception e)
                 {
@@ -7452,13 +7402,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void content_min_limit(System.IntPtr obj, System.IntPtr pd, bool w, bool h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_min_limit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).ContentMinLimit(w, h);
+                    ((Panel)ws.Target).ContentMinLimit(w, h);
                 }
                 catch (Exception e)
                 {
@@ -7487,13 +7437,13 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void wanted_region_set(System.IntPtr obj, System.IntPtr pd, int x, int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_wanted_region_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Panel)wrapper).SetWantedRegion(x, y);
+                    ((Panel)ws.Target).SetWantedRegion(x, y);
                 }
                 catch (Exception e)
                 {
@@ -7522,15 +7472,15 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
         private static void custom_pan_pos_adjust(System.IntPtr obj, System.IntPtr pd, System.IntPtr x, System.IntPtr y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_custom_pan_pos_adjust was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_x = Eina.PrimitiveConversion.PointerToManaged<int>(x);
         var _in_y = Eina.PrimitiveConversion.PointerToManaged<int>(y);
                                             
                 try
                 {
-                    ((Panel)wrapper).CustomPanPosAdjust(_in_x, _in_y);
+                    ((Panel)ws.Target).CustomPanPosAdjust(_in_x, _in_y);
                 }
                 catch (Exception e)
                 {
@@ -7548,7 +7498,7 @@ public class Panel : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScr
 
         private static elm_interface_scrollable_custom_pan_pos_adjust_delegate elm_interface_scrollable_custom_pan_pos_adjust_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -7598,12 +7548,16 @@ public struct PanelScrollInfo
         this.Rel_y = Rel_y;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator PanelScrollInfo(IntPtr ptr)
     {
         var tmp = (PanelScrollInfo.NativeStruct)Marshal.PtrToStructure(ptr, typeof(PanelScrollInfo.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct PanelScrollInfo.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -7632,6 +7586,8 @@ public struct PanelScrollInfo
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 2cb86e1..47c81f3 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary panes class</summary>
 [Efl.Ui.Panes.NativeMethods]
-public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui.IDirection
+public class Panes : Efl.Ui.LayoutBase, Efl.Ui.IClickable, Efl.Ui.ILayoutOrientable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Panes(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Panes"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when panes got pressed</summary>
     public event EventHandler PressEvt
     {
@@ -95,10 +68,9 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -148,10 +120,9 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -194,20 +165,20 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
+    /// <summary>Called when object is in sequence pressed and unpressed, by the primary button</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedEvt_Args> ClickedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedEvt_Args args = new Efl.Ui.IClickableClickedEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -221,7 +192,7 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
                 };
 
                 string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -230,90 +201,46 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
     ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
+    public void OnClickedEvt(Efl.Ui.IClickableClickedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
+    /// <summary>Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedAnyEvt_Args> ClickedAnyEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedAnyEvt_Args args = new Efl.Ui.IClickableClickedAnyEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -326,8 +253,8 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
                     }
                 };
 
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -335,94 +262,47 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
         {
             lock (eventLock)
             {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
+    ///<summary>Method to raise event ClickedAnyEvt.</summary>
+    public void OnClickedAnyEvt(Efl.Ui.IClickableClickedAnyEvt_Args e)
     {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        var key = "_EFL_UI_EVENT_CLICKED_ANY";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Called when the object is pressed</summary>
+    /// <summary>Called when the object is pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -436,7 +316,7 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
                 };
 
                 string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -445,7 +325,7 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -453,31 +333,37 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
     public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object is no longer pressed</summary>
+    /// <summary>Called when the object is no longer pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -491,7 +377,7 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
                 };
 
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -500,7 +386,7 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -508,31 +394,37 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
     public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object receives a long press</summary>
+    /// <summary>Called when the object receives a long press, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -546,7 +438,7 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
                 };
 
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -555,7 +447,7 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -563,71 +455,25 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
     public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
         {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-
-        remove
+        finally
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.FreeHGlobal(info);
         }
     }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
     /// <summary>The second half of the panes widget (right or bottom)</summary>
-    public Efl.Ui.PanesPart Second
+    public Efl.Ui.PanesPart SecondPart
     {
         get
         {
@@ -635,7 +481,7 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
         }
     }
     /// <summary>The first half of the panes widget (left or top)</summary>
-    public Efl.Ui.PanesPart First
+    public Efl.Ui.PanesPart FirstPart
     {
         get
         {
@@ -684,13 +530,33 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
                                  Efl.Ui.Panes.NativeMethods.efl_ui_panes_fixed_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),kw_fixed);
         Eina.Error.RaiseIfUnhandledException();
                          }
+    /// <summary>Change internal states that a button got pressed.
+    /// When the button is already pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Press(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_press_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Change internal states that a button got unpressed.
+    /// When the button is not pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Unpress(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_unpress_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>This aborts the internal state after a press call.
+    /// This will stop the timer for longpress. And set the state of the clickable mixin back into the unpressed state.</summary>
+    virtual public void ResetButtonState(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_button_state_reset_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>Control the direction of a given widget.
     /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <returns>Direction of the widget.</returns>
-    virtual public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+    virtual public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
@@ -699,38 +565,38 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <param name="dir">Direction of the widget.</param>
-    virtual public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+    virtual public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Set the split ratio between panes widget first and second parts.
-/// By default it&apos;s homogeneous, i.e., both sides have the same size.
-/// 
-/// If something different is required, it can be set with this function. For example, if the first content should be displayed over 75% of the panes size, <c>ratio</c> should be passed as 0.75. This way, second content will be resized to 25% of panes size.
-/// 
-/// If displayed vertically, first content is displayed at top, and second content at bottom.
-/// 
-/// Note: This ratio will change when user drags the panes bar.</summary>
-/// <value>Value between 0.0 and 1.0 representing split ratio between panes first and second parts.</value>
+    /// By default it&apos;s homogeneous, i.e., both sides have the same size.
+    /// 
+    /// If something different is required, it can be set with this function. For example, if the first content should be displayed over 75% of the panes size, <c>ratio</c> should be passed as 0.75. This way, second content will be resized to 25% of panes size.
+    /// 
+    /// If displayed vertically, first content is displayed at top, and second content at bottom.
+    /// 
+    /// Note: This ratio will change when user drags the panes bar.</summary>
+    /// <value>Value between 0.0 and 1.0 representing split ratio between panes first and second parts.</value>
     public double SplitRatio {
         get { return GetSplitRatio(); }
         set { SetSplitRatio(value); }
     }
     /// <summary>Set whether the left and right panes can be resized by user interaction.
-/// By default panes&apos; contents are resizable by user interaction.</summary>
-/// <value>Use <c>true</c> to fix the left and right panes sizes and make them not to be resized by user interaction. Use <c>false</c> to make them resizable.</value>
+    /// By default panes&apos; contents are resizable by user interaction.</summary>
+    /// <value>Use <c>true</c> to fix the left and right panes sizes and make them not to be resized by user interaction. Use <c>false</c> to make them resizable.</value>
     public bool Fixed {
         get { return GetFixed(); }
         set { SetFixed(value); }
     }
     /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
     }
     private static IntPtr GetEflClassStatic()
     {
@@ -788,24 +654,54 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_panes_fixed_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_panes_fixed_set_static_delegate) });
             }
 
-            if (efl_ui_direction_get_static_delegate == null)
+            if (efl_ui_clickable_press_static_delegate == null)
+            {
+                efl_ui_clickable_press_static_delegate = new efl_ui_clickable_press_delegate(press);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Press") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_press"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_press_static_delegate) });
+            }
+
+            if (efl_ui_clickable_unpress_static_delegate == null)
+            {
+                efl_ui_clickable_unpress_static_delegate = new efl_ui_clickable_unpress_delegate(unpress);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Unpress") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_unpress"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_unpress_static_delegate) });
+            }
+
+            if (efl_ui_clickable_button_state_reset_static_delegate == null)
+            {
+                efl_ui_clickable_button_state_reset_static_delegate = new efl_ui_clickable_button_state_reset_delegate(button_state_reset);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "ResetButtonState") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_button_state_reset"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_button_state_reset_static_delegate) });
+            }
+
+            if (efl_ui_layout_orientation_get_static_delegate == null)
             {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
             }
 
-            if (efl_ui_direction_set_static_delegate == null)
+            if (efl_ui_layout_orientation_set_static_delegate == null)
             {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
             }
 
             descs.AddRange(base.GetEoOps(type));
@@ -818,7 +714,7 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
             return Efl.Ui.Panes.efl_ui_panes_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_ui_panes_split_ratio_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -831,13 +727,13 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
         private static double split_ratio_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_panes_split_ratio_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Panes)wrapper).GetSplitRatio();
+                    _ret_var = ((Panes)ws.Target).GetSplitRatio();
                 }
                 catch (Exception e)
                 {
@@ -867,13 +763,13 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
         private static void split_ratio_set(System.IntPtr obj, System.IntPtr pd, double ratio)
         {
             Eina.Log.Debug("function efl_ui_panes_split_ratio_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panes)wrapper).SetSplitRatio(ratio);
+                    ((Panes)ws.Target).SetSplitRatio(ratio);
                 }
                 catch (Exception e)
                 {
@@ -902,13 +798,13 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
         private static bool fixed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_panes_fixed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Panes)wrapper).GetFixed();
+                    _ret_var = ((Panes)ws.Target).GetFixed();
                 }
                 catch (Exception e)
                 {
@@ -938,13 +834,13 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
         private static void fixed_set(System.IntPtr obj, System.IntPtr pd, bool kw_fixed)
         {
             Eina.Log.Debug("function efl_ui_panes_fixed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panes)wrapper).SetFixed(kw_fixed);
+                    ((Panes)ws.Target).SetFixed(kw_fixed);
                 }
                 catch (Exception e)
                 {
@@ -963,23 +859,128 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
         private static efl_ui_panes_fixed_set_delegate efl_ui_panes_fixed_set_static_delegate;
 
         
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate void efl_ui_clickable_press_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_press_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate> efl_ui_clickable_press_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate>(Module, "efl_ui_clickable_press");
+
+        private static void press(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_press was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Panes)ws.Target).Press(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_press_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_press_delegate efl_ui_clickable_press_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_unpress_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_unpress_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate> efl_ui_clickable_unpress_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate>(Module, "efl_ui_clickable_unpress");
+
+        private static void unpress(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_unpress was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Panes)ws.Target).Unpress(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_unpress_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_unpress_delegate efl_ui_clickable_unpress_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_button_state_reset_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_button_state_reset_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate> efl_ui_clickable_button_state_reset_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate>(Module, "efl_ui_clickable_button_state_reset");
+
+        private static void button_state_reset(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_button_state_reset was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Panes)ws.Target).ResetButtonState(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_button_state_reset_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_button_state_reset_delegate efl_ui_clickable_button_state_reset_static_delegate;
+
+        
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
 
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
                 try
                 {
-                    _ret_var = ((Panes)wrapper).GetDirection();
+                    _ret_var = ((Panes)ws.Target).GetOrientation();
                 }
                 catch (Exception e)
                 {
@@ -992,30 +993,30 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
             }
             else
             {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
 
         
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
 
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Panes)wrapper).SetDirection(dir);
+                    ((Panes)ws.Target).SetOrientation(dir);
                 }
                 catch (Exception e)
                 {
@@ -1027,13 +1028,13 @@ public class Panes : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable,Efl.Ui
             }
             else
             {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
             }
         }
 
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index ca0c367..d59a83d 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary Panes internal part class</summary>
 [Efl.Ui.PanesPart.NativeMethods]
-public class PanesPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
+public class PanesPart : Efl.Ui.LayoutPartContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class PanesPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected PanesPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="PanesPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class PanesPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Allows the user to set size hints to be respected and ignored combined with a minimum size. If this flag is set, the minimum size set by <see cref="Efl.Gfx.IHint.SetHintSizeMin"/> is respected forcefully.</summary>
     /// <returns>If <c>true</c> minimum size is forced</returns>
     virtual public bool GetHintMinAllow() {
@@ -111,14 +84,14 @@ public class PanesPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Allows the user to set size hints to be respected and ignored combined with a minimum size. If this flag is set, the minimum size set by <see cref="Efl.Gfx.IHint.SetHintSizeMin"/> is respected forcefully.</summary>
-/// <value>If <c>true</c> minimum size is forced</value>
+    /// <value>If <c>true</c> minimum size is forced</value>
     public bool HintMinAllow {
         get { return GetHintMinAllow(); }
         set { SetHintMinAllow(value); }
     }
     /// <summary>Controls the relative minimum size of panes widget&apos;s part.
-/// If <see cref="Efl.Gfx.IHint.SetHintSizeMin"/> is also used along with <see cref="Efl.Ui.PanesPart.SetSplitRatioMin"/>, maximum value is set as minimum size to part.</summary>
-/// <value>Value between 0.0 and 1.0 representing size proportion of first part&apos;s minimum size.</value>
+    /// If <see cref="Efl.Gfx.IHint.SetHintSizeMin"/> is also used along with <see cref="Efl.Ui.PanesPart.SetSplitRatioMin"/>, maximum value is set as minimum size to part.</summary>
+    /// <value>Value between 0.0 and 1.0 representing size proportion of first part&apos;s minimum size.</value>
     public double SplitRatioMin {
         get { return GetSplitRatioMin(); }
         set { SetSplitRatioMin(value); }
@@ -189,7 +162,7 @@ public class PanesPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
             return Efl.Ui.PanesPart.efl_ui_panes_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_panes_part_hint_min_allow_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -202,13 +175,13 @@ public class PanesPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
         private static bool hint_min_allow_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_panes_part_hint_min_allow_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((PanesPart)wrapper).GetHintMinAllow();
+                    _ret_var = ((PanesPart)ws.Target).GetHintMinAllow();
                 }
                 catch (Exception e)
                 {
@@ -238,13 +211,13 @@ public class PanesPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
         private static void hint_min_allow_set(System.IntPtr obj, System.IntPtr pd, bool allow)
         {
             Eina.Log.Debug("function efl_ui_panes_part_hint_min_allow_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((PanesPart)wrapper).SetHintMinAllow(allow);
+                    ((PanesPart)ws.Target).SetHintMinAllow(allow);
                 }
                 catch (Exception e)
                 {
@@ -273,13 +246,13 @@ public class PanesPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
         private static double split_ratio_min_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_panes_part_split_ratio_min_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((PanesPart)wrapper).GetSplitRatioMin();
+                    _ret_var = ((PanesPart)ws.Target).GetSplitRatioMin();
                 }
                 catch (Exception e)
                 {
@@ -309,13 +282,13 @@ public class PanesPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
         private static void split_ratio_min_set(System.IntPtr obj, System.IntPtr pd, double size)
         {
             Eina.Log.Debug("function efl_ui_panes_part_split_ratio_min_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((PanesPart)wrapper).SetSplitRatioMin(size);
+                    ((PanesPart)ws.Target).SetSplitRatioMin(size);
                 }
                 catch (Exception e)
                 {
@@ -333,7 +306,7 @@ public class PanesPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
 
         private static efl_ui_panes_part_split_ratio_min_set_delegate efl_ui_panes_part_split_ratio_min_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 7b8aca6..b36b8b7 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>EFL UI popup class</summary>
 [Efl.Ui.Popup.NativeMethods]
-public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWidgetFocusManager,Efl.Ui.Focus.ILayer,Efl.Ui.Focus.IManager
+public class Popup : Efl.Ui.LayoutBase, Efl.IContent, Efl.Ui.IWidgetFocusManager, Efl.Ui.Focus.ILayer, Efl.Ui.Focus.IManager
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Popup(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Popup"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>This is called whenever the user clicks back wall of popup.</summary>
     public event EventHandler BackwallClickedEvt
     {
@@ -95,10 +68,9 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -148,10 +120,9 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -202,13 +173,12 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -258,13 +228,12 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -314,10 +283,9 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -368,10 +336,9 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -422,13 +389,12 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -478,14 +444,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -534,7 +499,7 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         }
     }
     /// <summary>A backwall behind the popup.</summary>
-    public Efl.Ui.PopupPartBackwall Backwall
+    public Efl.Ui.PopupPartBackwall BackwallPart
     {
         get
         {
@@ -806,13 +771,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Get the current popup alignment.</summary>
-/// <value>Alignment type</value>
+    /// <value>Alignment type</value>
     public Efl.Ui.PopupAlign Align {
         get { return GetAlign(); }
         set { SetAlign(value); }
     }
     /// <summary>Get the currently set timeout seconds.</summary>
-/// <value>Timeout in seconds</value>
+    /// <value>Timeout in seconds</value>
     public double Timeout {
         get { return GetTimeout(); }
         set { SetTimeout(value); }
@@ -823,46 +788,46 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         set { SetPopupSize(value); }
     }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>Enable property</summary>
-/// <value><c>true</c> to set enable the layer <c>false</c> to disable it</value>
+    /// <value><c>true</c> to set enable the layer <c>false</c> to disable it</value>
     public bool Enable {
         get { return GetEnable(); }
         set { SetEnable(value); }
     }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
@@ -1213,7 +1178,7 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
             return Efl.Ui.Popup.efl_ui_popup_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Ui.PopupAlign efl_ui_popup_align_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1226,13 +1191,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Ui.PopupAlign align_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_popup_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.PopupAlign _ret_var = default(Efl.Ui.PopupAlign);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).GetAlign();
+                    _ret_var = ((Popup)ws.Target).GetAlign();
                 }
                 catch (Exception e)
                 {
@@ -1262,13 +1227,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void align_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.PopupAlign type)
         {
             Eina.Log.Debug("function efl_ui_popup_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Popup)wrapper).SetAlign(type);
+                    ((Popup)ws.Target).SetAlign(type);
                 }
                 catch (Exception e)
                 {
@@ -1297,13 +1262,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static double timeout_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_popup_timeout_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).GetTimeout();
+                    _ret_var = ((Popup)ws.Target).GetTimeout();
                 }
                 catch (Exception e)
                 {
@@ -1333,13 +1298,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void timeout_set(System.IntPtr obj, System.IntPtr pd, double time)
         {
             Eina.Log.Debug("function efl_ui_popup_timeout_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Popup)wrapper).SetTimeout(time);
+                    ((Popup)ws.Target).SetTimeout(time);
                 }
                 catch (Exception e)
                 {
@@ -1368,13 +1333,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Eina.Size2D.NativeStruct popup_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_popup_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).GetPopupSize();
+                    _ret_var = ((Popup)ws.Target).GetPopupSize();
                 }
                 catch (Exception e)
                 {
@@ -1404,14 +1369,14 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void popup_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct size)
         {
             Eina.Log.Debug("function efl_ui_popup_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_size = size;
                             
                 try
                 {
-                    ((Popup)wrapper).SetPopupSize(_in_size);
+                    ((Popup)ws.Target).SetPopupSize(_in_size);
                 }
                 catch (Exception e)
                 {
@@ -1440,13 +1405,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).GetContent();
+                    _ret_var = ((Popup)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -1476,13 +1441,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).SetContent(content);
+                    _ret_var = ((Popup)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -1512,13 +1477,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).UnsetContent();
+                    _ret_var = ((Popup)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -1548,13 +1513,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Ui.Focus.IManager focus_manager_create(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_manager_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).FocusManagerCreate(root);
+                    _ret_var = ((Popup)ws.Target).FocusManagerCreate(root);
                 }
                 catch (Exception e)
                 {
@@ -1584,13 +1549,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static bool enable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_enable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).GetEnable();
+                    _ret_var = ((Popup)ws.Target).GetEnable();
                 }
                 catch (Exception e)
                 {
@@ -1620,13 +1585,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void enable_set(System.IntPtr obj, System.IntPtr pd, bool v)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_enable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Popup)wrapper).SetEnable(v);
+                    ((Popup)ws.Target).SetEnable(v);
                 }
                 catch (Exception e)
                 {
@@ -1655,13 +1620,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void behaviour_get(System.IntPtr obj, System.IntPtr pd, out bool enable_on_visible, out bool cycle)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_behaviour_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         enable_on_visible = default(bool);        cycle = default(bool);                            
                 try
                 {
-                    ((Popup)wrapper).GetBehaviour(out enable_on_visible, out cycle);
+                    ((Popup)ws.Target).GetBehaviour(out enable_on_visible, out cycle);
                 }
                 catch (Exception e)
                 {
@@ -1690,13 +1655,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void behaviour_set(System.IntPtr obj, System.IntPtr pd, bool enable_on_visible, bool cycle)
         {
             Eina.Log.Debug("function efl_ui_focus_layer_behaviour_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Popup)wrapper).SetBehaviour(enable_on_visible, cycle);
+                    ((Popup)ws.Target).SetBehaviour(enable_on_visible, cycle);
                 }
                 catch (Exception e)
                 {
@@ -1725,13 +1690,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).GetManagerFocus();
+                    _ret_var = ((Popup)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -1761,13 +1726,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Popup)wrapper).SetManagerFocus(focus);
+                    ((Popup)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -1796,13 +1761,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).GetRedirect();
+                    _ret_var = ((Popup)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -1832,13 +1797,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Popup)wrapper).SetRedirect(redirect);
+                    ((Popup)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -1867,13 +1832,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).GetBorderElements();
+                    _ret_var = ((Popup)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -1903,14 +1868,14 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((Popup)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -1940,13 +1905,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).GetRoot();
+                    _ret_var = ((Popup)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -1976,13 +1941,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).SetRoot(root);
+                    _ret_var = ((Popup)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -2012,13 +1977,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).Move(direction);
+                    _ret_var = ((Popup)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -2048,13 +2013,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((Popup)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -2084,13 +2049,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).RequestSubchild(root);
+                    _ret_var = ((Popup)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -2120,13 +2085,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).Fetch(child);
+                    _ret_var = ((Popup)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -2156,13 +2121,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((Popup)wrapper).LogicalEnd();
+                    _ret_var = ((Popup)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -2192,13 +2157,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Popup)wrapper).ResetHistory();
+                    ((Popup)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -2227,13 +2192,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Popup)wrapper).PopHistoryStack();
+                    ((Popup)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -2262,13 +2227,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Popup)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((Popup)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -2297,13 +2262,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Popup)wrapper).FreezeDirtyLogic();
+                    ((Popup)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -2332,13 +2297,13 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Popup)wrapper).DirtyLogicUnfreeze();
+                    ((Popup)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -2356,7 +2321,7 @@ public class Popup : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IWid
 
         private static efl_ui_focus_manager_dirty_logic_unfreeze_delegate efl_ui_focus_manager_dirty_logic_unfreeze_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 06550d1..5c94bd7 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI Popup internal part backwall class</summary>
 [Efl.Ui.PopupPartBackwall.NativeMethods]
-public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
+public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.IFile
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected PopupPartBackwall(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="PopupPartBackwall"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Determine whether backwall is set to repeat events.</summary>
     /// <returns>Whether <c>obj</c> is to repeat events (<c>true</c>) or not (<c>false</c>).</returns>
     virtual public bool GetRepeatEvents() {
@@ -183,39 +156,39 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Determine whether backwall is set to repeat events.</summary>
-/// <value>Whether <c>obj</c> is to repeat events (<c>true</c>) or not (<c>false</c>).</value>
+    /// <value>Whether <c>obj</c> is to repeat events (<c>true</c>) or not (<c>false</c>).</value>
     public bool RepeatEvents {
         get { return GetRepeatEvents(); }
         set { SetRepeatEvents(value); }
     }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
@@ -355,7 +328,7 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
             return Efl.Ui.PopupPartBackwall.efl_ui_popup_part_backwall_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_popup_part_backwall_repeat_events_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -368,13 +341,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static bool repeat_events_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_popup_part_backwall_repeat_events_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((PopupPartBackwall)wrapper).GetRepeatEvents();
+                    _ret_var = ((PopupPartBackwall)ws.Target).GetRepeatEvents();
                 }
                 catch (Exception e)
                 {
@@ -404,13 +377,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static void repeat_events_set(System.IntPtr obj, System.IntPtr pd, bool repeat)
         {
             Eina.Log.Debug("function efl_ui_popup_part_backwall_repeat_events_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((PopupPartBackwall)wrapper).SetRepeatEvents(repeat);
+                    ((PopupPartBackwall)ws.Target).SetRepeatEvents(repeat);
                 }
                 catch (Exception e)
                 {
@@ -439,13 +412,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((PopupPartBackwall)wrapper).GetMmap();
+                    _ret_var = ((PopupPartBackwall)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -475,13 +448,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((PopupPartBackwall)wrapper).SetMmap(f);
+                    _ret_var = ((PopupPartBackwall)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -511,13 +484,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((PopupPartBackwall)wrapper).GetFile();
+                    _ret_var = ((PopupPartBackwall)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -547,13 +520,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((PopupPartBackwall)wrapper).SetFile(file);
+                    _ret_var = ((PopupPartBackwall)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -583,13 +556,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((PopupPartBackwall)wrapper).GetKey();
+                    _ret_var = ((PopupPartBackwall)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -619,13 +592,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((PopupPartBackwall)wrapper).SetKey(key);
+                    ((PopupPartBackwall)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -654,13 +627,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((PopupPartBackwall)wrapper).GetLoaded();
+                    _ret_var = ((PopupPartBackwall)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -690,13 +663,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((PopupPartBackwall)wrapper).Load();
+                    _ret_var = ((PopupPartBackwall)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -726,13 +699,13 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((PopupPartBackwall)wrapper).Unload();
+                    ((PopupPartBackwall)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -750,7 +723,7 @@ public class PopupPartBackwall : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IFile
 
         private static efl_file_unload_delegate efl_file_unload_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 2ef1482..7e371cd 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary progressbar class</summary>
 [Efl.Ui.Progressbar.NativeMethods]
-public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.IText,Efl.ITextMarkup,Efl.Access.IValue,Efl.Ui.IDirection,Efl.Ui.IFormat,Efl.Ui.IRangeDisplay
+public class Progressbar : Efl.Ui.LayoutBase, Efl.IContent, Efl.IText, Efl.ITextMarkup, Efl.Access.IValue, Efl.Ui.IFormat, Efl.Ui.ILayoutOrientable, Efl.Ui.IRangeDisplay
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Progressbar(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Progressbar"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when progressbar changed</summary>
     public event EventHandler ChangedEvt
     {
@@ -95,10 +68,9 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -149,13 +121,12 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -198,7 +169,7 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
     /// <summary>Control whether a given progress bar widget is at &quot;pulsing mode&quot; or not.
-    /// By default progress bars display values from low to high boundaries. There are situations however in which the progress of a given task is unknown. In these cases, you can set a progress bar widget to a &quot;pulsing state&quot; to give the user an idea that some computation is being done without showing the precise progress rate. In the default theme, it will animate the bar with content, switching constantly between filling it and back to non-filled in a loop. To start and stop this pulsing animation you need to explicitly call efl_ui_progressbar_pulse_set().</summary>
+    /// By default progress bars display values from low to high boundaries. There are situations however in which the progress of a given task is unknown. In these cases, you can set a progress bar widget to a &quot;pulsing state&quot; to give the user an idea that some computation is being done without showing the precise progress rate. In the default theme, it will animate the bar with content, switching constantly between filling it and back to non-filled in a loop. To start and stop this pulsing animation you need to explicitly call <see cref="Efl.Ui.Progressbar.SetPulse"/>.</summary>
     /// <returns><c>true</c> to put <c>obj</c> in pulsing mode, <c>false</c> to put it back to its default one</returns>
     virtual public bool GetPulseMode() {
          var _ret_var = Efl.Ui.Progressbar.NativeMethods.efl_ui_progressbar_pulse_mode_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
@@ -206,13 +177,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         return _ret_var;
  }
     /// <summary>Control whether a given progress bar widget is at &quot;pulsing mode&quot; or not.
-    /// By default progress bars display values from low to high boundaries. There are situations however in which the progress of a given task is unknown. In these cases, you can set a progress bar widget to a &quot;pulsing state&quot; to give the user an idea that some computation is being done without showing the precise progress rate. In the default theme, it will animate the bar with content, switching constantly between filling it and back to non-filled in a loop. To start and stop this pulsing animation you need to explicitly call efl_ui_progressbar_pulse_set().</summary>
+    /// By default progress bars display values from low to high boundaries. There are situations however in which the progress of a given task is unknown. In these cases, you can set a progress bar widget to a &quot;pulsing state&quot; to give the user an idea that some computation is being done without showing the precise progress rate. In the default theme, it will animate the bar with content, switching constantly between filling it and back to non-filled in a loop. To start and stop this pulsing animation you need to explicitly call <see cref="Efl.Ui.Progressbar.SetPulse"/>.</summary>
     /// <param name="pulse"><c>true</c> to put <c>obj</c> in pulsing mode, <c>false</c> to put it back to its default one</param>
     virtual public void SetPulseMode(bool pulse) {
                                  Efl.Ui.Progressbar.NativeMethods.efl_ui_progressbar_pulse_mode_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pulse);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Get the pulsing state on a given progressbar widget.</summary>
+    /// <summary>Get the pulsing state on a given progressbar widget. See <see cref="Efl.Ui.Progressbar.PulseMode"/>.</summary>
     /// <returns><c>true</c>, to start the pulsing animation, <c>false</c> to stop it</returns>
     virtual public bool GetPulse() {
          var _ret_var = Efl.Ui.Progressbar.NativeMethods.efl_ui_progressbar_pulse_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
@@ -220,7 +191,7 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         return _ret_var;
  }
     /// <summary>Start/stop a given progress bar &quot;pulsing&quot; animation, if its under that mode
-    /// Note: This call won&apos;t do anything if <c>obj</c> is not under &quot;pulsing mode&quot;.</summary>
+    /// Note: This call won&apos;t do anything if <c>obj</c> is not under &quot;pulsing mode&quot;. See <see cref="Efl.Ui.Progressbar.PulseMode"/>.</summary>
     /// <param name="state"><c>true</c>, to start the pulsing animation, <c>false</c> to stop it</param>
     virtual public void SetPulse(bool state) {
                                  Efl.Ui.Progressbar.NativeMethods.efl_ui_progressbar_pulse_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),state);
@@ -316,25 +287,6 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Control the direction of a given widget.
-    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-    /// 
-    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-    /// <returns>Direction of the widget.</returns>
-    virtual public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
-        Eina.Error.RaiseIfUnhandledException();
-        return _ret_var;
- }
-    /// <summary>Control the direction of a given widget.
-    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-    /// 
-    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-    /// <param name="dir">Direction of the widget.</param>
-    virtual public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
-        Eina.Error.RaiseIfUnhandledException();
-                         }
     /// <summary>Set the format function pointer to format the string.</summary>
     /// <param name="func">The format function callback</param>
     virtual public void SetFormatCb(Efl.Ui.FormatFuncCb func) {
@@ -361,6 +313,25 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
                                  Efl.Ui.IFormatConcrete.NativeMethods.efl_ui_format_string_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),units);
         Eina.Error.RaiseIfUnhandledException();
                          }
+    /// <summary>Control the direction of a given widget.
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <returns>Direction of the widget.</returns>
+    virtual public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Control the direction of a given widget.
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <param name="dir">Direction of the widget.</param>
+    virtual public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>Control the range value (in percentage) on a given range widget
     /// Use this call to set range levels.
     /// 
@@ -403,65 +374,65 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Control whether a given progress bar widget is at &quot;pulsing mode&quot; or not.
-/// By default progress bars display values from low to high boundaries. There are situations however in which the progress of a given task is unknown. In these cases, you can set a progress bar widget to a &quot;pulsing state&quot; to give the user an idea that some computation is being done without showing the precise progress rate. In the default theme, it will animate the bar with content, switching constantly between filling it and back to non-filled in a loop. To start and stop this pulsing animation you need to explicitly call efl_ui_progressbar_pulse_set().</summary>
-/// <value><c>true</c> to put <c>obj</c> in pulsing mode, <c>false</c> to put it back to its default one</value>
+    /// By default progress bars display values from low to high boundaries. There are situations however in which the progress of a given task is unknown. In these cases, you can set a progress bar widget to a &quot;pulsing state&quot; to give the user an idea that some computation is being done without showing the precise progress rate. In the default theme, it will animate the bar with content, switching constantly between filling it and back to non-filled in a loop. To start and stop this pulsing animation you need to explicitly call <see cref="Efl.Ui.Progressbar.SetPulse"/>.</summary>
+    /// <value><c>true</c> to put <c>obj</c> in pulsing mode, <c>false</c> to put it back to its default one</value>
     public bool PulseMode {
         get { return GetPulseMode(); }
         set { SetPulseMode(value); }
     }
-    /// <summary>Get the pulsing state on a given progressbar widget.</summary>
-/// <value><c>true</c>, to start the pulsing animation, <c>false</c> to stop it</value>
+    /// <summary>Get the pulsing state on a given progressbar widget. See <see cref="Efl.Ui.Progressbar.PulseMode"/>.</summary>
+    /// <value><c>true</c>, to start the pulsing animation, <c>false</c> to stop it</value>
     public bool Pulse {
         get { return GetPulse(); }
         set { SetPulse(value); }
     }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>Markup property</summary>
-/// <value>The markup-text representation set to this text.</value>
+    /// <value>The markup-text representation set to this text.</value>
     public System.String Markup {
         get { return GetMarkup(); }
         set { SetMarkup(value); }
     }
     /// <summary>Gets an minimal incrementation value</summary>
-/// <value>Minimal incrementation value</value>
+    /// <value>Minimal incrementation value</value>
     public double Increment {
         get { return GetIncrement(); }
     }
-    /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
-    }
     /// <summary>Set the format function pointer to format the string.</summary>
-/// <value>The format function callback</value>
+    /// <value>The format function callback</value>
     public Efl.Ui.FormatFuncCb FormatCb {
         set { SetFormatCb(value); }
     }
     /// <summary>Control the format string for a given units label
-/// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
-/// 
-/// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
-/// <value>The format string for <c>obj</c>&apos;s units label.</value>
+    /// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
+    /// 
+    /// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
+    /// <value>The format string for <c>obj</c>&apos;s units label.</value>
     public System.String FormatString {
         get { return GetFormatString(); }
         set { SetFormatString(value); }
     }
+    /// <summary>Control the direction of a given widget.
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
+    }
     /// <summary>Control the range value (in percentage) on a given range widget
-/// Use this call to set range levels.
-/// 
-/// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
-/// <value>The range value (must be between $0.0 and 1.0)</value>
+    /// Use this call to set range levels.
+    /// 
+    /// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
+    /// <value>The range value (must be between $0.0 and 1.0)</value>
     public double RangeValue {
         get { return GetRangeValue(); }
         set { SetRangeValue(value); }
@@ -632,26 +603,6 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_access_value_increment_get"), func = Marshal.GetFunctionPointerForDelegate(efl_access_value_increment_get_static_delegate) });
             }
 
-            if (efl_ui_direction_get_static_delegate == null)
-            {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
-            }
-
-            if (efl_ui_direction_set_static_delegate == null)
-            {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
-            }
-
             if (efl_ui_format_cb_set_static_delegate == null)
             {
                 efl_ui_format_cb_set_static_delegate = new efl_ui_format_cb_set_delegate(format_cb_set);
@@ -682,6 +633,26 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_format_string_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_format_string_set_static_delegate) });
             }
 
+            if (efl_ui_layout_orientation_get_static_delegate == null)
+            {
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
+            }
+
+            if (efl_ui_layout_orientation_set_static_delegate == null)
+            {
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
+            }
+
             if (efl_ui_range_value_get_static_delegate == null)
             {
                 efl_ui_range_value_get_static_delegate = new efl_ui_range_value_get_delegate(range_value_get);
@@ -732,7 +703,7 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
             return Efl.Ui.Progressbar.efl_ui_progressbar_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_progressbar_pulse_mode_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -745,13 +716,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static bool pulse_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_progressbar_pulse_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).GetPulseMode();
+                    _ret_var = ((Progressbar)ws.Target).GetPulseMode();
                 }
                 catch (Exception e)
                 {
@@ -781,13 +752,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static void pulse_mode_set(System.IntPtr obj, System.IntPtr pd, bool pulse)
         {
             Eina.Log.Debug("function efl_ui_progressbar_pulse_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Progressbar)wrapper).SetPulseMode(pulse);
+                    ((Progressbar)ws.Target).SetPulseMode(pulse);
                 }
                 catch (Exception e)
                 {
@@ -816,13 +787,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static bool pulse_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_progressbar_pulse_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).GetPulse();
+                    _ret_var = ((Progressbar)ws.Target).GetPulse();
                 }
                 catch (Exception e)
                 {
@@ -852,13 +823,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static void pulse_set(System.IntPtr obj, System.IntPtr pd, bool state)
         {
             Eina.Log.Debug("function efl_ui_progressbar_pulse_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Progressbar)wrapper).SetPulse(state);
+                    ((Progressbar)ws.Target).SetPulse(state);
                 }
                 catch (Exception e)
                 {
@@ -887,13 +858,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).GetContent();
+                    _ret_var = ((Progressbar)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -923,13 +894,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).SetContent(content);
+                    _ret_var = ((Progressbar)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -959,13 +930,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).UnsetContent();
+                    _ret_var = ((Progressbar)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -995,13 +966,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).GetText();
+                    _ret_var = ((Progressbar)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -1031,13 +1002,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Progressbar)wrapper).SetText(text);
+                    ((Progressbar)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -1066,13 +1037,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_markup_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).GetMarkup();
+                    _ret_var = ((Progressbar)ws.Target).GetMarkup();
                 }
                 catch (Exception e)
                 {
@@ -1102,13 +1073,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
         {
             Eina.Log.Debug("function efl_text_markup_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Progressbar)wrapper).SetMarkup(markup);
+                    ((Progressbar)ws.Target).SetMarkup(markup);
                 }
                 catch (Exception e)
                 {
@@ -1137,14 +1108,14 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static void value_and_text_get(System.IntPtr obj, System.IntPtr pd, out double value, out System.String text)
         {
             Eina.Log.Debug("function efl_access_value_and_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         value = default(double);        System.String _out_text = default(System.String);
                             
                 try
                 {
-                    ((Progressbar)wrapper).GetValueAndText(out value, out _out_text);
+                    ((Progressbar)ws.Target).GetValueAndText(out value, out _out_text);
                 }
                 catch (Exception e)
                 {
@@ -1174,13 +1145,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static bool value_and_text_set(System.IntPtr obj, System.IntPtr pd, double value, System.String text)
         {
             Eina.Log.Debug("function efl_access_value_and_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).SetValueAndText(value, text);
+                    _ret_var = ((Progressbar)ws.Target).SetValueAndText(value, text);
                 }
                 catch (Exception e)
                 {
@@ -1210,14 +1181,14 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static void range_get(System.IntPtr obj, System.IntPtr pd, out double lower_limit, out double upper_limit, out System.String description)
         {
             Eina.Log.Debug("function efl_access_value_range_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 lower_limit = default(double);        upper_limit = default(double);        System.String _out_description = default(System.String);
                                     
                 try
                 {
-                    ((Progressbar)wrapper).GetRange(out lower_limit, out upper_limit, out _out_description);
+                    ((Progressbar)ws.Target).GetRange(out lower_limit, out upper_limit, out _out_description);
                 }
                 catch (Exception e)
                 {
@@ -1247,13 +1218,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static double increment_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_value_increment_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).GetIncrement();
+                    _ret_var = ((Progressbar)ws.Target).GetIncrement();
                 }
                 catch (Exception e)
                 {
@@ -1273,23 +1244,24 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static efl_access_value_increment_get_delegate efl_access_value_increment_get_static_delegate;
 
         
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate void efl_ui_format_cb_set_delegate(System.IntPtr obj, System.IntPtr pd,  IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb);
 
         
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
+        public delegate void efl_ui_format_cb_set_api_delegate(System.IntPtr obj,  IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_format_cb_set_api_delegate> efl_ui_format_cb_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_format_cb_set_api_delegate>(Module, "efl_ui_format_cb_set");
 
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
+        private static void format_cb_set(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb)
         {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_format_cb_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
+                            Efl.Ui.FormatFuncCbWrapper func_wrapper = new Efl.Ui.FormatFuncCbWrapper(func, func_data, func_free_cb);
+            
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).GetDirection();
+                    ((Progressbar)ws.Target).SetFormatCb(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -1297,35 +1269,34 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-        return _ret_var;
-
+                        
             }
             else
             {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                efl_ui_format_cb_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), func_data, func, func_free_cb);
             }
         }
 
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
+        private static efl_ui_format_cb_set_delegate efl_ui_format_cb_set_static_delegate;
 
-        
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_ui_format_string_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
-        
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_ui_format_string_get_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_format_string_get_api_delegate> efl_ui_format_string_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_format_string_get_api_delegate>(Module, "efl_ui_format_string_get");
 
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static System.String format_string_get(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_format_string_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-                                    
+            System.String _ret_var = default(System.String);
                 try
                 {
-                    ((Progressbar)wrapper).SetDirection(dir);
+                    _ret_var = ((Progressbar)ws.Target).GetFormatString();
                 }
                 catch (Exception e)
                 {
@@ -1333,35 +1304,35 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-                        
+        return _ret_var;
+
             }
             else
             {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+                return efl_ui_format_string_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
+        private static efl_ui_format_string_get_delegate efl_ui_format_string_get_static_delegate;
 
         
-        private delegate void efl_ui_format_cb_set_delegate(System.IntPtr obj, System.IntPtr pd,  IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb);
+        private delegate void efl_ui_format_string_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String units);
 
         
-        public delegate void efl_ui_format_cb_set_api_delegate(System.IntPtr obj,  IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb);
+        public delegate void efl_ui_format_string_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String units);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_format_cb_set_api_delegate> efl_ui_format_cb_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_format_cb_set_api_delegate>(Module, "efl_ui_format_cb_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_format_string_set_api_delegate> efl_ui_format_string_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_format_string_set_api_delegate>(Module, "efl_ui_format_string_set");
 
-        private static void format_cb_set(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb)
+        private static void format_string_set(System.IntPtr obj, System.IntPtr pd, System.String units)
         {
-            Eina.Log.Debug("function efl_ui_format_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_format_string_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-                            Efl.Ui.FormatFuncCbWrapper func_wrapper = new Efl.Ui.FormatFuncCbWrapper(func, func_data, func_free_cb);
-            
+                                    
                 try
                 {
-                    ((Progressbar)wrapper).SetFormatCb(func_wrapper.ManagedCb);
+                    ((Progressbar)ws.Target).SetFormatString(units);
                 }
                 catch (Exception e)
                 {
@@ -1373,30 +1344,30 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
             }
             else
             {
-                efl_ui_format_cb_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), func_data, func, func_free_cb);
+                efl_ui_format_string_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), units);
             }
         }
 
-        private static efl_ui_format_cb_set_delegate efl_ui_format_cb_set_static_delegate;
+        private static efl_ui_format_string_set_delegate efl_ui_format_string_set_static_delegate;
 
-        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
-        private delegate System.String efl_ui_format_string_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
-        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
-        public delegate System.String efl_ui_format_string_get_api_delegate(System.IntPtr obj);
+        
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_format_string_get_api_delegate> efl_ui_format_string_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_format_string_get_api_delegate>(Module, "efl_ui_format_string_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
 
-        private static System.String format_string_get(System.IntPtr obj, System.IntPtr pd)
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_format_string_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            System.String _ret_var = default(System.String);
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).GetFormatString();
+                    _ret_var = ((Progressbar)ws.Target).GetOrientation();
                 }
                 catch (Exception e)
                 {
@@ -1409,30 +1380,30 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
             }
             else
             {
-                return efl_ui_format_string_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_format_string_get_delegate efl_ui_format_string_get_static_delegate;
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
 
         
-        private delegate void efl_ui_format_string_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String units);
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         
-        public delegate void efl_ui_format_string_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String units);
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_format_string_set_api_delegate> efl_ui_format_string_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_format_string_set_api_delegate>(Module, "efl_ui_format_string_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
 
-        private static void format_string_set(System.IntPtr obj, System.IntPtr pd, System.String units)
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
-            Eina.Log.Debug("function efl_ui_format_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Progressbar)wrapper).SetFormatString(units);
+                    ((Progressbar)ws.Target).SetOrientation(dir);
                 }
                 catch (Exception e)
                 {
@@ -1444,11 +1415,11 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
             }
             else
             {
-                efl_ui_format_string_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), units);
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
             }
         }
 
-        private static efl_ui_format_string_set_delegate efl_ui_format_string_set_static_delegate;
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
 
         
         private delegate double efl_ui_range_value_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1461,13 +1432,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static double range_value_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_range_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Progressbar)wrapper).GetRangeValue();
+                    _ret_var = ((Progressbar)ws.Target).GetRangeValue();
                 }
                 catch (Exception e)
                 {
@@ -1497,13 +1468,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static void range_value_set(System.IntPtr obj, System.IntPtr pd, double val)
         {
             Eina.Log.Debug("function efl_ui_range_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Progressbar)wrapper).SetRangeValue(val);
+                    ((Progressbar)ws.Target).SetRangeValue(val);
                 }
                 catch (Exception e)
                 {
@@ -1532,13 +1503,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static void range_min_max_get(System.IntPtr obj, System.IntPtr pd, out double min, out double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         min = default(double);        max = default(double);                            
                 try
                 {
-                    ((Progressbar)wrapper).GetRangeMinMax(out min, out max);
+                    ((Progressbar)ws.Target).GetRangeMinMax(out min, out max);
                 }
                 catch (Exception e)
                 {
@@ -1567,13 +1538,13 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
         private static void range_min_max_set(System.IntPtr obj, System.IntPtr pd, double min, double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Progressbar)wrapper).SetRangeMinMax(min, max);
+                    ((Progressbar)ws.Target).SetRangeMinMax(min, max);
                 }
                 catch (Exception e)
                 {
@@ -1591,7 +1562,7 @@ public class Progressbar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.I
 
         private static efl_ui_range_min_max_set_delegate efl_ui_range_min_max_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 5dec7e5..d7c60a7 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary progressbar internal part class</summary>
 [Efl.Ui.ProgressbarLegacyPart.NativeMethods]
-public class ProgressbarLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
+public class ProgressbarLegacyPart : Efl.Ui.LayoutPartContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class ProgressbarLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ProgressbarLegacyPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ProgressbarLegacyPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class ProgressbarLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.ProgressbarLegacyPart.efl_ui_progressbar_legacy_part_class_get();
@@ -105,9 +78,9 @@ public class ProgressbarLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
             return Efl.Ui.ProgressbarLegacyPart.efl_ui_progressbar_legacy_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 1f51154..aa297a6 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary progressbar internal part class</summary>
 [Efl.Ui.ProgressbarPart.NativeMethods]
-public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.Ui.IRangeDisplay
+public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Ui.IRangeDisplay
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.Ui.IRangeD
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ProgressbarPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ProgressbarPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.Ui.IRangeD
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Control the range value (in percentage) on a given range widget
     /// Use this call to set range levels.
     /// 
@@ -124,10 +97,10 @@ public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.Ui.IRangeD
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Control the range value (in percentage) on a given range widget
-/// Use this call to set range levels.
-/// 
-/// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
-/// <value>The range value (must be between $0.0 and 1.0)</value>
+    /// Use this call to set range levels.
+    /// 
+    /// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
+    /// <value>The range value (must be between $0.0 and 1.0)</value>
     public double RangeValue {
         get { return GetRangeValue(); }
         set { SetRangeValue(value); }
@@ -198,7 +171,7 @@ public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.Ui.IRangeD
             return Efl.Ui.ProgressbarPart.efl_ui_progressbar_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_ui_range_value_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -211,13 +184,13 @@ public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.Ui.IRangeD
         private static double range_value_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_range_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((ProgressbarPart)wrapper).GetRangeValue();
+                    _ret_var = ((ProgressbarPart)ws.Target).GetRangeValue();
                 }
                 catch (Exception e)
                 {
@@ -247,13 +220,13 @@ public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.Ui.IRangeD
         private static void range_value_set(System.IntPtr obj, System.IntPtr pd, double val)
         {
             Eina.Log.Debug("function efl_ui_range_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ProgressbarPart)wrapper).SetRangeValue(val);
+                    ((ProgressbarPart)ws.Target).SetRangeValue(val);
                 }
                 catch (Exception e)
                 {
@@ -282,13 +255,13 @@ public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.Ui.IRangeD
         private static void range_min_max_get(System.IntPtr obj, System.IntPtr pd, out double min, out double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         min = default(double);        max = default(double);                            
                 try
                 {
-                    ((ProgressbarPart)wrapper).GetRangeMinMax(out min, out max);
+                    ((ProgressbarPart)ws.Target).GetRangeMinMax(out min, out max);
                 }
                 catch (Exception e)
                 {
@@ -317,13 +290,13 @@ public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.Ui.IRangeD
         private static void range_min_max_set(System.IntPtr obj, System.IntPtr pd, double min, double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ProgressbarPart)wrapper).SetRangeMinMax(min, max);
+                    ((ProgressbarPart)ws.Target).SetRangeMinMax(min, max);
                 }
                 catch (Exception e)
                 {
@@ -341,7 +314,7 @@ public class ProgressbarPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.Ui.IRangeD
 
         private static efl_ui_range_min_max_set_delegate efl_ui_range_min_max_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e340a6e..64a3e8e 100644 (file)
@@ -35,13 +35,13 @@ public class IPropertyBindPropertyBoundEvt_Args : EventArgs {
     public System.String arg { get; set; }
 }
 /// <summary>Efl UI Property_Bind interface. view object can have <see cref="Efl.IModel"/> to manage the data, the interface can help loading and tracking child data from the model property. see <see cref="Efl.IModel"/> see <see cref="Efl.Ui.IFactory"/></summary>
-sealed public class IPropertyBindConcrete : 
-
-IPropertyBind
+sealed public class IPropertyBindConcrete :
+    Efl.Eo.EoWrapper
+    , IPropertyBind
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -56,155 +56,12 @@ IPropertyBind
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_property_bind_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IPropertyBind"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IPropertyBindConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IPropertyBindConcrete()
+    private IPropertyBindConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Event dispatched when a property on the object has changed due to an user interaction on the object that a model could be interested in.</summary>
@@ -214,13 +71,12 @@ IPropertyBind
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IPropertyBindPropertiesChangedEvt_Args args = new Efl.Ui.IPropertyBindPropertiesChangedEvt_Args();
+                        Efl.Ui.IPropertyBindPropertiesChangedEvt_Args args = new Efl.Ui.IPropertyBindPropertiesChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -277,13 +133,12 @@ IPropertyBind
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IPropertyBindPropertyBoundEvt_Args args = new Efl.Ui.IPropertyBindPropertyBoundEvt_Args();
+                        Efl.Ui.IPropertyBindPropertyBoundEvt_Args args = new Efl.Ui.IPropertyBindPropertyBoundEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -376,7 +231,7 @@ IPropertyBind
             return Efl.Ui.IPropertyBindConcrete.efl_ui_property_bind_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Error efl_ui_property_bind_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String property);
@@ -389,13 +244,13 @@ IPropertyBind
         private static Eina.Error property_bind(System.IntPtr obj, System.IntPtr pd, System.String key, System.String property)
         {
             Eina.Log.Debug("function efl_ui_property_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((IPropertyBind)wrapper).PropertyBind(key, property);
+                    _ret_var = ((IPropertyBind)ws.Target).PropertyBind(key, property);
                 }
                 catch (Exception e)
                 {
@@ -414,7 +269,7 @@ IPropertyBind
 
         private static efl_ui_property_bind_delegate efl_ui_property_bind_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -439,12 +294,16 @@ public struct PropertyEvent
         this.Changed_properties = Changed_properties;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator PropertyEvent(IntPtr ptr)
     {
         var tmp = (PropertyEvent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(PropertyEvent.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct PropertyEvent.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -469,6 +328,8 @@ public struct PropertyEvent
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 02a9e57..7bde1e6 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary radio class</summary>
 [Efl.Ui.Radio.NativeMethods]
-public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
+public class Radio : Efl.Ui.Check
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Radio(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Radio"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Get the integer value that this radio object represents.
     /// This gets the value of the radio.</summary>
     /// <returns>The value to use if this radio object is selected.</returns>
@@ -118,6 +91,21 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
+    /// <summary>Change the value of the group.
+    /// This will enable the radio button in the group that is assosiated with this value. A value which is not assosiated with any radio button will result in every radio button beeing disabled.</summary>
+    /// <returns>The value of the radio button in the group which should be enabled.</returns>
+    virtual public int GetGroupValue() {
+         var _ret_var = Efl.Ui.Radio.NativeMethods.efl_ui_radio_group_value_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Change the value of the group.
+    /// This will enable the radio button in the group that is assosiated with this value. A value which is not assosiated with any radio button will result in every radio button beeing disabled.</summary>
+    /// <param name="value">The value of the radio button in the group which should be enabled.</param>
+    virtual public void SetGroupValue(int value) {
+                                 Efl.Ui.Radio.NativeMethods.efl_ui_radio_group_value_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),value);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>Add this radio to a group of other radio objects
     /// Radio objects work in groups. Each member should have a different integer value assigned. In order to have them work as a group, they need to know about each other. This adds the given radio object to the group of which the group object indicated is a member.</summary>
     /// <param name="group">Any radio object whose group the obj is to join.</param>
@@ -126,23 +114,30 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Get the integer value that this radio object represents.
-/// This gets the value of the radio.</summary>
-/// <value>The value to use if this radio object is selected.</value>
+    /// This gets the value of the radio.</summary>
+    /// <value>The value to use if this radio object is selected.</value>
     public int StateValue {
         get { return GetStateValue(); }
         set { SetStateValue(value); }
     }
     /// <summary>Set a convenience pointer to an integer, which changes when radio group value changes.
-/// This sets a pointer to an integer that in addition to the radio object state will also be modified directly. To stop setting the object pointed to, simply use NULL as the valuep argument. If valuep is not NULL then when called, the radio object state will also be modified to reflect the value of the integer valuep points to, just like calling elm_radio_value_set().</summary>
-/// <value>Pointer to the integer to modify</value>
+    /// This sets a pointer to an integer that in addition to the radio object state will also be modified directly. To stop setting the object pointed to, simply use NULL as the valuep argument. If valuep is not NULL then when called, the radio object state will also be modified to reflect the value of the integer valuep points to, just like calling elm_radio_value_set().</summary>
+    /// <value>Pointer to the integer to modify</value>
     public int ValuePointer {
         set { SetValuePointer(value); }
     }
     /// <summary>Get the selected radio object.</summary>
-/// <value>The selected radio object</value>
+    /// <value>The selected radio object</value>
     public Efl.Canvas.Object SelectedObject {
         get { return GetSelectedObject(); }
     }
+    /// <summary>Change the value of the group.
+    /// This will enable the radio button in the group that is assosiated with this value. A value which is not assosiated with any radio button will result in every radio button beeing disabled.</summary>
+    /// <value>The value of the radio button in the group which should be enabled.</value>
+    public int GroupValue {
+        get { return GetGroupValue(); }
+        set { SetGroupValue(value); }
+    }
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.Radio.efl_ui_radio_class_get();
@@ -199,6 +194,26 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_radio_selected_object_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_radio_selected_object_get_static_delegate) });
             }
 
+            if (efl_ui_radio_group_value_get_static_delegate == null)
+            {
+                efl_ui_radio_group_value_get_static_delegate = new efl_ui_radio_group_value_get_delegate(group_value_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetGroupValue") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_radio_group_value_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_radio_group_value_get_static_delegate) });
+            }
+
+            if (efl_ui_radio_group_value_set_static_delegate == null)
+            {
+                efl_ui_radio_group_value_set_static_delegate = new efl_ui_radio_group_value_set_delegate(group_value_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetGroupValue") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_radio_group_value_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_radio_group_value_set_static_delegate) });
+            }
+
             if (efl_ui_radio_group_add_static_delegate == null)
             {
                 efl_ui_radio_group_add_static_delegate = new efl_ui_radio_group_add_delegate(group_add);
@@ -219,7 +234,7 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
             return Efl.Ui.Radio.efl_ui_radio_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_ui_radio_state_value_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -232,13 +247,13 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
         private static int state_value_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_radio_state_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Radio)wrapper).GetStateValue();
+                    _ret_var = ((Radio)ws.Target).GetStateValue();
                 }
                 catch (Exception e)
                 {
@@ -268,13 +283,13 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
         private static void state_value_set(System.IntPtr obj, System.IntPtr pd, int value)
         {
             Eina.Log.Debug("function efl_ui_radio_state_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Radio)wrapper).SetStateValue(value);
+                    ((Radio)ws.Target).SetStateValue(value);
                 }
                 catch (Exception e)
                 {
@@ -303,14 +318,14 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
         private static void value_pointer_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr valuep)
         {
             Eina.Log.Debug("function efl_ui_radio_value_pointer_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_valuep = Eina.PrimitiveConversion.PointerToManaged<int>(valuep);
                             
                 try
                 {
-                    ((Radio)wrapper).SetValuePointer(_in_valuep);
+                    ((Radio)ws.Target).SetValuePointer(_in_valuep);
                 }
                 catch (Exception e)
                 {
@@ -339,13 +354,13 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
         private static Efl.Canvas.Object selected_object_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_radio_selected_object_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Radio)wrapper).GetSelectedObject();
+                    _ret_var = ((Radio)ws.Target).GetSelectedObject();
                 }
                 catch (Exception e)
                 {
@@ -365,6 +380,77 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
         private static efl_ui_radio_selected_object_get_delegate efl_ui_radio_selected_object_get_static_delegate;
 
         
+        private delegate int efl_ui_radio_group_value_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        
+        public delegate int efl_ui_radio_group_value_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_radio_group_value_get_api_delegate> efl_ui_radio_group_value_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_radio_group_value_get_api_delegate>(Module, "efl_ui_radio_group_value_get");
+
+        private static int group_value_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_ui_radio_group_value_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            int _ret_var = default(int);
+                try
+                {
+                    _ret_var = ((Radio)ws.Target).GetGroupValue();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_ui_radio_group_value_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_ui_radio_group_value_get_delegate efl_ui_radio_group_value_get_static_delegate;
+
+        
+        private delegate void efl_ui_radio_group_value_set_delegate(System.IntPtr obj, System.IntPtr pd,  int value);
+
+        
+        public delegate void efl_ui_radio_group_value_set_api_delegate(System.IntPtr obj,  int value);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_radio_group_value_set_api_delegate> efl_ui_radio_group_value_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_radio_group_value_set_api_delegate>(Module, "efl_ui_radio_group_value_set");
+
+        private static void group_value_set(System.IntPtr obj, System.IntPtr pd, int value)
+        {
+            Eina.Log.Debug("function efl_ui_radio_group_value_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Radio)ws.Target).SetGroupValue(value);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_radio_group_value_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), value);
+            }
+        }
+
+        private static efl_ui_radio_group_value_set_delegate efl_ui_radio_group_value_set_static_delegate;
+
+        
         private delegate void efl_ui_radio_group_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Radio group);
 
         
@@ -375,13 +461,13 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
         private static void group_add(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Radio group)
         {
             Eina.Log.Debug("function efl_ui_radio_group_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Radio)wrapper).AddGroup(group);
+                    ((Radio)ws.Target).AddGroup(group);
                 }
                 catch (Exception e)
                 {
@@ -399,7 +485,7 @@ public class Radio : Efl.Ui.Check, Efl.Eo.IWrapper
 
         private static efl_ui_radio_group_add_delegate efl_ui_radio_group_add_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 33c0010..8e963ae 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary radio internal part class</summary>
 [Efl.Ui.RadioLegacyPart.NativeMethods]
-public class RadioLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
+public class RadioLegacyPart : Efl.Ui.LayoutPartContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class RadioLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected RadioLegacyPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="RadioLegacyPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class RadioLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.RadioLegacyPart.efl_ui_radio_legacy_part_class_get();
@@ -105,9 +78,9 @@ public class RadioLegacyPart : Efl.Ui.LayoutPartContent, Efl.Eo.IWrapper
             return Efl.Ui.RadioLegacyPart.efl_ui_radio_legacy_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 16be452..0f19b9a 100644 (file)
@@ -43,23 +43,23 @@ void GetRangeMinMax(out double min, out double max);
 /// <param name="max">The maximum value.</param>
 void SetRangeMinMax(double min, double max);
                     /// <summary>Control the range value (in percentage) on a given range widget
-/// Use this call to set range levels.
-/// 
-/// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
-/// <value>The range value (must be between $0.0 and 1.0)</value>
+    /// Use this call to set range levels.
+    /// 
+    /// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
+    /// <value>The range value (must be between $0.0 and 1.0)</value>
     double RangeValue {
         get ;
         set ;
     }
 }
 /// <summary>Interface that contains properties regarding the displaying of a range.</summary>
-sealed public class IRangeDisplayConcrete : 
-
-IRangeDisplay
+sealed public class IRangeDisplayConcrete :
+    Efl.Eo.EoWrapper
+    , IRangeDisplay
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -74,86 +74,12 @@ IRangeDisplay
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_range_display_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IRangeDisplay"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IRangeDisplayConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IRangeDisplayConcrete()
+    private IRangeDisplayConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Control the range value (in percentage) on a given range widget
@@ -198,10 +124,10 @@ IRangeDisplay
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Control the range value (in percentage) on a given range widget
-/// Use this call to set range levels.
-/// 
-/// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
-/// <value>The range value (must be between $0.0 and 1.0)</value>
+    /// Use this call to set range levels.
+    /// 
+    /// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
+    /// <value>The range value (must be between $0.0 and 1.0)</value>
     public double RangeValue {
         get { return GetRangeValue(); }
         set { SetRangeValue(value); }
@@ -271,7 +197,7 @@ IRangeDisplay
             return Efl.Ui.IRangeDisplayConcrete.efl_ui_range_display_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_ui_range_value_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -284,13 +210,13 @@ IRangeDisplay
         private static double range_value_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_range_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IRangeDisplay)wrapper).GetRangeValue();
+                    _ret_var = ((IRangeDisplay)ws.Target).GetRangeValue();
                 }
                 catch (Exception e)
                 {
@@ -320,13 +246,13 @@ IRangeDisplay
         private static void range_value_set(System.IntPtr obj, System.IntPtr pd, double val)
         {
             Eina.Log.Debug("function efl_ui_range_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IRangeDisplay)wrapper).SetRangeValue(val);
+                    ((IRangeDisplay)ws.Target).SetRangeValue(val);
                 }
                 catch (Exception e)
                 {
@@ -355,13 +281,13 @@ IRangeDisplay
         private static void range_min_max_get(System.IntPtr obj, System.IntPtr pd, out double min, out double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         min = default(double);        max = default(double);                            
                 try
                 {
-                    ((IRangeDisplay)wrapper).GetRangeMinMax(out min, out max);
+                    ((IRangeDisplay)ws.Target).GetRangeMinMax(out min, out max);
                 }
                 catch (Exception e)
                 {
@@ -390,13 +316,13 @@ IRangeDisplay
         private static void range_min_max_set(System.IntPtr obj, System.IntPtr pd, double min, double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IRangeDisplay)wrapper).SetRangeMinMax(min, max);
+                    ((IRangeDisplay)ws.Target).SetRangeMinMax(min, max);
                 }
                 catch (Exception e)
                 {
@@ -414,7 +340,7 @@ IRangeDisplay
 
         private static efl_ui_range_min_max_set_delegate efl_ui_range_min_max_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 8c84381..21a6746 100644 (file)
@@ -33,12 +33,12 @@ double GetRangeStep();
 /// <param name="step">The step value.</param>
 void SetRangeStep(double step);
             /// <summary>Control the step used to increment or decrement values for given widget.
-/// This value will be incremented or decremented to the displayed value.
-/// 
-/// By default step value is equal to 1.
-/// 
-/// Warning: The step value should be bigger than 0.</summary>
-/// <value>The step value.</value>
+    /// This value will be incremented or decremented to the displayed value.
+    /// 
+    /// By default step value is equal to 1.
+    /// 
+    /// Warning: The step value should be bigger than 0.</summary>
+    /// <value>The step value.</value>
     double RangeStep {
         get ;
         set ;
@@ -46,13 +46,13 @@ void SetRangeStep(double step);
 }
 /// <summary>Interface that extends the normal displaying properties with usage properties.
 /// The properties defined here are used to manipulate the way a user interacts with a displayed range.</summary>
-sealed public class IRangeInteractiveConcrete : 
-
-IRangeInteractive
+sealed public class IRangeInteractiveConcrete :
+    Efl.Eo.EoWrapper
+    , IRangeInteractive
     , Efl.Ui.IRangeDisplay
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -67,86 +67,12 @@ IRangeInteractive
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_range_interactive_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IRangeInteractive"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IRangeInteractiveConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IRangeInteractiveConcrete()
+    private IRangeInteractiveConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Control the step used to increment or decrement values for given widget.
@@ -214,21 +140,21 @@ IRangeInteractive
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Control the step used to increment or decrement values for given widget.
-/// This value will be incremented or decremented to the displayed value.
-/// 
-/// By default step value is equal to 1.
-/// 
-/// Warning: The step value should be bigger than 0.</summary>
-/// <value>The step value.</value>
+    /// This value will be incremented or decremented to the displayed value.
+    /// 
+    /// By default step value is equal to 1.
+    /// 
+    /// Warning: The step value should be bigger than 0.</summary>
+    /// <value>The step value.</value>
     public double RangeStep {
         get { return GetRangeStep(); }
         set { SetRangeStep(value); }
     }
     /// <summary>Control the range value (in percentage) on a given range widget
-/// Use this call to set range levels.
-/// 
-/// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
-/// <value>The range value (must be between $0.0 and 1.0)</value>
+    /// Use this call to set range levels.
+    /// 
+    /// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
+    /// <value>The range value (must be between $0.0 and 1.0)</value>
     public double RangeValue {
         get { return GetRangeValue(); }
         set { SetRangeValue(value); }
@@ -318,7 +244,7 @@ IRangeInteractive
             return Efl.Ui.IRangeInteractiveConcrete.efl_ui_range_interactive_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate double efl_ui_range_step_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -331,13 +257,13 @@ IRangeInteractive
         private static double range_step_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_range_step_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IRangeInteractive)wrapper).GetRangeStep();
+                    _ret_var = ((IRangeInteractive)ws.Target).GetRangeStep();
                 }
                 catch (Exception e)
                 {
@@ -367,13 +293,13 @@ IRangeInteractive
         private static void range_step_set(System.IntPtr obj, System.IntPtr pd, double step)
         {
             Eina.Log.Debug("function efl_ui_range_step_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IRangeInteractive)wrapper).SetRangeStep(step);
+                    ((IRangeInteractive)ws.Target).SetRangeStep(step);
                 }
                 catch (Exception e)
                 {
@@ -402,13 +328,13 @@ IRangeInteractive
         private static double range_value_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_range_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IRangeInteractive)wrapper).GetRangeValue();
+                    _ret_var = ((IRangeInteractive)ws.Target).GetRangeValue();
                 }
                 catch (Exception e)
                 {
@@ -438,13 +364,13 @@ IRangeInteractive
         private static void range_value_set(System.IntPtr obj, System.IntPtr pd, double val)
         {
             Eina.Log.Debug("function efl_ui_range_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IRangeInteractive)wrapper).SetRangeValue(val);
+                    ((IRangeInteractive)ws.Target).SetRangeValue(val);
                 }
                 catch (Exception e)
                 {
@@ -473,13 +399,13 @@ IRangeInteractive
         private static void range_min_max_get(System.IntPtr obj, System.IntPtr pd, out double min, out double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         min = default(double);        max = default(double);                            
                 try
                 {
-                    ((IRangeInteractive)wrapper).GetRangeMinMax(out min, out max);
+                    ((IRangeInteractive)ws.Target).GetRangeMinMax(out min, out max);
                 }
                 catch (Exception e)
                 {
@@ -508,13 +434,13 @@ IRangeInteractive
         private static void range_min_max_set(System.IntPtr obj, System.IntPtr pd, double min, double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IRangeInteractive)wrapper).SetRangeMinMax(min, max);
+                    ((IRangeInteractive)ws.Target).SetRangeMinMax(min, max);
                 }
                 catch (Exception e)
                 {
@@ -532,7 +458,7 @@ IRangeInteractive
 
         private static efl_ui_range_min_max_set_delegate efl_ui_range_min_max_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 4d30bd1..b950bf5 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>The relative layout class.
 /// A relative layout calculates the size and position of all the children based on their relationship to each other.</summary>
 [Efl.Ui.RelativeLayout.NativeMethods]
-public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
+public class RelativeLayout : Efl.Ui.Widget, Efl.IContainer, Efl.IPack, Efl.IPackLayout
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected RelativeLayout(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="RelativeLayout"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,116 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
+    /// <summary>Sent after a new sub-object was added.
+    /// (Since EFL 1.22)</summary>
+    public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
-        var other = instance as Efl.Object;
-        if (other == null)
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_CONTAINER_EVENT_CONTENT_ADDED";
+                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+            }
+        }
+
+        remove
         {
-            return false;
+            lock (eventLock)
+            {
+                string key = "_EFL_CONTAINER_EVENT_CONTENT_ADDED";
+                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+            }
         }
-        return this.NativeHandle == other.NativeHandle;
     }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
+    ///<summary>Method to raise event ContentAddedEvt.</summary>
+    public void OnContentAddedEvt(Efl.IContainerContentAddedEvt_Args e)
     {
-        return this.NativeHandle.ToInt32();
-    }
+        var key = "_EFL_CONTAINER_EVENT_CONTENT_ADDED";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
 
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
+    /// <summary>Sent after a sub-object was removed, before unref.
+    /// (Since EFL 1.22)</summary>
+    public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
+        add
+        {
+            lock (eventLock)
+            {
+                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
+                {
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
+                    if (obj != null)
+                    {
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
+                        try
+                        {
+                            value?.Invoke(obj, args);
+                        }
+                        catch (Exception e)
+                        {
+                            Eina.Log.Error(e.ToString());
+                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                        }
+                    }
+                };
+
+                string key = "_EFL_CONTAINER_EVENT_CONTENT_REMOVED";
+                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+            }
+        }
+
+        remove
+        {
+            lock (eventLock)
+            {
+                string key = "_EFL_CONTAINER_EVENT_CONTENT_REMOVED";
+                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+            }
+        }
     }
+    ///<summary>Method to raise event ContentRemovedEvt.</summary>
+    public void OnContentRemovedEvt(Efl.IContainerContentRemovedEvt_Args e)
+    {
+        var key = "_EFL_CONTAINER_EVENT_CONTENT_REMOVED";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        if (desc == IntPtr.Zero)
+        {
+            Eina.Log.Error($"Failed to get native event {key}");
+            return;
+        }
 
+        IntPtr info = e.arg.NativeHandle;
+        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+    }
     /// <summary>Sent after the layout was updated.</summary>
     public event EventHandler LayoutUpdatedEvt
     {
@@ -96,10 +179,9 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -206,23 +288,55 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
                                                                                  Efl.Ui.RelativeLayout.NativeMethods.efl_ui_relative_layout_relation_bottom_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),child, target, relative);
         Eina.Error.RaiseIfUnhandledException();
                                                          }
-    /// <summary>Remove all relations of the child.</summary>
-    /// <param name="child">The child to unregister</param>
-    virtual public void Unregister(Efl.Object child) {
-                                 Efl.Ui.RelativeLayout.NativeMethods.efl_ui_relative_layout_unregister_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),child);
+    /// <summary>Begin iterating over this object&apos;s contents.
+    /// (Since EFL 1.22)</summary>
+    /// <returns>Iterator on object&apos;s content.</returns>
+    virtual public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
+         var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
+ }
+    /// <summary>Returns the number of contained sub-objects.
+    /// (Since EFL 1.22)</summary>
+    /// <returns>Number of sub-objects.</returns>
+    virtual public int ContentCount() {
+         var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
-                         }
-    /// <summary>Remove all relations from the registered children.</summary>
-    virtual public void UnregisterAll() {
-         Efl.Ui.RelativeLayout.NativeMethods.efl_ui_relative_layout_unregister_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        return _ret_var;
+ }
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
+    virtual public bool ClearPack() {
+         var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
-         }
-    /// <summary>Begin iterating over this object&apos;s children.</summary>
-    /// <returns>Iterator to object children.</returns>
-    virtual public Eina.Iterator<Efl.Object> ChildrenIterate() {
-         var _ret_var = Efl.Ui.RelativeLayout.NativeMethods.efl_ui_relative_layout_children_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        return _ret_var;
+ }
+    /// <summary>Removes all packed sub-objects without unreferencing them.
+    /// Use with caution.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
+    virtual public bool UnpackAll() {
+         var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
+    virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
+                                 var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
-        return new Eina.Iterator<Efl.Object>(_ret_var, true, false);
+                        return _ret_var;
+ }
+    /// <summary>Adds a sub-object to this container.
+    /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
+    /// 
+    /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
+    /// <param name="subobj">The object to pack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
+    virtual public bool Pack(Efl.Gfx.IEntity subobj) {
+                                 var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
  }
     /// <summary>Requests EFL to call the <see cref="Efl.IPackLayout.UpdateLayout"/> method on this object.
     /// This <see cref="Efl.IPackLayout.UpdateLayout"/> may be called asynchronously.</summary>
@@ -334,34 +448,64 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_relative_layout_relation_bottom_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_relative_layout_relation_bottom_set_static_delegate) });
             }
 
-            if (efl_ui_relative_layout_unregister_static_delegate == null)
+            if (efl_content_iterate_static_delegate == null)
             {
-                efl_ui_relative_layout_unregister_static_delegate = new efl_ui_relative_layout_unregister_delegate(unregister);
+                efl_content_iterate_static_delegate = new efl_content_iterate_delegate(content_iterate);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "Unregister") != null)
+            if (methods.FirstOrDefault(m => m.Name == "ContentIterate") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_relative_layout_unregister"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_relative_layout_unregister_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_iterate"), func = Marshal.GetFunctionPointerForDelegate(efl_content_iterate_static_delegate) });
             }
 
-            if (efl_ui_relative_layout_unregister_all_static_delegate == null)
+            if (efl_content_count_static_delegate == null)
             {
-                efl_ui_relative_layout_unregister_all_static_delegate = new efl_ui_relative_layout_unregister_all_delegate(unregister_all);
+                efl_content_count_static_delegate = new efl_content_count_delegate(content_count);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "UnregisterAll") != null)
+            if (methods.FirstOrDefault(m => m.Name == "ContentCount") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_relative_layout_unregister_all"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_relative_layout_unregister_all_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_count"), func = Marshal.GetFunctionPointerForDelegate(efl_content_count_static_delegate) });
             }
 
-            if (efl_ui_relative_layout_children_iterate_static_delegate == null)
+            if (efl_pack_clear_static_delegate == null)
             {
-                efl_ui_relative_layout_children_iterate_static_delegate = new efl_ui_relative_layout_children_iterate_delegate(children_iterate);
+                efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "ChildrenIterate") != null)
+            if (methods.FirstOrDefault(m => m.Name == "ClearPack") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_relative_layout_children_iterate"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_relative_layout_children_iterate_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_clear"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_clear_static_delegate) });
+            }
+
+            if (efl_pack_unpack_all_static_delegate == null)
+            {
+                efl_pack_unpack_all_static_delegate = new efl_pack_unpack_all_delegate(unpack_all);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "UnpackAll") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack_all"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_all_static_delegate) });
+            }
+
+            if (efl_pack_unpack_static_delegate == null)
+            {
+                efl_pack_unpack_static_delegate = new efl_pack_unpack_delegate(unpack);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Unpack") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_unpack"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_unpack_static_delegate) });
+            }
+
+            if (efl_pack_static_delegate == null)
+            {
+                efl_pack_static_delegate = new efl_pack_delegate(pack);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Pack") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_static_delegate) });
             }
 
             if (efl_pack_layout_request_static_delegate == null)
@@ -394,7 +538,7 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
             return Efl.Ui.RelativeLayout.efl_ui_relative_layout_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_relative_layout_relation_left_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object child, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] out Efl.Object target,  out double relative);
@@ -407,13 +551,13 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static void relation_left_get(System.IntPtr obj, System.IntPtr pd, Efl.Object child, out Efl.Object target, out double relative)
         {
             Eina.Log.Debug("function efl_ui_relative_layout_relation_left_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         target = default(Efl.Object);        relative = default(double);                                    
                 try
                 {
-                    ((RelativeLayout)wrapper).GetRelationLeft(child, out target, out relative);
+                    ((RelativeLayout)ws.Target).GetRelationLeft(child, out target, out relative);
                 }
                 catch (Exception e)
                 {
@@ -442,13 +586,13 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static void relation_left_set(System.IntPtr obj, System.IntPtr pd, Efl.Object child, Efl.Object target, double relative)
         {
             Eina.Log.Debug("function efl_ui_relative_layout_relation_left_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((RelativeLayout)wrapper).SetRelationLeft(child, target, relative);
+                    ((RelativeLayout)ws.Target).SetRelationLeft(child, target, relative);
                 }
                 catch (Exception e)
                 {
@@ -477,13 +621,13 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static void relation_right_get(System.IntPtr obj, System.IntPtr pd, Efl.Object child, out Efl.Object target, out double relative)
         {
             Eina.Log.Debug("function efl_ui_relative_layout_relation_right_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         target = default(Efl.Object);        relative = default(double);                                    
                 try
                 {
-                    ((RelativeLayout)wrapper).GetRelationRight(child, out target, out relative);
+                    ((RelativeLayout)ws.Target).GetRelationRight(child, out target, out relative);
                 }
                 catch (Exception e)
                 {
@@ -512,13 +656,13 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static void relation_right_set(System.IntPtr obj, System.IntPtr pd, Efl.Object child, Efl.Object target, double relative)
         {
             Eina.Log.Debug("function efl_ui_relative_layout_relation_right_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((RelativeLayout)wrapper).SetRelationRight(child, target, relative);
+                    ((RelativeLayout)ws.Target).SetRelationRight(child, target, relative);
                 }
                 catch (Exception e)
                 {
@@ -547,13 +691,13 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static void relation_top_get(System.IntPtr obj, System.IntPtr pd, Efl.Object child, out Efl.Object target, out double relative)
         {
             Eina.Log.Debug("function efl_ui_relative_layout_relation_top_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         target = default(Efl.Object);        relative = default(double);                                    
                 try
                 {
-                    ((RelativeLayout)wrapper).GetRelationTop(child, out target, out relative);
+                    ((RelativeLayout)ws.Target).GetRelationTop(child, out target, out relative);
                 }
                 catch (Exception e)
                 {
@@ -582,13 +726,13 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static void relation_top_set(System.IntPtr obj, System.IntPtr pd, Efl.Object child, Efl.Object target, double relative)
         {
             Eina.Log.Debug("function efl_ui_relative_layout_relation_top_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((RelativeLayout)wrapper).SetRelationTop(child, target, relative);
+                    ((RelativeLayout)ws.Target).SetRelationTop(child, target, relative);
                 }
                 catch (Exception e)
                 {
@@ -617,13 +761,13 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static void relation_bottom_get(System.IntPtr obj, System.IntPtr pd, Efl.Object child, out Efl.Object target, out double relative)
         {
             Eina.Log.Debug("function efl_ui_relative_layout_relation_bottom_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         target = default(Efl.Object);        relative = default(double);                                    
                 try
                 {
-                    ((RelativeLayout)wrapper).GetRelationBottom(child, out target, out relative);
+                    ((RelativeLayout)ws.Target).GetRelationBottom(child, out target, out relative);
                 }
                 catch (Exception e)
                 {
@@ -652,13 +796,13 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static void relation_bottom_set(System.IntPtr obj, System.IntPtr pd, Efl.Object child, Efl.Object target, double relative)
         {
             Eina.Log.Debug("function efl_ui_relative_layout_relation_bottom_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((RelativeLayout)wrapper).SetRelationBottom(child, target, relative);
+                    ((RelativeLayout)ws.Target).SetRelationBottom(child, target, relative);
                 }
                 catch (Exception e)
                 {
@@ -677,23 +821,23 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static efl_ui_relative_layout_relation_bottom_set_delegate efl_ui_relative_layout_relation_bottom_set_static_delegate;
 
         
-        private delegate void efl_ui_relative_layout_unregister_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object child);
+        private delegate System.IntPtr efl_content_iterate_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate void efl_ui_relative_layout_unregister_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Object child);
+        public delegate System.IntPtr efl_content_iterate_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_relative_layout_unregister_api_delegate> efl_ui_relative_layout_unregister_ptr = new Efl.Eo.FunctionWrapper<efl_ui_relative_layout_unregister_api_delegate>(Module, "efl_ui_relative_layout_unregister");
+        public static Efl.Eo.FunctionWrapper<efl_content_iterate_api_delegate> efl_content_iterate_ptr = new Efl.Eo.FunctionWrapper<efl_content_iterate_api_delegate>(Module, "efl_content_iterate");
 
-        private static void unregister(System.IntPtr obj, System.IntPtr pd, Efl.Object child)
+        private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_relative_layout_unregister was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_content_iterate was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-                                    
+            Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    ((RelativeLayout)wrapper).Unregister(child);
+                    _ret_var = ((RelativeLayout)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -701,34 +845,35 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-                        
+        _ret_var.Own = false; return _ret_var.Handle;
+
             }
             else
             {
-                efl_ui_relative_layout_unregister_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), child);
+                return efl_content_iterate_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_relative_layout_unregister_delegate efl_ui_relative_layout_unregister_static_delegate;
+        private static efl_content_iterate_delegate efl_content_iterate_static_delegate;
 
         
-        private delegate void efl_ui_relative_layout_unregister_all_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate int efl_content_count_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate void efl_ui_relative_layout_unregister_all_api_delegate(System.IntPtr obj);
+        public delegate int efl_content_count_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_relative_layout_unregister_all_api_delegate> efl_ui_relative_layout_unregister_all_ptr = new Efl.Eo.FunctionWrapper<efl_ui_relative_layout_unregister_all_api_delegate>(Module, "efl_ui_relative_layout_unregister_all");
+        public static Efl.Eo.FunctionWrapper<efl_content_count_api_delegate> efl_content_count_ptr = new Efl.Eo.FunctionWrapper<efl_content_count_api_delegate>(Module, "efl_content_count");
 
-        private static void unregister_all(System.IntPtr obj, System.IntPtr pd)
+        private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_relative_layout_unregister_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_content_count was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            
+            int _ret_var = default(int);
                 try
                 {
-                    ((RelativeLayout)wrapper).UnregisterAll();
+                    _ret_var = ((RelativeLayout)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -736,34 +881,35 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-        
+        return _ret_var;
+
             }
             else
             {
-                efl_ui_relative_layout_unregister_all_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_content_count_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_relative_layout_unregister_all_delegate efl_ui_relative_layout_unregister_all_static_delegate;
+        private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        
-        private delegate System.IntPtr efl_ui_relative_layout_children_iterate_delegate(System.IntPtr obj, System.IntPtr pd);
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
-        
-        public delegate System.IntPtr efl_ui_relative_layout_children_iterate_api_delegate(System.IntPtr obj);
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_clear_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_relative_layout_children_iterate_api_delegate> efl_ui_relative_layout_children_iterate_ptr = new Efl.Eo.FunctionWrapper<efl_ui_relative_layout_children_iterate_api_delegate>(Module, "efl_ui_relative_layout_children_iterate");
+        public static Efl.Eo.FunctionWrapper<efl_pack_clear_api_delegate> efl_pack_clear_ptr = new Efl.Eo.FunctionWrapper<efl_pack_clear_api_delegate>(Module, "efl_pack_clear");
 
-        private static System.IntPtr children_iterate(System.IntPtr obj, System.IntPtr pd)
+        private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_relative_layout_children_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_pack_clear was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Eina.Iterator<Efl.Object> _ret_var = default(Eina.Iterator<Efl.Object>);
+            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((RelativeLayout)wrapper).ChildrenIterate();
+                    _ret_var = ((RelativeLayout)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -771,16 +917,124 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-        _ret_var.Own = false; return _ret_var.Handle;
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_clear_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_pack_clear_delegate efl_pack_clear_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_unpack_all_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_unpack_all_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_unpack_all_api_delegate> efl_pack_unpack_all_ptr = new Efl.Eo.FunctionWrapper<efl_pack_unpack_all_api_delegate>(Module, "efl_pack_unpack_all");
+
+        private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_pack_unpack_all was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((RelativeLayout)ws.Target).UnpackAll();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_unpack_all_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_pack_unpack_all_delegate efl_pack_unpack_all_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_unpack_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_unpack_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_unpack_api_delegate> efl_pack_unpack_ptr = new Efl.Eo.FunctionWrapper<efl_pack_unpack_api_delegate>(Module, "efl_pack_unpack");
+
+        private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
+        {
+            Eina.Log.Debug("function efl_pack_unpack was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((RelativeLayout)ws.Target).Unpack(subobj);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_pack_unpack_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
+            }
+        }
+
+        private static efl_pack_unpack_delegate efl_pack_unpack_static_delegate;
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj);
+
+        public static Efl.Eo.FunctionWrapper<efl_pack_api_delegate> efl_pack_ptr = new Efl.Eo.FunctionWrapper<efl_pack_api_delegate>(Module, "efl_pack");
+
+        private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
+        {
+            Eina.Log.Debug("function efl_pack was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    bool _ret_var = default(bool);
+                try
+                {
+                    _ret_var = ((RelativeLayout)ws.Target).Pack(subobj);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
 
             }
             else
             {
-                return efl_ui_relative_layout_children_iterate_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_pack_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj);
             }
         }
 
-        private static efl_ui_relative_layout_children_iterate_delegate efl_ui_relative_layout_children_iterate_static_delegate;
+        private static efl_pack_delegate efl_pack_static_delegate;
 
         
         private delegate void efl_pack_layout_request_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -793,13 +1047,13 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static void layout_request(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_request was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((RelativeLayout)wrapper).LayoutRequest();
+                    ((RelativeLayout)ws.Target).LayoutRequest();
                 }
                 catch (Exception e)
                 {
@@ -828,13 +1082,13 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
         private static void layout_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((RelativeLayout)wrapper).UpdateLayout();
+                    ((RelativeLayout)ws.Target).UpdateLayout();
                 }
                 catch (Exception e)
                 {
@@ -852,7 +1106,7 @@ public class RelativeLayout : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IPackLayout
 
         private static efl_pack_layout_update_delegate efl_pack_layout_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e364cdc..889c07d 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>EFL UI Scroll Alert Popup class</summary>
 [Efl.Ui.ScrollAlertPopup.NativeMethods]
-public class ScrollAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper
+public class ScrollAlertPopup : Efl.Ui.AlertPopup
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class ScrollAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ScrollAlertPopup(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ScrollAlertPopup"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class ScrollAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Get the expandable max size of popup.
     /// If the given max_size is -1, then popup appears with its size. However, if the given max_size is bigger than 0 the popup size is up to the given max_size. If popup content&apos;s min size is bigger than the given max_size the scroller appears in the popup content area.</summary>
     /// <returns>A 2D max size in pixel units.</returns>
@@ -105,8 +78,8 @@ public class ScrollAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Get the expandable max size of popup.
-/// If the given max_size is -1, then popup appears with its size. However, if the given max_size is bigger than 0 the popup size is up to the given max_size. If popup content&apos;s min size is bigger than the given max_size the scroller appears in the popup content area.</summary>
-/// <value>A 2D max size in pixel units.</value>
+    /// If the given max_size is -1, then popup appears with its size. However, if the given max_size is bigger than 0 the popup size is up to the given max_size. If popup content&apos;s min size is bigger than the given max_size the scroller appears in the popup content area.</summary>
+    /// <value>A 2D max size in pixel units.</value>
     public Eina.Size2D Expandable {
         get { return GetExpandable(); }
         set { SetExpandable(value); }
@@ -157,7 +130,7 @@ public class ScrollAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper
             return Efl.Ui.ScrollAlertPopup.efl_ui_scroll_alert_popup_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Size2D.NativeStruct efl_ui_scroll_alert_popup_expandable_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -170,13 +143,13 @@ public class ScrollAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper
         private static Eina.Size2D.NativeStruct expandable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scroll_alert_popup_expandable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((ScrollAlertPopup)wrapper).GetExpandable();
+                    _ret_var = ((ScrollAlertPopup)ws.Target).GetExpandable();
                 }
                 catch (Exception e)
                 {
@@ -206,14 +179,14 @@ public class ScrollAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper
         private static void expandable_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct max_size)
         {
             Eina.Log.Debug("function efl_ui_scroll_alert_popup_expandable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_max_size = max_size;
                             
                 try
                 {
-                    ((ScrollAlertPopup)wrapper).SetExpandable(_in_max_size);
+                    ((ScrollAlertPopup)ws.Target).SetExpandable(_in_max_size);
                 }
                 catch (Exception e)
                 {
@@ -231,7 +204,7 @@ public class ScrollAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper
 
         private static efl_ui_scroll_alert_popup_expandable_set_delegate efl_ui_scroll_alert_popup_expandable_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3344db3..b4fc7f9 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI Scroll Alert Popup internal part class</summary>
 [Efl.Ui.ScrollAlertPopupPart.NativeMethods]
-public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IText
+public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.IContent, Efl.IText
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ScrollAlertPopupPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ScrollAlertPopupPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -90,13 +63,12 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -185,9 +157,9 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
@@ -268,7 +240,7 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
             return Efl.Ui.ScrollAlertPopupPart.efl_ui_scroll_alert_popup_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -281,13 +253,13 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ScrollAlertPopupPart)wrapper).GetContent();
+                    _ret_var = ((ScrollAlertPopupPart)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -317,13 +289,13 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ScrollAlertPopupPart)wrapper).SetContent(content);
+                    _ret_var = ((ScrollAlertPopupPart)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -353,13 +325,13 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((ScrollAlertPopupPart)wrapper).UnsetContent();
+                    _ret_var = ((ScrollAlertPopupPart)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -389,13 +361,13 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((ScrollAlertPopupPart)wrapper).GetText();
+                    _ret_var = ((ScrollAlertPopupPart)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -425,13 +397,13 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ScrollAlertPopupPart)wrapper).SetText(text);
+                    ((ScrollAlertPopupPart)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -449,7 +421,7 @@ public class ScrollAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.ICont
 
         private static efl_text_set_delegate efl_text_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 45eef52..37c1e3c 100644 (file)
@@ -13,7 +13,7 @@ namespace Scroll {
 
 /// <summary>Efl ui scroll manager class</summary>
 [Efl.Ui.Scroll.Manager.NativeMethods]
-public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollable,Efl.Ui.IScrollableInteractive,Efl.Ui.IScrollbar
+public class Manager : Efl.Object, Efl.Ui.II18n, Efl.Ui.IScrollable, Efl.Ui.IScrollableInteractive, Efl.Ui.IScrollbar
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -46,7 +46,7 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Manager(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Manager"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -57,33 +57,6 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when scroll operation starts</summary>
     public event EventHandler ScrollStartEvt
     {
@@ -91,10 +64,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -144,10 +116,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -197,10 +168,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -250,10 +220,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -303,10 +272,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -356,10 +324,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -409,10 +376,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -462,10 +428,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -515,10 +480,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -568,10 +532,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -621,10 +584,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -674,10 +636,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -727,10 +688,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -780,10 +740,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -833,10 +792,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -886,13 +844,12 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
+                        Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -948,13 +905,12 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
+                        Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1010,13 +966,12 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
+                        Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1072,10 +1027,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1125,10 +1079,9 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1178,13 +1131,12 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
+                        Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1240,13 +1192,12 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
+                        Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1551,71 +1502,71 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>This is the internal pan object managed by scroll manager.
-/// This property is protected as it is meant for scrollable object implementations only, to set and access the internal pan object. If pan is set to NULL, scrolling does not work.</summary>
-/// <value>Pan object</value>
+    /// This property is protected as it is meant for scrollable object implementations only, to set and access the internal pan object. If pan is set to NULL, scrolling does not work.</summary>
+    /// <value>Pan object</value>
     public Efl.Ui.Pan Pan {
         set { SetPan(value); }
     }
     /// <summary>Whether this object should be mirrored.
-/// If mirrored, an object is in RTL (right to left) mode instead of LTR (left to right).</summary>
-/// <value><c>true</c> for RTL, <c>false</c> for LTR (default).</value>
+    /// If mirrored, an object is in RTL (right to left) mode instead of LTR (left to right).</summary>
+    /// <value><c>true</c> for RTL, <c>false</c> for LTR (default).</value>
     public bool Mirrored {
         get { return GetMirrored(); }
         set { SetMirrored(value); }
     }
     /// <summary>Whether the property <see cref="Efl.Ui.II18n.Mirrored"/> should be set automatically.
-/// If enabled, the system or application configuration will be used to set the value of <see cref="Efl.Ui.II18n.Mirrored"/>.
-/// 
-/// This property may be implemented by high-level widgets (in Efl.Ui) but not by low-level widgets (in <see cref="Efl.Canvas.IScene"/>) as the configuration should affect only high-level widgets.</summary>
-/// <value>Whether the widget uses automatic mirroring</value>
+    /// If enabled, the system or application configuration will be used to set the value of <see cref="Efl.Ui.II18n.Mirrored"/>.
+    /// 
+    /// This property may be implemented by high-level widgets (in Efl.Ui) but not by low-level widgets (in <see cref="Efl.Canvas.IScene"/>) as the configuration should affect only high-level widgets.</summary>
+    /// <value>Whether the widget uses automatic mirroring</value>
     public bool MirroredAutomatic {
         get { return GetMirroredAutomatic(); }
         set { SetMirroredAutomatic(value); }
     }
     /// <summary>The (human) language for this object.</summary>
-/// <value>The current language.</value>
+    /// <value>The current language.</value>
     public System.String Language {
         get { return GetLanguage(); }
         set { SetLanguage(value); }
     }
     /// <summary>The content position</summary>
-/// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
+    /// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
     public Eina.Position2D ContentPos {
         get { return GetContentPos(); }
         set { SetContentPos(value); }
     }
     /// <summary>The content size</summary>
-/// <value>The content size in pixels.</value>
+    /// <value>The content size in pixels.</value>
     public Eina.Size2D ContentSize {
         get { return GetContentSize(); }
     }
     /// <summary>The viewport geometry</summary>
-/// <value>It is absolute geometry.</value>
+    /// <value>It is absolute geometry.</value>
     public Eina.Rect ViewportGeometry {
         get { return GetViewportGeometry(); }
     }
     /// <summary>Freeze property This function will freeze scrolling movement (by input of a user). Unlike efl_ui_scrollable_movement_block_set, this function freezes bidirectionally. If you want to freeze in only one direction, See <see cref="Efl.Ui.IScrollableInteractive.SetMovementBlock"/>.</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     public bool ScrollFreeze {
         get { return GetScrollFreeze(); }
         set { SetScrollFreeze(value); }
     }
     /// <summary>Hold property When hold turns on, it only scrolls by holding action.</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     public bool ScrollHold {
         get { return GetScrollHold(); }
         set { SetScrollHold(value); }
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
+    /// <value>Which axis (or axes) to block</value>
     public Efl.Ui.ScrollBlock MovementBlock {
         get { return GetMovementBlock(); }
         set { SetMovementBlock(value); }
     }
     /// <summary>Control the step size
-/// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
-/// <value>The step size in pixels</value>
+    /// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
+    /// <value>The step size in pixels</value>
     public Eina.Position2D StepSize {
         get { return GetStepSize(); }
         set { SetStepSize(value); }
@@ -1976,7 +1927,7 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
             return Efl.Ui.Scroll.Manager.efl_ui_scroll_manager_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_scroll_manager_pan_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Pan pan);
@@ -1989,13 +1940,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void pan_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Pan pan)
         {
             Eina.Log.Debug("function efl_ui_scroll_manager_pan_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Manager)wrapper).SetPan(pan);
+                    ((Manager)ws.Target).SetPan(pan);
                 }
                 catch (Exception e)
                 {
@@ -2024,13 +1975,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static bool mirrored_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_mirrored_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Manager)wrapper).GetMirrored();
+                    _ret_var = ((Manager)ws.Target).GetMirrored();
                 }
                 catch (Exception e)
                 {
@@ -2060,13 +2011,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void mirrored_set(System.IntPtr obj, System.IntPtr pd, bool rtl)
         {
             Eina.Log.Debug("function efl_ui_mirrored_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Manager)wrapper).SetMirrored(rtl);
+                    ((Manager)ws.Target).SetMirrored(rtl);
                 }
                 catch (Exception e)
                 {
@@ -2095,13 +2046,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static bool mirrored_automatic_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_mirrored_automatic_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Manager)wrapper).GetMirroredAutomatic();
+                    _ret_var = ((Manager)ws.Target).GetMirroredAutomatic();
                 }
                 catch (Exception e)
                 {
@@ -2131,13 +2082,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void mirrored_automatic_set(System.IntPtr obj, System.IntPtr pd, bool automatic)
         {
             Eina.Log.Debug("function efl_ui_mirrored_automatic_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Manager)wrapper).SetMirroredAutomatic(automatic);
+                    ((Manager)ws.Target).SetMirroredAutomatic(automatic);
                 }
                 catch (Exception e)
                 {
@@ -2166,13 +2117,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static System.String language_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_language_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Manager)wrapper).GetLanguage();
+                    _ret_var = ((Manager)ws.Target).GetLanguage();
                 }
                 catch (Exception e)
                 {
@@ -2202,13 +2153,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void language_set(System.IntPtr obj, System.IntPtr pd, System.String language)
         {
             Eina.Log.Debug("function efl_ui_language_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Manager)wrapper).SetLanguage(language);
+                    ((Manager)ws.Target).SetLanguage(language);
                 }
                 catch (Exception e)
                 {
@@ -2237,13 +2188,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static Eina.Position2D.NativeStruct content_pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Manager)wrapper).GetContentPos();
+                    _ret_var = ((Manager)ws.Target).GetContentPos();
                 }
                 catch (Exception e)
                 {
@@ -2273,14 +2224,14 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void content_pos_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((Manager)wrapper).SetContentPos(_in_pos);
+                    ((Manager)ws.Target).SetContentPos(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -2309,13 +2260,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static Eina.Size2D.NativeStruct content_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Manager)wrapper).GetContentSize();
+                    _ret_var = ((Manager)ws.Target).GetContentSize();
                 }
                 catch (Exception e)
                 {
@@ -2345,13 +2296,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static Eina.Rect.NativeStruct viewport_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_viewport_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Manager)wrapper).GetViewportGeometry();
+                    _ret_var = ((Manager)ws.Target).GetViewportGeometry();
                 }
                 catch (Exception e)
                 {
@@ -2381,13 +2332,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void bounce_enabled_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((Manager)wrapper).GetBounceEnabled(out horiz, out vert);
+                    ((Manager)ws.Target).GetBounceEnabled(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -2416,13 +2367,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void bounce_enabled_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Manager)wrapper).SetBounceEnabled(horiz, vert);
+                    ((Manager)ws.Target).SetBounceEnabled(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -2451,13 +2402,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static bool scroll_freeze_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Manager)wrapper).GetScrollFreeze();
+                    _ret_var = ((Manager)ws.Target).GetScrollFreeze();
                 }
                 catch (Exception e)
                 {
@@ -2487,13 +2438,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void scroll_freeze_set(System.IntPtr obj, System.IntPtr pd, bool freeze)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Manager)wrapper).SetScrollFreeze(freeze);
+                    ((Manager)ws.Target).SetScrollFreeze(freeze);
                 }
                 catch (Exception e)
                 {
@@ -2522,13 +2473,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static bool scroll_hold_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Manager)wrapper).GetScrollHold();
+                    _ret_var = ((Manager)ws.Target).GetScrollHold();
                 }
                 catch (Exception e)
                 {
@@ -2558,13 +2509,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void scroll_hold_set(System.IntPtr obj, System.IntPtr pd, bool hold)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Manager)wrapper).SetScrollHold(hold);
+                    ((Manager)ws.Target).SetScrollHold(hold);
                 }
                 catch (Exception e)
                 {
@@ -2593,13 +2544,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void looping_get(System.IntPtr obj, System.IntPtr pd, out bool loop_h, out bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         loop_h = default(bool);        loop_v = default(bool);                            
                 try
                 {
-                    ((Manager)wrapper).GetLooping(out loop_h, out loop_v);
+                    ((Manager)ws.Target).GetLooping(out loop_h, out loop_v);
                 }
                 catch (Exception e)
                 {
@@ -2628,13 +2579,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void looping_set(System.IntPtr obj, System.IntPtr pd, bool loop_h, bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Manager)wrapper).SetLooping(loop_h, loop_v);
+                    ((Manager)ws.Target).SetLooping(loop_h, loop_v);
                 }
                 catch (Exception e)
                 {
@@ -2663,13 +2614,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static Efl.Ui.ScrollBlock movement_block_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ScrollBlock _ret_var = default(Efl.Ui.ScrollBlock);
                 try
                 {
-                    _ret_var = ((Manager)wrapper).GetMovementBlock();
+                    _ret_var = ((Manager)ws.Target).GetMovementBlock();
                 }
                 catch (Exception e)
                 {
@@ -2699,13 +2650,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void movement_block_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollBlock block)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Manager)wrapper).SetMovementBlock(block);
+                    ((Manager)ws.Target).SetMovementBlock(block);
                 }
                 catch (Exception e)
                 {
@@ -2734,13 +2685,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void gravity_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Manager)wrapper).GetGravity(out x, out y);
+                    ((Manager)ws.Target).GetGravity(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -2769,13 +2720,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void gravity_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Manager)wrapper).SetGravity(x, y);
+                    ((Manager)ws.Target).SetGravity(x, y);
                 }
                 catch (Exception e)
                 {
@@ -2804,13 +2755,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void match_content_set(System.IntPtr obj, System.IntPtr pd, bool w, bool h)
         {
             Eina.Log.Debug("function efl_ui_scrollable_match_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Manager)wrapper).SetMatchContent(w, h);
+                    ((Manager)ws.Target).SetMatchContent(w, h);
                 }
                 catch (Exception e)
                 {
@@ -2839,13 +2790,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static Eina.Position2D.NativeStruct step_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Manager)wrapper).GetStepSize();
+                    _ret_var = ((Manager)ws.Target).GetStepSize();
                 }
                 catch (Exception e)
                 {
@@ -2875,14 +2826,14 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void step_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct step)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_step = step;
                             
                 try
                 {
-                    ((Manager)wrapper).SetStepSize(_in_step);
+                    ((Manager)ws.Target).SetStepSize(_in_step);
                 }
                 catch (Exception e)
                 {
@@ -2911,14 +2862,14 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void scroll(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool animation)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                     
                 try
                 {
-                    ((Manager)wrapper).Scroll(_in_rect, animation);
+                    ((Manager)ws.Target).Scroll(_in_rect, animation);
                 }
                 catch (Exception e)
                 {
@@ -2947,13 +2898,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void bar_mode_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.ScrollbarMode hbar, out Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         hbar = default(Efl.Ui.ScrollbarMode);        vbar = default(Efl.Ui.ScrollbarMode);                            
                 try
                 {
-                    ((Manager)wrapper).GetBarMode(out hbar, out vbar);
+                    ((Manager)ws.Target).GetBarMode(out hbar, out vbar);
                 }
                 catch (Exception e)
                 {
@@ -2982,13 +2933,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void bar_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollbarMode hbar, Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Manager)wrapper).SetBarMode(hbar, vbar);
+                    ((Manager)ws.Target).SetBarMode(hbar, vbar);
                 }
                 catch (Exception e)
                 {
@@ -3017,13 +2968,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void bar_size_get(System.IntPtr obj, System.IntPtr pd, out double width, out double height)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         width = default(double);        height = default(double);                            
                 try
                 {
-                    ((Manager)wrapper).GetBarSize(out width, out height);
+                    ((Manager)ws.Target).GetBarSize(out width, out height);
                 }
                 catch (Exception e)
                 {
@@ -3052,13 +3003,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void bar_position_get(System.IntPtr obj, System.IntPtr pd, out double posx, out double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         posx = default(double);        posy = default(double);                            
                 try
                 {
-                    ((Manager)wrapper).GetBarPosition(out posx, out posy);
+                    ((Manager)ws.Target).GetBarPosition(out posx, out posy);
                 }
                 catch (Exception e)
                 {
@@ -3087,13 +3038,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void bar_position_set(System.IntPtr obj, System.IntPtr pd, double posx, double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Manager)wrapper).SetBarPosition(posx, posy);
+                    ((Manager)ws.Target).SetBarPosition(posx, posy);
                 }
                 catch (Exception e)
                 {
@@ -3122,13 +3073,13 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
         private static void bar_visibility_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_visibility_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Manager)wrapper).UpdateBarVisibility();
+                    ((Manager)ws.Target).UpdateBarVisibility();
                 }
                 catch (Exception e)
                 {
@@ -3146,7 +3097,7 @@ public class Manager : Efl.Object, Efl.Eo.IWrapper,Efl.Ui.II18n,Efl.Ui.IScrollab
 
         private static efl_ui_scrollbar_bar_visibility_update_delegate efl_ui_scrollbar_bar_visibility_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index ee2cc0d..cf905e9 100644 (file)
@@ -46,13 +46,13 @@ public interface IScrollable :
     event EventHandler ScrollDragStopEvt;
 }
 /// <summary>Efl UI scrollable interface</summary>
-sealed public class IScrollableConcrete : 
-
-IScrollable
+sealed public class IScrollableConcrete :
+    Efl.Eo.EoWrapper
+    , IScrollable
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -67,155 +67,12 @@ IScrollable
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_scrollable_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IScrollable"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IScrollableConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IScrollableConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
+    private IScrollableConcrete(System.IntPtr raw) : base(raw)
     {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when scroll operation starts</summary>
@@ -225,10 +82,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -278,10 +134,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -331,10 +186,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -384,10 +238,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -437,10 +290,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -490,10 +342,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -543,10 +394,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -596,10 +446,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -649,10 +498,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -702,10 +550,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -755,10 +602,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -808,10 +654,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -861,10 +706,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -914,10 +758,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -967,10 +810,9 @@ IScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1035,9 +877,9 @@ IScrollable
             return Efl.Ui.IScrollableConcrete.efl_ui_scrollable_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 0f8811a..8b6ebfb 100644 (file)
@@ -105,55 +105,55 @@ void SetStepSize(Eina.Position2D step);
 /// <param name="animation">Whether to scroll with animation or not</param>
 void Scroll(Eina.Rect rect, bool animation);
                                                                                     /// <summary>The content position</summary>
-/// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
+    /// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
     Eina.Position2D ContentPos {
         get ;
         set ;
     }
     /// <summary>The content size</summary>
-/// <value>The content size in pixels.</value>
+    /// <value>The content size in pixels.</value>
     Eina.Size2D ContentSize {
         get ;
     }
     /// <summary>The viewport geometry</summary>
-/// <value>It is absolute geometry.</value>
+    /// <value>It is absolute geometry.</value>
     Eina.Rect ViewportGeometry {
         get ;
     }
     /// <summary>Freeze property This function will freeze scrolling movement (by input of a user). Unlike efl_ui_scrollable_movement_block_set, this function freezes bidirectionally. If you want to freeze in only one direction, See <see cref="Efl.Ui.IScrollableInteractive.SetMovementBlock"/>.</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     bool ScrollFreeze {
         get ;
         set ;
     }
     /// <summary>Hold property When hold turns on, it only scrolls by holding action.</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     bool ScrollHold {
         get ;
         set ;
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
+    /// <value>Which axis (or axes) to block</value>
     Efl.Ui.ScrollBlock MovementBlock {
         get ;
         set ;
     }
     /// <summary>Control the step size
-/// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
-/// <value>The step size in pixels</value>
+    /// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
+    /// <value>The step size in pixels</value>
     Eina.Position2D StepSize {
         get ;
         set ;
     }
 }
-sealed public class IScrollableInteractiveConcrete : 
-
-IScrollableInteractive
+sealed public class IScrollableInteractiveConcrete :
+    Efl.Eo.EoWrapper
+    , IScrollableInteractive
     , Efl.Ui.IScrollable
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -168,155 +168,12 @@ IScrollableInteractive
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_scrollable_interactive_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IScrollableInteractive"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IScrollableInteractiveConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IScrollableInteractiveConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
+    private IScrollableInteractiveConcrete(System.IntPtr raw) : base(raw)
     {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when scroll operation starts</summary>
@@ -326,10 +183,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -379,10 +235,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -432,10 +287,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -485,10 +339,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -538,10 +391,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -591,10 +443,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -644,10 +495,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -697,10 +547,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -750,10 +599,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -803,10 +651,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -856,10 +703,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -909,10 +755,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -962,10 +807,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1015,10 +859,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1068,10 +911,9 @@ IScrollableInteractive
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1275,43 +1117,43 @@ IScrollableInteractive
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>The content position</summary>
-/// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
+    /// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
     public Eina.Position2D ContentPos {
         get { return GetContentPos(); }
         set { SetContentPos(value); }
     }
     /// <summary>The content size</summary>
-/// <value>The content size in pixels.</value>
+    /// <value>The content size in pixels.</value>
     public Eina.Size2D ContentSize {
         get { return GetContentSize(); }
     }
     /// <summary>The viewport geometry</summary>
-/// <value>It is absolute geometry.</value>
+    /// <value>It is absolute geometry.</value>
     public Eina.Rect ViewportGeometry {
         get { return GetViewportGeometry(); }
     }
     /// <summary>Freeze property This function will freeze scrolling movement (by input of a user). Unlike efl_ui_scrollable_movement_block_set, this function freezes bidirectionally. If you want to freeze in only one direction, See <see cref="Efl.Ui.IScrollableInteractive.SetMovementBlock"/>.</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     public bool ScrollFreeze {
         get { return GetScrollFreeze(); }
         set { SetScrollFreeze(value); }
     }
     /// <summary>Hold property When hold turns on, it only scrolls by holding action.</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     public bool ScrollHold {
         get { return GetScrollHold(); }
         set { SetScrollHold(value); }
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
+    /// <value>Which axis (or axes) to block</value>
     public Efl.Ui.ScrollBlock MovementBlock {
         get { return GetMovementBlock(); }
         set { SetMovementBlock(value); }
     }
     /// <summary>Control the step size
-/// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
-/// <value>The step size in pixels</value>
+    /// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
+    /// <value>The step size in pixels</value>
     public Eina.Position2D StepSize {
         get { return GetStepSize(); }
         set { SetStepSize(value); }
@@ -1541,7 +1383,7 @@ IScrollableInteractive
             return Efl.Ui.IScrollableInteractiveConcrete.efl_ui_scrollable_interactive_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.Position2D.NativeStruct efl_ui_scrollable_content_pos_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -1554,13 +1396,13 @@ IScrollableInteractive
         private static Eina.Position2D.NativeStruct content_pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((IScrollableInteractive)wrapper).GetContentPos();
+                    _ret_var = ((IScrollableInteractive)ws.Target).GetContentPos();
                 }
                 catch (Exception e)
                 {
@@ -1590,14 +1432,14 @@ IScrollableInteractive
         private static void content_pos_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((IScrollableInteractive)wrapper).SetContentPos(_in_pos);
+                    ((IScrollableInteractive)ws.Target).SetContentPos(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -1626,13 +1468,13 @@ IScrollableInteractive
         private static Eina.Size2D.NativeStruct content_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((IScrollableInteractive)wrapper).GetContentSize();
+                    _ret_var = ((IScrollableInteractive)ws.Target).GetContentSize();
                 }
                 catch (Exception e)
                 {
@@ -1662,13 +1504,13 @@ IScrollableInteractive
         private static Eina.Rect.NativeStruct viewport_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_viewport_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((IScrollableInteractive)wrapper).GetViewportGeometry();
+                    _ret_var = ((IScrollableInteractive)ws.Target).GetViewportGeometry();
                 }
                 catch (Exception e)
                 {
@@ -1698,13 +1540,13 @@ IScrollableInteractive
         private static void bounce_enabled_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((IScrollableInteractive)wrapper).GetBounceEnabled(out horiz, out vert);
+                    ((IScrollableInteractive)ws.Target).GetBounceEnabled(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -1733,13 +1575,13 @@ IScrollableInteractive
         private static void bounce_enabled_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IScrollableInteractive)wrapper).SetBounceEnabled(horiz, vert);
+                    ((IScrollableInteractive)ws.Target).SetBounceEnabled(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -1768,13 +1610,13 @@ IScrollableInteractive
         private static bool scroll_freeze_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IScrollableInteractive)wrapper).GetScrollFreeze();
+                    _ret_var = ((IScrollableInteractive)ws.Target).GetScrollFreeze();
                 }
                 catch (Exception e)
                 {
@@ -1804,13 +1646,13 @@ IScrollableInteractive
         private static void scroll_freeze_set(System.IntPtr obj, System.IntPtr pd, bool freeze)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IScrollableInteractive)wrapper).SetScrollFreeze(freeze);
+                    ((IScrollableInteractive)ws.Target).SetScrollFreeze(freeze);
                 }
                 catch (Exception e)
                 {
@@ -1839,13 +1681,13 @@ IScrollableInteractive
         private static bool scroll_hold_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IScrollableInteractive)wrapper).GetScrollHold();
+                    _ret_var = ((IScrollableInteractive)ws.Target).GetScrollHold();
                 }
                 catch (Exception e)
                 {
@@ -1875,13 +1717,13 @@ IScrollableInteractive
         private static void scroll_hold_set(System.IntPtr obj, System.IntPtr pd, bool hold)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IScrollableInteractive)wrapper).SetScrollHold(hold);
+                    ((IScrollableInteractive)ws.Target).SetScrollHold(hold);
                 }
                 catch (Exception e)
                 {
@@ -1910,13 +1752,13 @@ IScrollableInteractive
         private static void looping_get(System.IntPtr obj, System.IntPtr pd, out bool loop_h, out bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         loop_h = default(bool);        loop_v = default(bool);                            
                 try
                 {
-                    ((IScrollableInteractive)wrapper).GetLooping(out loop_h, out loop_v);
+                    ((IScrollableInteractive)ws.Target).GetLooping(out loop_h, out loop_v);
                 }
                 catch (Exception e)
                 {
@@ -1945,13 +1787,13 @@ IScrollableInteractive
         private static void looping_set(System.IntPtr obj, System.IntPtr pd, bool loop_h, bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IScrollableInteractive)wrapper).SetLooping(loop_h, loop_v);
+                    ((IScrollableInteractive)ws.Target).SetLooping(loop_h, loop_v);
                 }
                 catch (Exception e)
                 {
@@ -1980,13 +1822,13 @@ IScrollableInteractive
         private static Efl.Ui.ScrollBlock movement_block_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ScrollBlock _ret_var = default(Efl.Ui.ScrollBlock);
                 try
                 {
-                    _ret_var = ((IScrollableInteractive)wrapper).GetMovementBlock();
+                    _ret_var = ((IScrollableInteractive)ws.Target).GetMovementBlock();
                 }
                 catch (Exception e)
                 {
@@ -2016,13 +1858,13 @@ IScrollableInteractive
         private static void movement_block_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollBlock block)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IScrollableInteractive)wrapper).SetMovementBlock(block);
+                    ((IScrollableInteractive)ws.Target).SetMovementBlock(block);
                 }
                 catch (Exception e)
                 {
@@ -2051,13 +1893,13 @@ IScrollableInteractive
         private static void gravity_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IScrollableInteractive)wrapper).GetGravity(out x, out y);
+                    ((IScrollableInteractive)ws.Target).GetGravity(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -2086,13 +1928,13 @@ IScrollableInteractive
         private static void gravity_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IScrollableInteractive)wrapper).SetGravity(x, y);
+                    ((IScrollableInteractive)ws.Target).SetGravity(x, y);
                 }
                 catch (Exception e)
                 {
@@ -2121,13 +1963,13 @@ IScrollableInteractive
         private static void match_content_set(System.IntPtr obj, System.IntPtr pd, bool w, bool h)
         {
             Eina.Log.Debug("function efl_ui_scrollable_match_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IScrollableInteractive)wrapper).SetMatchContent(w, h);
+                    ((IScrollableInteractive)ws.Target).SetMatchContent(w, h);
                 }
                 catch (Exception e)
                 {
@@ -2156,13 +1998,13 @@ IScrollableInteractive
         private static Eina.Position2D.NativeStruct step_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((IScrollableInteractive)wrapper).GetStepSize();
+                    _ret_var = ((IScrollableInteractive)ws.Target).GetStepSize();
                 }
                 catch (Exception e)
                 {
@@ -2192,14 +2034,14 @@ IScrollableInteractive
         private static void step_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct step)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_step = step;
                             
                 try
                 {
-                    ((IScrollableInteractive)wrapper).SetStepSize(_in_step);
+                    ((IScrollableInteractive)ws.Target).SetStepSize(_in_step);
                 }
                 catch (Exception e)
                 {
@@ -2228,14 +2070,14 @@ IScrollableInteractive
         private static void scroll(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool animation)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                     
                 try
                 {
-                    ((IScrollableInteractive)wrapper).Scroll(_in_rect, animation);
+                    ((IScrollableInteractive)ws.Target).Scroll(_in_rect, animation);
                 }
                 catch (Exception e)
                 {
@@ -2253,7 +2095,7 @@ IScrollableInteractive
 
         private static efl_ui_scrollable_scroll_delegate efl_ui_scrollable_scroll_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e50f2df..eeaa590 100644 (file)
@@ -76,13 +76,13 @@ public class IScrollbarBarHideEvt_Args : EventArgs {
     ///<summary>Actual event payload.</summary>
     public Efl.Ui.ScrollbarDirection arg { get; set; }
 }
-sealed public class IScrollbarConcrete : 
-
-IScrollbar
+sealed public class IScrollbarConcrete :
+    Efl.Eo.EoWrapper
+    , IScrollbar
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -97,155 +97,12 @@ IScrollbar
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_scrollbar_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IScrollbar"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IScrollbarConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IScrollbarConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IScrollbarConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when bar is pressed</summary>
@@ -255,13 +112,12 @@ IScrollbar
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
+                        Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -317,13 +173,12 @@ IScrollbar
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
+                        Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -379,13 +234,12 @@ IScrollbar
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
+                        Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -441,10 +295,9 @@ IScrollbar
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -494,10 +347,9 @@ IScrollbar
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -547,13 +399,12 @@ IScrollbar
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
+                        Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -609,13 +460,12 @@ IScrollbar
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
+                        Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -790,7 +640,7 @@ IScrollbar
             return Efl.Ui.IScrollbarConcrete.efl_ui_scrollbar_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_scrollbar_bar_mode_get_delegate(System.IntPtr obj, System.IntPtr pd,  out Efl.Ui.ScrollbarMode hbar,  out Efl.Ui.ScrollbarMode vbar);
@@ -803,13 +653,13 @@ IScrollbar
         private static void bar_mode_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.ScrollbarMode hbar, out Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         hbar = default(Efl.Ui.ScrollbarMode);        vbar = default(Efl.Ui.ScrollbarMode);                            
                 try
                 {
-                    ((IScrollbar)wrapper).GetBarMode(out hbar, out vbar);
+                    ((IScrollbar)ws.Target).GetBarMode(out hbar, out vbar);
                 }
                 catch (Exception e)
                 {
@@ -838,13 +688,13 @@ IScrollbar
         private static void bar_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollbarMode hbar, Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IScrollbar)wrapper).SetBarMode(hbar, vbar);
+                    ((IScrollbar)ws.Target).SetBarMode(hbar, vbar);
                 }
                 catch (Exception e)
                 {
@@ -873,13 +723,13 @@ IScrollbar
         private static void bar_size_get(System.IntPtr obj, System.IntPtr pd, out double width, out double height)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         width = default(double);        height = default(double);                            
                 try
                 {
-                    ((IScrollbar)wrapper).GetBarSize(out width, out height);
+                    ((IScrollbar)ws.Target).GetBarSize(out width, out height);
                 }
                 catch (Exception e)
                 {
@@ -908,13 +758,13 @@ IScrollbar
         private static void bar_position_get(System.IntPtr obj, System.IntPtr pd, out double posx, out double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         posx = default(double);        posy = default(double);                            
                 try
                 {
-                    ((IScrollbar)wrapper).GetBarPosition(out posx, out posy);
+                    ((IScrollbar)ws.Target).GetBarPosition(out posx, out posy);
                 }
                 catch (Exception e)
                 {
@@ -943,13 +793,13 @@ IScrollbar
         private static void bar_position_set(System.IntPtr obj, System.IntPtr pd, double posx, double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IScrollbar)wrapper).SetBarPosition(posx, posy);
+                    ((IScrollbar)ws.Target).SetBarPosition(posx, posy);
                 }
                 catch (Exception e)
                 {
@@ -978,13 +828,13 @@ IScrollbar
         private static void bar_visibility_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_visibility_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IScrollbar)wrapper).UpdateBarVisibility();
+                    ((IScrollbar)ws.Target).UpdateBarVisibility();
                 }
                 catch (Exception e)
                 {
@@ -1002,7 +852,7 @@ IScrollbar
 
         private static efl_ui_scrollbar_bar_visibility_update_delegate efl_ui_scrollbar_bar_visibility_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index d2467b0..0b5bb1f 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl ui scroller class</summary>
 [Efl.Ui.Scroller.NativeMethods]
-public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.IScrollable,Efl.Ui.IScrollableInteractive,Efl.Ui.IScrollbar,Efl.Ui.IWidgetFocusManager,Efl.Ui.Focus.IManager,Efl.Ui.Focus.IManagerSub
+public class Scroller : Efl.Ui.LayoutBase, Efl.IContent, Efl.Ui.IScrollable, Efl.Ui.IScrollableInteractive, Efl.Ui.IScrollbar, Efl.Ui.IWidgetFocusManager, Efl.Ui.Focus.IManager, Efl.Ui.Focus.IManagerSub
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Scroller(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Scroller"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -96,13 +69,12 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -151,10 +123,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -204,10 +175,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -257,10 +227,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -310,10 +279,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -363,10 +331,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -416,10 +383,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -469,10 +435,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -522,10 +487,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -575,10 +539,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -628,10 +591,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -681,10 +643,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -734,10 +695,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -787,10 +747,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -840,10 +799,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -893,10 +851,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -946,13 +903,12 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
+                        Efl.Ui.IScrollbarBarPressEvt_Args args = new Efl.Ui.IScrollbarBarPressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1008,13 +964,12 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
+                        Efl.Ui.IScrollbarBarUnpressEvt_Args args = new Efl.Ui.IScrollbarBarUnpressEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1070,13 +1025,12 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
+                        Efl.Ui.IScrollbarBarDragEvt_Args args = new Efl.Ui.IScrollbarBarDragEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1132,10 +1086,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1185,10 +1138,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1238,13 +1190,12 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
+                        Efl.Ui.IScrollbarBarShowEvt_Args args = new Efl.Ui.IScrollbarBarShowEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1300,13 +1251,12 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
+                        Efl.Ui.IScrollbarBarHideEvt_Args args = new Efl.Ui.IScrollbarBarHideEvt_Args();
                         args.arg = default(Efl.Ui.ScrollbarDirection);
                         try
                         {
@@ -1363,13 +1313,12 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -1419,10 +1368,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1473,10 +1421,9 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1527,13 +1474,12 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -1583,14 +1529,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -2039,82 +1984,82 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>The content position</summary>
-/// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
+    /// <value>The position is virtual value, (0, 0) starting at the top-left.</value>
     public Eina.Position2D ContentPos {
         get { return GetContentPos(); }
         set { SetContentPos(value); }
     }
     /// <summary>The content size</summary>
-/// <value>The content size in pixels.</value>
+    /// <value>The content size in pixels.</value>
     public Eina.Size2D ContentSize {
         get { return GetContentSize(); }
     }
     /// <summary>The viewport geometry</summary>
-/// <value>It is absolute geometry.</value>
+    /// <value>It is absolute geometry.</value>
     public Eina.Rect ViewportGeometry {
         get { return GetViewportGeometry(); }
     }
     /// <summary>Freeze property This function will freeze scrolling movement (by input of a user). Unlike efl_ui_scrollable_movement_block_set, this function freezes bidirectionally. If you want to freeze in only one direction, See <see cref="Efl.Ui.IScrollableInteractive.SetMovementBlock"/>.</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     public bool ScrollFreeze {
         get { return GetScrollFreeze(); }
         set { SetScrollFreeze(value); }
     }
     /// <summary>Hold property When hold turns on, it only scrolls by holding action.</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     public bool ScrollHold {
         get { return GetScrollHold(); }
         set { SetScrollHold(value); }
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. You can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.</summary>
+    /// <value>Which axis (or axes) to block</value>
     public Efl.Ui.ScrollBlock MovementBlock {
         get { return GetMovementBlock(); }
         set { SetMovementBlock(value); }
     }
     /// <summary>Control the step size
-/// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
-/// <value>The step size in pixels</value>
+    /// Use this call to set step size. This value is used when scroller scroll by arrow key event.</summary>
+    /// <value>The step size in pixels</value>
     public Eina.Position2D StepSize {
         get { return GetStepSize(); }
         set { SetStepSize(value); }
     }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
@@ -2625,7 +2570,7 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
             return Efl.Ui.Scroller.efl_ui_scroller_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -2638,13 +2583,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetContent();
+                    _ret_var = ((Scroller)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -2674,13 +2619,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).SetContent(content);
+                    _ret_var = ((Scroller)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -2710,13 +2655,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).UnsetContent();
+                    _ret_var = ((Scroller)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -2746,13 +2691,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Eina.Position2D.NativeStruct content_pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetContentPos();
+                    _ret_var = ((Scroller)ws.Target).GetContentPos();
                 }
                 catch (Exception e)
                 {
@@ -2782,14 +2727,14 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void content_pos_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                             
                 try
                 {
-                    ((Scroller)wrapper).SetContentPos(_in_pos);
+                    ((Scroller)ws.Target).SetContentPos(_in_pos);
                 }
                 catch (Exception e)
                 {
@@ -2818,13 +2763,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Eina.Size2D.NativeStruct content_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetContentSize();
+                    _ret_var = ((Scroller)ws.Target).GetContentSize();
                 }
                 catch (Exception e)
                 {
@@ -2854,13 +2799,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Eina.Rect.NativeStruct viewport_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_viewport_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetViewportGeometry();
+                    _ret_var = ((Scroller)ws.Target).GetViewportGeometry();
                 }
                 catch (Exception e)
                 {
@@ -2890,13 +2835,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void bounce_enabled_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((Scroller)wrapper).GetBounceEnabled(out horiz, out vert);
+                    ((Scroller)ws.Target).GetBounceEnabled(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -2925,13 +2870,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void bounce_enabled_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function efl_ui_scrollable_bounce_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Scroller)wrapper).SetBounceEnabled(horiz, vert);
+                    ((Scroller)ws.Target).SetBounceEnabled(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -2960,13 +2905,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static bool scroll_freeze_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetScrollFreeze();
+                    _ret_var = ((Scroller)ws.Target).GetScrollFreeze();
                 }
                 catch (Exception e)
                 {
@@ -2996,13 +2941,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void scroll_freeze_set(System.IntPtr obj, System.IntPtr pd, bool freeze)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_freeze_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Scroller)wrapper).SetScrollFreeze(freeze);
+                    ((Scroller)ws.Target).SetScrollFreeze(freeze);
                 }
                 catch (Exception e)
                 {
@@ -3031,13 +2976,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static bool scroll_hold_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetScrollHold();
+                    _ret_var = ((Scroller)ws.Target).GetScrollHold();
                 }
                 catch (Exception e)
                 {
@@ -3067,13 +3012,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void scroll_hold_set(System.IntPtr obj, System.IntPtr pd, bool hold)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll_hold_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Scroller)wrapper).SetScrollHold(hold);
+                    ((Scroller)ws.Target).SetScrollHold(hold);
                 }
                 catch (Exception e)
                 {
@@ -3102,13 +3047,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void looping_get(System.IntPtr obj, System.IntPtr pd, out bool loop_h, out bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         loop_h = default(bool);        loop_v = default(bool);                            
                 try
                 {
-                    ((Scroller)wrapper).GetLooping(out loop_h, out loop_v);
+                    ((Scroller)ws.Target).GetLooping(out loop_h, out loop_v);
                 }
                 catch (Exception e)
                 {
@@ -3137,13 +3082,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void looping_set(System.IntPtr obj, System.IntPtr pd, bool loop_h, bool loop_v)
         {
             Eina.Log.Debug("function efl_ui_scrollable_looping_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Scroller)wrapper).SetLooping(loop_h, loop_v);
+                    ((Scroller)ws.Target).SetLooping(loop_h, loop_v);
                 }
                 catch (Exception e)
                 {
@@ -3172,13 +3117,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Ui.ScrollBlock movement_block_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ScrollBlock _ret_var = default(Efl.Ui.ScrollBlock);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetMovementBlock();
+                    _ret_var = ((Scroller)ws.Target).GetMovementBlock();
                 }
                 catch (Exception e)
                 {
@@ -3208,13 +3153,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void movement_block_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollBlock block)
         {
             Eina.Log.Debug("function efl_ui_scrollable_movement_block_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Scroller)wrapper).SetMovementBlock(block);
+                    ((Scroller)ws.Target).SetMovementBlock(block);
                 }
                 catch (Exception e)
                 {
@@ -3243,13 +3188,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void gravity_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Scroller)wrapper).GetGravity(out x, out y);
+                    ((Scroller)ws.Target).GetGravity(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -3278,13 +3223,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void gravity_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_ui_scrollable_gravity_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Scroller)wrapper).SetGravity(x, y);
+                    ((Scroller)ws.Target).SetGravity(x, y);
                 }
                 catch (Exception e)
                 {
@@ -3313,13 +3258,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void match_content_set(System.IntPtr obj, System.IntPtr pd, bool w, bool h)
         {
             Eina.Log.Debug("function efl_ui_scrollable_match_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Scroller)wrapper).SetMatchContent(w, h);
+                    ((Scroller)ws.Target).SetMatchContent(w, h);
                 }
                 catch (Exception e)
                 {
@@ -3348,13 +3293,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Eina.Position2D.NativeStruct step_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Position2D _ret_var = default(Eina.Position2D);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetStepSize();
+                    _ret_var = ((Scroller)ws.Target).GetStepSize();
                 }
                 catch (Exception e)
                 {
@@ -3384,14 +3329,14 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void step_size_set(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct step)
         {
             Eina.Log.Debug("function efl_ui_scrollable_step_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_step = step;
                             
                 try
                 {
-                    ((Scroller)wrapper).SetStepSize(_in_step);
+                    ((Scroller)ws.Target).SetStepSize(_in_step);
                 }
                 catch (Exception e)
                 {
@@ -3420,14 +3365,14 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void scroll(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool animation)
         {
             Eina.Log.Debug("function efl_ui_scrollable_scroll was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                     
                 try
                 {
-                    ((Scroller)wrapper).Scroll(_in_rect, animation);
+                    ((Scroller)ws.Target).Scroll(_in_rect, animation);
                 }
                 catch (Exception e)
                 {
@@ -3456,13 +3401,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void bar_mode_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.ScrollbarMode hbar, out Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         hbar = default(Efl.Ui.ScrollbarMode);        vbar = default(Efl.Ui.ScrollbarMode);                            
                 try
                 {
-                    ((Scroller)wrapper).GetBarMode(out hbar, out vbar);
+                    ((Scroller)ws.Target).GetBarMode(out hbar, out vbar);
                 }
                 catch (Exception e)
                 {
@@ -3491,13 +3436,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void bar_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollbarMode hbar, Efl.Ui.ScrollbarMode vbar)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Scroller)wrapper).SetBarMode(hbar, vbar);
+                    ((Scroller)ws.Target).SetBarMode(hbar, vbar);
                 }
                 catch (Exception e)
                 {
@@ -3526,13 +3471,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void bar_size_get(System.IntPtr obj, System.IntPtr pd, out double width, out double height)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         width = default(double);        height = default(double);                            
                 try
                 {
-                    ((Scroller)wrapper).GetBarSize(out width, out height);
+                    ((Scroller)ws.Target).GetBarSize(out width, out height);
                 }
                 catch (Exception e)
                 {
@@ -3561,13 +3506,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void bar_position_get(System.IntPtr obj, System.IntPtr pd, out double posx, out double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         posx = default(double);        posy = default(double);                            
                 try
                 {
-                    ((Scroller)wrapper).GetBarPosition(out posx, out posy);
+                    ((Scroller)ws.Target).GetBarPosition(out posx, out posy);
                 }
                 catch (Exception e)
                 {
@@ -3596,13 +3541,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void bar_position_set(System.IntPtr obj, System.IntPtr pd, double posx, double posy)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Scroller)wrapper).SetBarPosition(posx, posy);
+                    ((Scroller)ws.Target).SetBarPosition(posx, posy);
                 }
                 catch (Exception e)
                 {
@@ -3631,13 +3576,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void bar_visibility_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_scrollbar_bar_visibility_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Scroller)wrapper).UpdateBarVisibility();
+                    ((Scroller)ws.Target).UpdateBarVisibility();
                 }
                 catch (Exception e)
                 {
@@ -3666,13 +3611,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Ui.Focus.IManager focus_manager_create(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_manager_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).FocusManagerCreate(root);
+                    _ret_var = ((Scroller)ws.Target).FocusManagerCreate(root);
                 }
                 catch (Exception e)
                 {
@@ -3702,13 +3647,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetManagerFocus();
+                    _ret_var = ((Scroller)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -3738,13 +3683,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Scroller)wrapper).SetManagerFocus(focus);
+                    ((Scroller)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -3773,13 +3718,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetRedirect();
+                    _ret_var = ((Scroller)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -3809,13 +3754,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Scroller)wrapper).SetRedirect(redirect);
+                    ((Scroller)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -3844,13 +3789,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetBorderElements();
+                    _ret_var = ((Scroller)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -3880,14 +3825,14 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((Scroller)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -3917,13 +3862,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).GetRoot();
+                    _ret_var = ((Scroller)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -3953,13 +3898,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).SetRoot(root);
+                    _ret_var = ((Scroller)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -3989,13 +3934,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).Move(direction);
+                    _ret_var = ((Scroller)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -4025,13 +3970,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((Scroller)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -4061,13 +4006,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).RequestSubchild(root);
+                    _ret_var = ((Scroller)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -4097,13 +4042,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).Fetch(child);
+                    _ret_var = ((Scroller)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -4133,13 +4078,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((Scroller)wrapper).LogicalEnd();
+                    _ret_var = ((Scroller)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -4169,13 +4114,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Scroller)wrapper).ResetHistory();
+                    ((Scroller)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -4204,13 +4149,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Scroller)wrapper).PopHistoryStack();
+                    ((Scroller)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -4239,13 +4184,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Scroller)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((Scroller)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -4274,13 +4219,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Scroller)wrapper).FreezeDirtyLogic();
+                    ((Scroller)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -4309,13 +4254,13 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Scroller)wrapper).DirtyLogicUnfreeze();
+                    ((Scroller)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -4333,7 +4278,7 @@ public class Scroller : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent,Efl.Ui.I
 
         private static efl_ui_focus_manager_dirty_logic_unfreeze_delegate efl_ui_focus_manager_dirty_logic_unfreeze_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 33d7b68..d406c55 100644 (file)
@@ -42,13 +42,13 @@ public class ISelectableItemUnselectedEvt_Args : EventArgs {
     public Efl.Object arg { get; set; }
 }
 /// <summary>Efl UI selectable interface</summary>
-sealed public class ISelectableConcrete : 
-
-ISelectable
+sealed public class ISelectableConcrete :
+    Efl.Eo.EoWrapper
+    , ISelectable
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -63,155 +63,12 @@ ISelectable
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_selectable_interface_get();
     /// <summary>Initializes a new instance of the <see cref="ISelectable"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ISelectableConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ISelectableConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
+    private ISelectableConcrete(System.IntPtr raw) : base(raw)
     {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when selected</summary>
@@ -221,13 +78,12 @@ ISelectable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
+                        Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -276,13 +132,12 @@ ISelectable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
+                        Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -331,10 +186,9 @@ ISelectable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -384,10 +238,9 @@ ISelectable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -437,10 +290,9 @@ ISelectable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -490,10 +342,9 @@ ISelectable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -543,10 +394,9 @@ ISelectable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -596,10 +446,9 @@ ISelectable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -664,9 +513,9 @@ ISelectable
             return Efl.Ui.ISelectableConcrete.efl_ui_selectable_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index d2ba7e0..1b782ab 100644 (file)
@@ -36,7 +36,15 @@ void ClearSelection(Efl.Ui.SelectionType type, uint seat);
 /// <param name="seat">Specified seat for multiple seats case.</param>
 /// <returns>EINA_TRUE if there is object owns selection, otherwise EINA_FALSE</returns>
 bool HasOwner(Efl.Ui.SelectionType type, uint seat);
-        System.Threading.Tasks.Task<Eina.Value> SetSelectionAsync(Efl.Ui.SelectionType type,Efl.Ui.SelectionFormat format,Eina.Slice data,uint seat, System.Threading.CancellationToken token = default(System.Threading.CancellationToken));
+        /// <summary>Async wrapper for <see cref="SetSelection" />.</summary>
+    /// <param name="type">Selection Type</param>
+    /// <param name="format">Selection Format</param>
+    /// <param name="data">Selection data</param>
+    /// <param name="seat">Specified seat for multiple seats case.</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
+    System.Threading.Tasks.Task<Eina.Value> SetSelectionAsync(Efl.Ui.SelectionType type,Efl.Ui.SelectionFormat format,Eina.Slice data,uint seat, System.Threading.CancellationToken token = default(System.Threading.CancellationToken));
+
                 /// <summary>Called when display server&apos;s selection has changed</summary>
     event EventHandler<Efl.Ui.ISelectionWmSelectionChangedEvt_Args> WmSelectionChangedEvt;
 }
@@ -46,13 +54,13 @@ public class ISelectionWmSelectionChangedEvt_Args : EventArgs {
     public Efl.Ui.SelectionChanged arg { get; set; }
 }
 /// <summary>Efl Ui Selection class</summary>
-sealed public class ISelectionConcrete : 
-
-ISelection
+sealed public class ISelectionConcrete :
+    Efl.Eo.EoWrapper
+    , ISelection
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -67,155 +75,12 @@ ISelection
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_selection_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="ISelection"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private ISelectionConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~ISelectionConcrete()
+    private ISelectionConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when display server&apos;s selection has changed</summary>
@@ -225,13 +90,12 @@ ISelection
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectionWmSelectionChangedEvt_Args args = new Efl.Ui.ISelectionWmSelectionChangedEvt_Args();
+                        Efl.Ui.ISelectionWmSelectionChangedEvt_Args args = new Efl.Ui.ISelectionWmSelectionChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -318,11 +182,19 @@ ISelection
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
+    /// <summary>Async wrapper for <see cref="SetSelection" />.</summary>
+    /// <param name="type">Selection Type</param>
+    /// <param name="format">Selection Format</param>
+    /// <param name="data">Selection data</param>
+    /// <param name="seat">Specified seat for multiple seats case.</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> SetSelectionAsync(Efl.Ui.SelectionType type,Efl.Ui.SelectionFormat format,Eina.Slice data,uint seat, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = SetSelection( type, format, data, seat);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.ISelectionConcrete.efl_ui_selection_mixin_get();
@@ -388,7 +260,7 @@ ISelection
             return Efl.Ui.ISelectionConcrete.efl_ui_selection_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Eina.FutureMarshaler))]
         private delegate  Eina.Future efl_ui_selection_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.SelectionType type,  Efl.Ui.SelectionFormat format,  Eina.Slice data,  uint seat);
@@ -401,13 +273,13 @@ ISelection
         private static  Eina.Future selection_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionType type, Efl.Ui.SelectionFormat format, Eina.Slice data, uint seat)
         {
             Eina.Log.Debug("function efl_ui_selection_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((ISelectionConcrete)wrapper).SetSelection(type, format, data, seat);
+                    _ret_var = ((ISelectionConcrete)ws.Target).SetSelection(type, format, data, seat);
                 }
                 catch (Exception e)
                 {
@@ -437,14 +309,14 @@ ISelection
         private static void selection_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionType type, Efl.Ui.SelectionFormat format, IntPtr data_func_data, Efl.Ui.SelectionDataReadyInternal data_func, EinaFreeCb data_func_free_cb, uint seat)
         {
             Eina.Log.Debug("function efl_ui_selection_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                             Efl.Ui.SelectionDataReadyWrapper data_func_wrapper = new Efl.Ui.SelectionDataReadyWrapper(data_func, data_func_data, data_func_free_cb);
                     
                 try
                 {
-                    ((ISelectionConcrete)wrapper).GetSelection(type, format, data_func_wrapper.ManagedCb, seat);
+                    ((ISelectionConcrete)ws.Target).GetSelection(type, format, data_func_wrapper.ManagedCb, seat);
                 }
                 catch (Exception e)
                 {
@@ -473,13 +345,13 @@ ISelection
         private static void selection_clear(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionType type, uint seat)
         {
             Eina.Log.Debug("function efl_ui_selection_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ISelectionConcrete)wrapper).ClearSelection(type, seat);
+                    ((ISelectionConcrete)ws.Target).ClearSelection(type, seat);
                 }
                 catch (Exception e)
                 {
@@ -508,13 +380,13 @@ ISelection
         private static bool has_owner(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionType type, uint seat)
         {
             Eina.Log.Debug("function efl_ui_selection_has_owner was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ISelectionConcrete)wrapper).HasOwner(type, seat);
+                    _ret_var = ((ISelectionConcrete)ws.Target).HasOwner(type, seat);
                 }
                 catch (Exception e)
                 {
@@ -533,7 +405,7 @@ ISelection
 
         private static efl_ui_selection_has_owner_delegate efl_ui_selection_has_owner_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 15a1cec..827433f 100644 (file)
@@ -193,12 +193,16 @@ public struct SelectionData
         this.Item = Item;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator SelectionData(IntPtr ptr)
     {
         var tmp = (SelectionData.NativeStruct)Marshal.PtrToStructure(ptr, typeof(SelectionData.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct SelectionData.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -244,6 +248,8 @@ public struct SelectionData
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -278,12 +284,16 @@ public struct SelectionChanged
         this.Exist = Exist;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator SelectionChanged(IntPtr ptr)
     {
         var tmp = (SelectionChanged.NativeStruct)Marshal.PtrToStructure(ptr, typeof(SelectionChanged.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct SelectionChanged.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -320,6 +330,8 @@ public struct SelectionChanged
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 7e14b7f..d39e9cf 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary slider class</summary>
 [Efl.Ui.Slider.NativeMethods]
-public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.IDirection,Efl.Ui.IRangeDisplay,Efl.Ui.IRangeInteractive
+public class Slider : Efl.Ui.LayoutBase, Efl.Access.IValue, Efl.Ui.ILayoutOrientable, Efl.Ui.IRangeDisplay, Efl.Ui.IRangeInteractive
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Slider(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Slider"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,44 +61,16 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Called when slider changed</summary>
+    /// <summary>Called when the slider position has changed.</summary>
     public event EventHandler ChangedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -141,17 +113,16 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when delay changed</summary>
-    public event EventHandler DelayChangedEvt
+    /// <summary>Called when the slider position has changed and has remained unchanged for 0.2s. This allows filtering out unwanted &quot;noise&quot; from the slider signal if you are only interested in the final position of the slider. Use this signal instead of <see cref="Efl.Ui.Slider.ChangedEvt"/> if you are going to perform a costly operation on its handler.</summary>
+    public event EventHandler SteadyEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -167,7 +138,7 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
                     }
                 };
 
-                string key = "_EFL_UI_SLIDER_EVENT_DELAY_CHANGED";
+                string key = "_EFL_UI_SLIDER_EVENT_STEADY";
                 AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
@@ -176,15 +147,15 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         {
             lock (eventLock)
             {
-                string key = "_EFL_UI_SLIDER_EVENT_DELAY_CHANGED";
+                string key = "_EFL_UI_SLIDER_EVENT_STEADY";
                 RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
-    ///<summary>Method to raise event DelayChangedEvt.</summary>
-    public void OnDelayChangedEvt(EventArgs e)
+    ///<summary>Method to raise event SteadyEvt.</summary>
+    public void OnSteadyEvt(EventArgs e)
     {
-        var key = "_EFL_UI_SLIDER_EVENT_DELAY_CHANGED";
+        var key = "_EFL_UI_SLIDER_EVENT_STEADY";
         IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
@@ -194,17 +165,16 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when slider drag started</summary>
+    /// <summary>Called when a slider drag operation has started. This means a <c>press</c> event has been received on the slider thumb but not the <c>unpress</c>.</summary>
     public event EventHandler SliderDragStartEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -247,17 +217,16 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when slider drag stopped</summary>
+    /// <summary>Called when a slider drag operation has finished. This means an <c>unpress</c> event has been received on the slider thumb.</summary>
     public event EventHandler SliderDragStopEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -336,8 +305,8 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <returns>Direction of the widget.</returns>
-    virtual public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+    virtual public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
@@ -346,8 +315,8 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <param name="dir">Direction of the widget.</param>
-    virtual public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+    virtual public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Control the range value (in percentage) on a given range widget
@@ -415,35 +384,35 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Gets an minimal incrementation value</summary>
-/// <value>Minimal incrementation value</value>
+    /// <value>Minimal incrementation value</value>
     public double Increment {
         get { return GetIncrement(); }
     }
     /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
     }
     /// <summary>Control the range value (in percentage) on a given range widget
-/// Use this call to set range levels.
-/// 
-/// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
-/// <value>The range value (must be between $0.0 and 1.0)</value>
+    /// Use this call to set range levels.
+    /// 
+    /// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
+    /// <value>The range value (must be between $0.0 and 1.0)</value>
     public double RangeValue {
         get { return GetRangeValue(); }
         set { SetRangeValue(value); }
     }
     /// <summary>Control the step used to increment or decrement values for given widget.
-/// This value will be incremented or decremented to the displayed value.
-/// 
-/// By default step value is equal to 1.
-/// 
-/// Warning: The step value should be bigger than 0.</summary>
-/// <value>The step value.</value>
+    /// This value will be incremented or decremented to the displayed value.
+    /// 
+    /// By default step value is equal to 1.
+    /// 
+    /// Warning: The step value should be bigger than 0.</summary>
+    /// <value>The step value.</value>
     public double RangeStep {
         get { return GetRangeStep(); }
         set { SetRangeStep(value); }
@@ -504,24 +473,24 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_access_value_increment_get"), func = Marshal.GetFunctionPointerForDelegate(efl_access_value_increment_get_static_delegate) });
             }
 
-            if (efl_ui_direction_get_static_delegate == null)
+            if (efl_ui_layout_orientation_get_static_delegate == null)
             {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
             }
 
-            if (efl_ui_direction_set_static_delegate == null)
+            if (efl_ui_layout_orientation_set_static_delegate == null)
             {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
             }
 
             if (efl_ui_range_value_get_static_delegate == null)
@@ -594,7 +563,7 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
             return Efl.Ui.Slider.efl_ui_slider_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_access_value_and_text_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double value, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] out System.String text);
@@ -607,14 +576,14 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static void value_and_text_get(System.IntPtr obj, System.IntPtr pd, out double value, out System.String text)
         {
             Eina.Log.Debug("function efl_access_value_and_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         value = default(double);        System.String _out_text = default(System.String);
                             
                 try
                 {
-                    ((Slider)wrapper).GetValueAndText(out value, out _out_text);
+                    ((Slider)ws.Target).GetValueAndText(out value, out _out_text);
                 }
                 catch (Exception e)
                 {
@@ -644,13 +613,13 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static bool value_and_text_set(System.IntPtr obj, System.IntPtr pd, double value, System.String text)
         {
             Eina.Log.Debug("function efl_access_value_and_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Slider)wrapper).SetValueAndText(value, text);
+                    _ret_var = ((Slider)ws.Target).SetValueAndText(value, text);
                 }
                 catch (Exception e)
                 {
@@ -680,14 +649,14 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static void range_get(System.IntPtr obj, System.IntPtr pd, out double lower_limit, out double upper_limit, out System.String description)
         {
             Eina.Log.Debug("function efl_access_value_range_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 lower_limit = default(double);        upper_limit = default(double);        System.String _out_description = default(System.String);
                                     
                 try
                 {
-                    ((Slider)wrapper).GetRange(out lower_limit, out upper_limit, out _out_description);
+                    ((Slider)ws.Target).GetRange(out lower_limit, out upper_limit, out _out_description);
                 }
                 catch (Exception e)
                 {
@@ -717,13 +686,13 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static double increment_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_value_increment_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Slider)wrapper).GetIncrement();
+                    _ret_var = ((Slider)ws.Target).GetIncrement();
                 }
                 catch (Exception e)
                 {
@@ -743,23 +712,23 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static efl_access_value_increment_get_delegate efl_access_value_increment_get_static_delegate;
 
         
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
 
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
                 try
                 {
-                    _ret_var = ((Slider)wrapper).GetDirection();
+                    _ret_var = ((Slider)ws.Target).GetOrientation();
                 }
                 catch (Exception e)
                 {
@@ -772,30 +741,30 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
             }
             else
             {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
 
         
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
 
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Slider)wrapper).SetDirection(dir);
+                    ((Slider)ws.Target).SetOrientation(dir);
                 }
                 catch (Exception e)
                 {
@@ -807,11 +776,11 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
             }
             else
             {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
             }
         }
 
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
 
         
         private delegate double efl_ui_range_value_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -824,13 +793,13 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static double range_value_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_range_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Slider)wrapper).GetRangeValue();
+                    _ret_var = ((Slider)ws.Target).GetRangeValue();
                 }
                 catch (Exception e)
                 {
@@ -860,13 +829,13 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static void range_value_set(System.IntPtr obj, System.IntPtr pd, double val)
         {
             Eina.Log.Debug("function efl_ui_range_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Slider)wrapper).SetRangeValue(val);
+                    ((Slider)ws.Target).SetRangeValue(val);
                 }
                 catch (Exception e)
                 {
@@ -895,13 +864,13 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static void range_min_max_get(System.IntPtr obj, System.IntPtr pd, out double min, out double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         min = default(double);        max = default(double);                            
                 try
                 {
-                    ((Slider)wrapper).GetRangeMinMax(out min, out max);
+                    ((Slider)ws.Target).GetRangeMinMax(out min, out max);
                 }
                 catch (Exception e)
                 {
@@ -930,13 +899,13 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static void range_min_max_set(System.IntPtr obj, System.IntPtr pd, double min, double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Slider)wrapper).SetRangeMinMax(min, max);
+                    ((Slider)ws.Target).SetRangeMinMax(min, max);
                 }
                 catch (Exception e)
                 {
@@ -965,13 +934,13 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static double range_step_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_range_step_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Slider)wrapper).GetRangeStep();
+                    _ret_var = ((Slider)ws.Target).GetRangeStep();
                 }
                 catch (Exception e)
                 {
@@ -1001,13 +970,13 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
         private static void range_step_set(System.IntPtr obj, System.IntPtr pd, double step)
         {
             Eina.Log.Debug("function efl_ui_range_step_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Slider)wrapper).SetRangeStep(step);
+                    ((Slider)ws.Target).SetRangeStep(step);
                 }
                 catch (Exception e)
                 {
@@ -1025,7 +994,7 @@ public class Slider : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.U
 
         private static efl_ui_range_step_set_delegate efl_ui_range_step_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index c320e34..c0080f7 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>An interval slider.
 /// This is a slider with two indicators.</summary>
 [Efl.Ui.SliderInterval.NativeMethods]
-public class SliderInterval : Efl.Ui.Slider, Efl.Eo.IWrapper
+public class SliderInterval : Efl.Ui.Slider
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class SliderInterval : Efl.Ui.Slider, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected SliderInterval(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="SliderInterval"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class SliderInterval : Efl.Ui.Slider, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sets up position of two indicators at start and end position.</summary>
     /// <param name="from">interval minimum value</param>
     /// <param name="to">interval maximum value</param>
@@ -149,7 +122,7 @@ public class SliderInterval : Efl.Ui.Slider, Efl.Eo.IWrapper
             return Efl.Ui.SliderInterval.efl_ui_slider_interval_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_slider_interval_value_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double from,  out double to);
@@ -162,13 +135,13 @@ public class SliderInterval : Efl.Ui.Slider, Efl.Eo.IWrapper
         private static void interval_value_get(System.IntPtr obj, System.IntPtr pd, out double from, out double to)
         {
             Eina.Log.Debug("function efl_ui_slider_interval_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         from = default(double);        to = default(double);                            
                 try
                 {
-                    ((SliderInterval)wrapper).GetIntervalValue(out from, out to);
+                    ((SliderInterval)ws.Target).GetIntervalValue(out from, out to);
                 }
                 catch (Exception e)
                 {
@@ -197,13 +170,13 @@ public class SliderInterval : Efl.Ui.Slider, Efl.Eo.IWrapper
         private static void interval_value_set(System.IntPtr obj, System.IntPtr pd, double from, double to)
         {
             Eina.Log.Debug("function efl_ui_slider_interval_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((SliderInterval)wrapper).SetIntervalValue(from, to);
+                    ((SliderInterval)ws.Target).SetIntervalValue(from, to);
                 }
                 catch (Exception e)
                 {
@@ -221,7 +194,7 @@ public class SliderInterval : Efl.Ui.Slider, Efl.Eo.IWrapper
 
         private static efl_ui_slider_interval_value_set_delegate efl_ui_slider_interval_value_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 21c4c5d..80b5b98 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>A Spin.
 /// This is a widget which allows the user to increase or decrease numeric values using user interactions. It&apos;s a basic type of widget for choosing and displaying values.</summary>
 [Efl.Ui.Spin.NativeMethods]
-public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.IFormat,Efl.Ui.IRangeDisplay,Efl.Ui.IRangeInteractive
+public class Spin : Efl.Ui.LayoutBase, Efl.Access.IValue, Efl.Ui.IFormat, Efl.Ui.IRangeDisplay, Efl.Ui.IRangeInteractive
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Spin(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Spin"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when spin changed</summary>
     public event EventHandler ChangedEvt
     {
@@ -96,10 +69,9 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -149,10 +121,9 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -202,10 +173,9 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -390,49 +360,49 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Control special string to display in the place of the numerical value.
-/// It&apos;s useful for cases when a user should select an item that is better indicated by a label than a value. For example, weekdays or months.
-/// 
-/// Note: If another label was previously set to <c>value</c>, it will be replaced by the new label.</summary>
-/// <value>The array of special values, or NULL if none</value>
+    /// It&apos;s useful for cases when a user should select an item that is better indicated by a label than a value. For example, weekdays or months.
+    /// 
+    /// Note: If another label was previously set to <c>value</c>, it will be replaced by the new label.</summary>
+    /// <value>The array of special values, or NULL if none</value>
     public Eina.Array<Efl.Ui.SpinSpecialValue> SpecialValue {
         get { return GetSpecialValue(); }
         set { SetSpecialValue(value); }
     }
     /// <summary>Gets an minimal incrementation value</summary>
-/// <value>Minimal incrementation value</value>
+    /// <value>Minimal incrementation value</value>
     public double Increment {
         get { return GetIncrement(); }
     }
     /// <summary>Set the format function pointer to format the string.</summary>
-/// <value>The format function callback</value>
+    /// <value>The format function callback</value>
     public Efl.Ui.FormatFuncCb FormatCb {
         set { SetFormatCb(value); }
     }
     /// <summary>Control the format string for a given units label
-/// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
-/// 
-/// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
-/// <value>The format string for <c>obj</c>&apos;s units label.</value>
+    /// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
+    /// 
+    /// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
+    /// <value>The format string for <c>obj</c>&apos;s units label.</value>
     public System.String FormatString {
         get { return GetFormatString(); }
         set { SetFormatString(value); }
     }
     /// <summary>Control the range value (in percentage) on a given range widget
-/// Use this call to set range levels.
-/// 
-/// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
-/// <value>The range value (must be between $0.0 and 1.0)</value>
+    /// Use this call to set range levels.
+    /// 
+    /// Note: If you pass a value out of the specified interval for <c>val</c>, it will be interpreted as the closest of the boundary values in the interval.</summary>
+    /// <value>The range value (must be between $0.0 and 1.0)</value>
     public double RangeValue {
         get { return GetRangeValue(); }
         set { SetRangeValue(value); }
     }
     /// <summary>Control the step used to increment or decrement values for given widget.
-/// This value will be incremented or decremented to the displayed value.
-/// 
-/// By default step value is equal to 1.
-/// 
-/// Warning: The step value should be bigger than 0.</summary>
-/// <value>The step value.</value>
+    /// This value will be incremented or decremented to the displayed value.
+    /// 
+    /// By default step value is equal to 1.
+    /// 
+    /// Warning: The step value should be bigger than 0.</summary>
+    /// <value>The step value.</value>
     public double RangeStep {
         get { return GetRangeStep(); }
         set { SetRangeStep(value); }
@@ -613,7 +583,7 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
             return Efl.Ui.Spin.efl_ui_spin_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate System.IntPtr efl_ui_spin_special_value_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -626,13 +596,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static System.IntPtr special_value_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_spin_special_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Array<Efl.Ui.SpinSpecialValue> _ret_var = default(Eina.Array<Efl.Ui.SpinSpecialValue>);
                 try
                 {
-                    _ret_var = ((Spin)wrapper).GetSpecialValue();
+                    _ret_var = ((Spin)ws.Target).GetSpecialValue();
                 }
                 catch (Exception e)
                 {
@@ -662,14 +632,14 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static void special_value_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr values)
         {
             Eina.Log.Debug("function efl_ui_spin_special_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_values = new Eina.Array<Efl.Ui.SpinSpecialValue>(values, false, false);
                             
                 try
                 {
-                    ((Spin)wrapper).SetSpecialValue(_in_values);
+                    ((Spin)ws.Target).SetSpecialValue(_in_values);
                 }
                 catch (Exception e)
                 {
@@ -698,14 +668,14 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static void value_and_text_get(System.IntPtr obj, System.IntPtr pd, out double value, out System.String text)
         {
             Eina.Log.Debug("function efl_access_value_and_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         value = default(double);        System.String _out_text = default(System.String);
                             
                 try
                 {
-                    ((Spin)wrapper).GetValueAndText(out value, out _out_text);
+                    ((Spin)ws.Target).GetValueAndText(out value, out _out_text);
                 }
                 catch (Exception e)
                 {
@@ -735,13 +705,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static bool value_and_text_set(System.IntPtr obj, System.IntPtr pd, double value, System.String text)
         {
             Eina.Log.Debug("function efl_access_value_and_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Spin)wrapper).SetValueAndText(value, text);
+                    _ret_var = ((Spin)ws.Target).SetValueAndText(value, text);
                 }
                 catch (Exception e)
                 {
@@ -771,14 +741,14 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static void range_get(System.IntPtr obj, System.IntPtr pd, out double lower_limit, out double upper_limit, out System.String description)
         {
             Eina.Log.Debug("function efl_access_value_range_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 lower_limit = default(double);        upper_limit = default(double);        System.String _out_description = default(System.String);
                                     
                 try
                 {
-                    ((Spin)wrapper).GetRange(out lower_limit, out upper_limit, out _out_description);
+                    ((Spin)ws.Target).GetRange(out lower_limit, out upper_limit, out _out_description);
                 }
                 catch (Exception e)
                 {
@@ -808,13 +778,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static double increment_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_value_increment_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Spin)wrapper).GetIncrement();
+                    _ret_var = ((Spin)ws.Target).GetIncrement();
                 }
                 catch (Exception e)
                 {
@@ -844,14 +814,14 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static void format_cb_set(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_ui_format_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                             Efl.Ui.FormatFuncCbWrapper func_wrapper = new Efl.Ui.FormatFuncCbWrapper(func, func_data, func_free_cb);
             
                 try
                 {
-                    ((Spin)wrapper).SetFormatCb(func_wrapper.ManagedCb);
+                    ((Spin)ws.Target).SetFormatCb(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -880,13 +850,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static System.String format_string_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_format_string_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Spin)wrapper).GetFormatString();
+                    _ret_var = ((Spin)ws.Target).GetFormatString();
                 }
                 catch (Exception e)
                 {
@@ -916,13 +886,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static void format_string_set(System.IntPtr obj, System.IntPtr pd, System.String units)
         {
             Eina.Log.Debug("function efl_ui_format_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Spin)wrapper).SetFormatString(units);
+                    ((Spin)ws.Target).SetFormatString(units);
                 }
                 catch (Exception e)
                 {
@@ -951,13 +921,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static double range_value_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_range_value_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Spin)wrapper).GetRangeValue();
+                    _ret_var = ((Spin)ws.Target).GetRangeValue();
                 }
                 catch (Exception e)
                 {
@@ -987,13 +957,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static void range_value_set(System.IntPtr obj, System.IntPtr pd, double val)
         {
             Eina.Log.Debug("function efl_ui_range_value_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Spin)wrapper).SetRangeValue(val);
+                    ((Spin)ws.Target).SetRangeValue(val);
                 }
                 catch (Exception e)
                 {
@@ -1022,13 +992,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static void range_min_max_get(System.IntPtr obj, System.IntPtr pd, out double min, out double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         min = default(double);        max = default(double);                            
                 try
                 {
-                    ((Spin)wrapper).GetRangeMinMax(out min, out max);
+                    ((Spin)ws.Target).GetRangeMinMax(out min, out max);
                 }
                 catch (Exception e)
                 {
@@ -1057,13 +1027,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static void range_min_max_set(System.IntPtr obj, System.IntPtr pd, double min, double max)
         {
             Eina.Log.Debug("function efl_ui_range_min_max_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Spin)wrapper).SetRangeMinMax(min, max);
+                    ((Spin)ws.Target).SetRangeMinMax(min, max);
                 }
                 catch (Exception e)
                 {
@@ -1092,13 +1062,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static double range_step_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_range_step_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Spin)wrapper).GetRangeStep();
+                    _ret_var = ((Spin)ws.Target).GetRangeStep();
                 }
                 catch (Exception e)
                 {
@@ -1128,13 +1098,13 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
         private static void range_step_set(System.IntPtr obj, System.IntPtr pd, double step)
         {
             Eina.Log.Debug("function efl_ui_range_step_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Spin)wrapper).SetRangeStep(step);
+                    ((Spin)ws.Target).SetRangeStep(step);
                 }
                 catch (Exception e)
                 {
@@ -1152,7 +1122,7 @@ public class Spin : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Access.IValue,Efl.Ui.
 
         private static efl_ui_range_step_set_delegate efl_ui_range_step_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -1181,12 +1151,16 @@ public struct SpinSpecialValue
         this.Label = Label;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator SpinSpecialValue(IntPtr ptr)
     {
         var tmp = (SpinSpecialValue.NativeStruct)Marshal.PtrToStructure(ptr, typeof(SpinSpecialValue.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct SpinSpecialValue.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1215,6 +1189,8 @@ public struct SpinSpecialValue
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index d8ba0d7..0f92f64 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>A Button Spin.
 /// This is a widget which allows the user to increase or decrease numeric values using the arrow buttons or to edit values directly by clicking over them and inputting new ones.</summary>
 [Efl.Ui.SpinButton.NativeMethods]
-public class SpinButton : Efl.Ui.Spin, Efl.Eo.IWrapper,Efl.Ui.IDirection,Efl.Ui.Focus.IComposition
+public class SpinButton : Efl.Ui.Spin, Efl.Ui.ILayoutOrientable, Efl.Ui.Focus.IComposition
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class SpinButton : Efl.Ui.Spin, Efl.Eo.IWrapper,Efl.Ui.IDirection,Efl.Ui.
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected SpinButton(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="SpinButton"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class SpinButton : Efl.Ui.Spin, Efl.Eo.IWrapper,Efl.Ui.IDirection,Efl.Ui.
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when spin delay is changed.</summary>
     public event EventHandler DelayChangedEvt
     {
@@ -96,10 +69,9 @@ public class SpinButton : Efl.Ui.Spin, Efl.Eo.IWrapper,Efl.Ui.IDirection,Efl.Ui.
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -189,8 +161,8 @@ public class SpinButton : Efl.Ui.Spin, Efl.Eo.IWrapper,Efl.Ui.IDirection,Efl.Ui.
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <returns>Direction of the widget.</returns>
-    virtual public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+    virtual public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
@@ -199,8 +171,8 @@ public class SpinButton : Efl.Ui.Spin, Efl.Eo.IWrapper,Efl.Ui.IDirection,Efl.Ui.
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <param name="dir">Direction of the widget.</param>
-    virtual public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+    virtual public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Set the order of elements that will be used for composition
@@ -257,49 +229,49 @@ logical_order.Own = false;
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Control whether the spin should circulate value when it reaches its minimum or maximum value.
-/// Disabled by default. If disabled, when the user tries to increment the value but displayed value plus step value is bigger than maximum value, the new value will be the maximum value. The same happens when the user tries to decrement it but the value less step is less than minimum value. In this case, the new displayed value will be the minimum value.
-/// 
-/// If enabled, when the user tries to increment the value but displayed value plus step value is bigger than maximum value, the new value will become the minimum value. When the the user tries to decrement it, if the value minus step is less than minimum value, the new displayed value will be the maximum value.
-/// 
-/// E.g.: <c>min</c> = 10 <c>max</c> = 50 <c>step</c> = 20 <c>displayed</c> = 20
-/// 
-/// When the user decrements the value (using left or bottom arrow), it will display $50.</summary>
-/// <value><c>true</c> to enable circulate or <c>false</c> to disable it.</value>
+    /// Disabled by default. If disabled, when the user tries to increment the value but displayed value plus step value is bigger than maximum value, the new value will be the maximum value. The same happens when the user tries to decrement it but the value less step is less than minimum value. In this case, the new displayed value will be the minimum value.
+    /// 
+    /// If enabled, when the user tries to increment the value but displayed value plus step value is bigger than maximum value, the new value will become the minimum value. When the the user tries to decrement it, if the value minus step is less than minimum value, the new displayed value will be the maximum value.
+    /// 
+    /// E.g.: <c>min</c> = 10 <c>max</c> = 50 <c>step</c> = 20 <c>displayed</c> = 20
+    /// 
+    /// When the user decrements the value (using left or bottom arrow), it will display $50.</summary>
+    /// <value><c>true</c> to enable circulate or <c>false</c> to disable it.</value>
     public bool Circulate {
         get { return GetCirculate(); }
         set { SetCirculate(value); }
     }
     /// <summary>Control whether the spin can be directly edited by the user.
-/// Spin objects can have editing disabled, in which case they can only be changed by using arrows. This is useful for situations where you don&apos;t want your users to write their own value. It&apos;s especially useful when using special values. The user can see the real values instead of special label when editing.</summary>
-/// <value><c>true</c> to allow users to edit it or <c>false</c> to don&apos;t allow users to edit it directly.</value>
+    /// Spin objects can have editing disabled, in which case they can only be changed by using arrows. This is useful for situations where you don&apos;t want your users to write their own value. It&apos;s especially useful when using special values. The user can see the real values instead of special label when editing.</summary>
+    /// <value><c>true</c> to allow users to edit it or <c>false</c> to don&apos;t allow users to edit it directly.</value>
     public bool Editable {
         get { return GetEditable(); }
         set { SetEditable(value); }
     }
     /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
     }
     /// <summary>Set the order of elements that will be used for composition
-/// Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
-/// 
-/// If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
-/// 
-/// If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
-/// 
-/// If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.</summary>
-/// <value>The order to use</value>
+    /// Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
+    /// 
+    /// If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
+    /// 
+    /// If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
+    /// 
+    /// If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.</summary>
+    /// <value>The order to use</value>
     public Eina.List<Efl.Gfx.IEntity> CompositionElements {
         get { return GetCompositionElements(); }
         set { SetCompositionElements(value); }
     }
     /// <summary>Set to true if all children should be registered as logicals</summary>
-/// <value><c>true</c> or <c>false</c></value>
+    /// <value><c>true</c> or <c>false</c></value>
     public bool LogicalMode {
         get { return GetLogicalMode(); }
         set { SetLogicalMode(value); }
@@ -360,24 +332,24 @@ logical_order.Own = false;
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_spin_button_editable_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_spin_button_editable_set_static_delegate) });
             }
 
-            if (efl_ui_direction_get_static_delegate == null)
+            if (efl_ui_layout_orientation_get_static_delegate == null)
             {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
             }
 
-            if (efl_ui_direction_set_static_delegate == null)
+            if (efl_ui_layout_orientation_set_static_delegate == null)
             {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
             }
 
             if (efl_ui_focus_composition_elements_get_static_delegate == null)
@@ -450,7 +422,7 @@ logical_order.Own = false;
             return Efl.Ui.SpinButton.efl_ui_spin_button_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_spin_button_circulate_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -463,13 +435,13 @@ logical_order.Own = false;
         private static bool circulate_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_spin_button_circulate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((SpinButton)wrapper).GetCirculate();
+                    _ret_var = ((SpinButton)ws.Target).GetCirculate();
                 }
                 catch (Exception e)
                 {
@@ -499,13 +471,13 @@ logical_order.Own = false;
         private static void circulate_set(System.IntPtr obj, System.IntPtr pd, bool circulate)
         {
             Eina.Log.Debug("function efl_ui_spin_button_circulate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((SpinButton)wrapper).SetCirculate(circulate);
+                    ((SpinButton)ws.Target).SetCirculate(circulate);
                 }
                 catch (Exception e)
                 {
@@ -534,13 +506,13 @@ logical_order.Own = false;
         private static bool editable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_spin_button_editable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((SpinButton)wrapper).GetEditable();
+                    _ret_var = ((SpinButton)ws.Target).GetEditable();
                 }
                 catch (Exception e)
                 {
@@ -570,13 +542,13 @@ logical_order.Own = false;
         private static void editable_set(System.IntPtr obj, System.IntPtr pd, bool editable)
         {
             Eina.Log.Debug("function efl_ui_spin_button_editable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((SpinButton)wrapper).SetEditable(editable);
+                    ((SpinButton)ws.Target).SetEditable(editable);
                 }
                 catch (Exception e)
                 {
@@ -595,23 +567,23 @@ logical_order.Own = false;
         private static efl_ui_spin_button_editable_set_delegate efl_ui_spin_button_editable_set_static_delegate;
 
         
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
 
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
                 try
                 {
-                    _ret_var = ((SpinButton)wrapper).GetDirection();
+                    _ret_var = ((SpinButton)ws.Target).GetOrientation();
                 }
                 catch (Exception e)
                 {
@@ -624,30 +596,30 @@ logical_order.Own = false;
             }
             else
             {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
 
         
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
 
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((SpinButton)wrapper).SetDirection(dir);
+                    ((SpinButton)ws.Target).SetOrientation(dir);
                 }
                 catch (Exception e)
                 {
@@ -659,11 +631,11 @@ logical_order.Own = false;
             }
             else
             {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
             }
         }
 
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
 
         
         private delegate System.IntPtr efl_ui_focus_composition_elements_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -676,13 +648,13 @@ logical_order.Own = false;
         private static System.IntPtr composition_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Gfx.IEntity> _ret_var = default(Eina.List<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((SpinButton)wrapper).GetCompositionElements();
+                    _ret_var = ((SpinButton)ws.Target).GetCompositionElements();
                 }
                 catch (Exception e)
                 {
@@ -712,14 +684,14 @@ logical_order.Own = false;
         private static void composition_elements_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr logical_order)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_elements_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_logical_order = new Eina.List<Efl.Gfx.IEntity>(logical_order, true, false);
                             
                 try
                 {
-                    ((SpinButton)wrapper).SetCompositionElements(_in_logical_order);
+                    ((SpinButton)ws.Target).SetCompositionElements(_in_logical_order);
                 }
                 catch (Exception e)
                 {
@@ -748,13 +720,13 @@ logical_order.Own = false;
         private static bool logical_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_logical_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((SpinButton)wrapper).GetLogicalMode();
+                    _ret_var = ((SpinButton)ws.Target).GetLogicalMode();
                 }
                 catch (Exception e)
                 {
@@ -784,13 +756,13 @@ logical_order.Own = false;
         private static void logical_mode_set(System.IntPtr obj, System.IntPtr pd, bool logical_mode)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_logical_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((SpinButton)wrapper).SetLogicalMode(logical_mode);
+                    ((SpinButton)ws.Target).SetLogicalMode(logical_mode);
                 }
                 catch (Exception e)
                 {
@@ -819,13 +791,13 @@ logical_order.Own = false;
         private static void dirty(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_dirty was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((SpinButton)wrapper).Dirty();
+                    ((SpinButton)ws.Target).Dirty();
                 }
                 catch (Exception e)
                 {
@@ -854,13 +826,13 @@ logical_order.Own = false;
         private static void prepare(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_composition_prepare was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((SpinButton)wrapper).Prepare();
+                    ((SpinButton)ws.Target).Prepare();
                 }
                 catch (Exception e)
                 {
@@ -878,7 +850,7 @@ logical_order.Own = false;
 
         private static efl_ui_focus_composition_prepare_delegate efl_ui_focus_composition_prepare_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index b6c3b7a..d300408 100644 (file)
@@ -32,7 +32,7 @@ public class StackDeactivatedEvt_Args : EventArgs {
 /// <summary>Stack widget.
 /// Stack widget arranges objects in stack structure by pushing and poping them.</summary>
 [Efl.Ui.Stack.NativeMethods]
-public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
+public class Stack : Efl.Ui.LayoutBase
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -71,7 +71,7 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Stack(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Stack"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -82,33 +82,6 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when content is loaded right before transition.</summary>
     public event EventHandler<Efl.Ui.StackLoadedEvt_Args> LoadedEvt
     {
@@ -116,13 +89,12 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.StackLoadedEvt_Args args = new Efl.Ui.StackLoadedEvt_Args();
+                        Efl.Ui.StackLoadedEvt_Args args = new Efl.Ui.StackLoadedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -179,13 +151,12 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.StackUnloadedEvt_Args args = new Efl.Ui.StackUnloadedEvt_Args();
+                        Efl.Ui.StackUnloadedEvt_Args args = new Efl.Ui.StackUnloadedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -242,13 +213,12 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.StackActivatedEvt_Args args = new Efl.Ui.StackActivatedEvt_Args();
+                        Efl.Ui.StackActivatedEvt_Args args = new Efl.Ui.StackActivatedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -305,13 +275,12 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.StackDeactivatedEvt_Args args = new Efl.Ui.StackDeactivatedEvt_Args();
+                        Efl.Ui.StackDeactivatedEvt_Args args = new Efl.Ui.StackDeactivatedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -556,7 +525,7 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
             return Efl.Ui.Stack.efl_ui_stack_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_stack_push_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Object content);
@@ -569,13 +538,13 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void push(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object content)
         {
             Eina.Log.Debug("function efl_ui_stack_push was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Stack)wrapper).Push(content);
+                    ((Stack)ws.Target).Push(content);
                 }
                 catch (Exception e)
                 {
@@ -604,13 +573,13 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static Efl.Canvas.Object pop(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_stack_pop was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Stack)wrapper).Pop();
+                    _ret_var = ((Stack)ws.Target).Pop();
                 }
                 catch (Exception e)
                 {
@@ -640,13 +609,13 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void insert_before(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object base_content, Efl.Canvas.Object content)
         {
             Eina.Log.Debug("function efl_ui_stack_insert_before was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Stack)wrapper).InsertBefore(base_content, content);
+                    ((Stack)ws.Target).InsertBefore(base_content, content);
                 }
                 catch (Exception e)
                 {
@@ -675,13 +644,13 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void insert_after(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object base_content, Efl.Canvas.Object content)
         {
             Eina.Log.Debug("function efl_ui_stack_insert_after was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Stack)wrapper).InsertAfter(base_content, content);
+                    ((Stack)ws.Target).InsertAfter(base_content, content);
                 }
                 catch (Exception e)
                 {
@@ -710,13 +679,13 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void insert_at(System.IntPtr obj, System.IntPtr pd, int index, Efl.Canvas.Object content)
         {
             Eina.Log.Debug("function efl_ui_stack_insert_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Stack)wrapper).InsertAt(index, content);
+                    ((Stack)ws.Target).InsertAt(index, content);
                 }
                 catch (Exception e)
                 {
@@ -745,13 +714,13 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void remove(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object content)
         {
             Eina.Log.Debug("function efl_ui_stack_remove was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Stack)wrapper).Remove(content);
+                    ((Stack)ws.Target).Remove(content);
                 }
                 catch (Exception e)
                 {
@@ -780,13 +749,13 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void remove_at(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_ui_stack_remove_at was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Stack)wrapper).RemoveAt(index);
+                    ((Stack)ws.Target).RemoveAt(index);
                 }
                 catch (Exception e)
                 {
@@ -815,13 +784,13 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static int index_get(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object content)
         {
             Eina.Log.Debug("function efl_ui_stack_index_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Stack)wrapper).GetIndex(content);
+                    _ret_var = ((Stack)ws.Target).GetIndex(content);
                 }
                 catch (Exception e)
                 {
@@ -851,13 +820,13 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static Efl.Canvas.Object content_get(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_ui_stack_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Stack)wrapper).GetContent(index);
+                    _ret_var = ((Stack)ws.Target).GetContent(index);
                 }
                 catch (Exception e)
                 {
@@ -887,13 +856,13 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static Efl.Canvas.Object top(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_stack_top was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Stack)wrapper).Top();
+                    _ret_var = ((Stack)ws.Target).Top();
                 }
                 catch (Exception e)
                 {
@@ -912,7 +881,7 @@ public class Stack : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
 
         private static efl_ui_stack_top_delegate efl_ui_stack_top_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -937,12 +906,16 @@ public struct StackEventLoaded
         this.Content = Content;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator StackEventLoaded(IntPtr ptr)
     {
         var tmp = (StackEventLoaded.NativeStruct)Marshal.PtrToStructure(ptr, typeof(StackEventLoaded.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct StackEventLoaded.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -968,6 +941,8 @@ public struct StackEventLoaded
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -991,12 +966,16 @@ public struct StackEventUnloaded
         this.Content = Content;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator StackEventUnloaded(IntPtr ptr)
     {
         var tmp = (StackEventUnloaded.NativeStruct)Marshal.PtrToStructure(ptr, typeof(StackEventUnloaded.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct StackEventUnloaded.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1022,6 +1001,8 @@ public struct StackEventUnloaded
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -1045,12 +1026,16 @@ public struct StackEventActivated
         this.Content = Content;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator StackEventActivated(IntPtr ptr)
     {
         var tmp = (StackEventActivated.NativeStruct)Marshal.PtrToStructure(ptr, typeof(StackEventActivated.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct StackEventActivated.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1076,6 +1061,8 @@ public struct StackEventActivated
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -1099,12 +1086,16 @@ public struct StackEventDeactivated
         this.Content = Content;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator StackEventDeactivated(IntPtr ptr)
     {
         var tmp = (StackEventDeactivated.NativeStruct)Marshal.PtrToStructure(ptr, typeof(StackEventDeactivated.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct StackEventDeactivated.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -1130,6 +1121,8 @@ public struct StackEventDeactivated
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 4977211..781d306 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Tab Bar class</summary>
 [Efl.Ui.TabBar.NativeMethods]
-public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
+public class TabBar : Efl.Ui.LayoutBase
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TabBar(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TabBar"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,465 +61,6 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is pressed</summary>
-    public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event PressedEvt.</summary>
-    public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object is no longer pressed</summary>
-    public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event UnpressedEvt.</summary>
-    public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives a long press</summary>
-    public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event LongpressedEvt.</summary>
-    public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
-        {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
-        }
-    }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
     virtual public int GetCurrentTab() {
          var _ret_var = Efl.Ui.TabBar.NativeMethods.efl_ui_tab_bar_current_tab_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
@@ -550,7 +91,7 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
                                                          Efl.Ui.TabBar.NativeMethods.efl_ui_tab_bar_tab_icon_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),index, icon);
         Eina.Error.RaiseIfUnhandledException();
                                          }
-        public int CurrentTab {
+    public int CurrentTab {
         get { return GetCurrentTab(); }
         set { SetCurrentTab(value); }
     }
@@ -650,7 +191,7 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
             return Efl.Ui.TabBar.efl_ui_tab_bar_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_ui_tab_bar_current_tab_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -663,13 +204,13 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
         private static int current_tab_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_tab_bar_current_tab_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((TabBar)wrapper).GetCurrentTab();
+                    _ret_var = ((TabBar)ws.Target).GetCurrentTab();
                 }
                 catch (Exception e)
                 {
@@ -699,13 +240,13 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
         private static void current_tab_set(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_ui_tab_bar_current_tab_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((TabBar)wrapper).SetCurrentTab(index);
+                    ((TabBar)ws.Target).SetCurrentTab(index);
                 }
                 catch (Exception e)
                 {
@@ -734,13 +275,13 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
         private static uint tab_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_tab_bar_tab_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((TabBar)wrapper).TabCount();
+                    _ret_var = ((TabBar)ws.Target).TabCount();
                 }
                 catch (Exception e)
                 {
@@ -770,13 +311,13 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
         private static void tab_add(System.IntPtr obj, System.IntPtr pd, int index, System.String label, System.String icon)
         {
             Eina.Log.Debug("function efl_ui_tab_bar_tab_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((TabBar)wrapper).AddTab(index, label, icon);
+                    ((TabBar)ws.Target).AddTab(index, label, icon);
                 }
                 catch (Exception e)
                 {
@@ -805,13 +346,13 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
         private static void tab_remove(System.IntPtr obj, System.IntPtr pd, int index)
         {
             Eina.Log.Debug("function efl_ui_tab_bar_tab_remove was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((TabBar)wrapper).TabRemove(index);
+                    ((TabBar)ws.Target).TabRemove(index);
                 }
                 catch (Exception e)
                 {
@@ -840,13 +381,13 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
         private static void tab_label_set(System.IntPtr obj, System.IntPtr pd, int index, System.String label)
         {
             Eina.Log.Debug("function efl_ui_tab_bar_tab_label_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((TabBar)wrapper).SetTabLabel(index, label);
+                    ((TabBar)ws.Target).SetTabLabel(index, label);
                 }
                 catch (Exception e)
                 {
@@ -875,13 +416,13 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
         private static void tab_icon_set(System.IntPtr obj, System.IntPtr pd, int index, System.String icon)
         {
             Eina.Log.Debug("function efl_ui_tab_bar_tab_icon_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((TabBar)wrapper).SetTabIcon(index, icon);
+                    ((TabBar)ws.Target).SetTabIcon(index, icon);
                 }
                 catch (Exception e)
                 {
@@ -899,7 +440,7 @@ public class TabBar : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.Ui.IClickable
 
         private static efl_ui_tab_bar_tab_icon_set_delegate efl_ui_tab_bar_tab_icon_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 707b5ab..d3a2268 100644 (file)
@@ -16,7 +16,7 @@ public class TabPageTabChangedEvt_Args : EventArgs {
 }
 /// <summary>Tab Page class</summary>
 [Efl.Ui.TabPage.NativeMethods]
-public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
+public class TabPage : Efl.Ui.LayoutBase, Efl.IContent
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -55,7 +55,7 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TabPage(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TabPage"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -66,33 +66,6 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when tab changed</summary>
     public event EventHandler<Efl.Ui.TabPageTabChangedEvt_Args> TabChangedEvt
     {
@@ -100,13 +73,12 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TabPageTabChangedEvt_Args args = new Efl.Ui.TabPageTabChangedEvt_Args();
+                        Efl.Ui.TabPageTabChangedEvt_Args args = new Efl.Ui.TabPageTabChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -164,13 +136,12 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -212,7 +183,7 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-        public Efl.Ui.TabPagePartTab Tab
+    public Efl.Ui.TabPagePartTab TabPart
     {
         get
         {
@@ -247,9 +218,9 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         return _ret_var;
  }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
@@ -310,7 +281,7 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
             return Efl.Ui.TabPage.efl_ui_tab_page_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -323,13 +294,13 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((TabPage)wrapper).GetContent();
+                    _ret_var = ((TabPage)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -359,13 +330,13 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((TabPage)wrapper).SetContent(content);
+                    _ret_var = ((TabPage)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -395,13 +366,13 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((TabPage)wrapper).UnsetContent();
+                    _ret_var = ((TabPage)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -420,7 +391,7 @@ public class TabPage : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IContent
 
         private static efl_content_unset_delegate efl_content_unset_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -452,7 +423,7 @@ namespace Ui {
 [StructLayout(LayoutKind.Sequential)]
 public struct TabPageTabChangedEvent
 {
-        public Efl.Ui.TabPageTabChanged Changed_info;
+    public Efl.Ui.TabPageTabChanged Changed_info;
     ///<summary>Constructor for TabPageTabChangedEvent.</summary>
     public TabPageTabChangedEvent(
         Efl.Ui.TabPageTabChanged Changed_info = default(Efl.Ui.TabPageTabChanged)    )
@@ -460,12 +431,16 @@ public struct TabPageTabChangedEvent
         this.Changed_info = Changed_info;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator TabPageTabChangedEvent(IntPtr ptr)
     {
         var tmp = (TabPageTabChangedEvent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(TabPageTabChangedEvent.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct TabPageTabChangedEvent.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -490,6 +465,8 @@ public struct TabPageTabChangedEvent
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 69dfc43..6138536 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Tab_Page internal part class</summary>
 [Efl.Ui.TabPagePartTab.NativeMethods]
-public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText
+public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.IText
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TabPagePartTab(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TabPagePartTab"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     virtual public System.String GetIcon() {
          var _ret_var = Efl.Ui.TabPagePartTab.NativeMethods.efl_ui_tab_page_part_tab_icon_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
@@ -110,7 +83,7 @@ public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText
                                  Efl.ITextConcrete.NativeMethods.efl_text_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),text);
         Eina.Error.RaiseIfUnhandledException();
                          }
-        public System.String Icon {
+    public System.String Icon {
         get { return GetIcon(); }
         set { SetIcon(value); }
     }
@@ -180,7 +153,7 @@ public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText
             return Efl.Ui.TabPagePartTab.efl_ui_tab_page_part_tab_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_ui_tab_page_part_tab_icon_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -193,13 +166,13 @@ public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText
         private static System.String icon_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_tab_page_part_tab_icon_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((TabPagePartTab)wrapper).GetIcon();
+                    _ret_var = ((TabPagePartTab)ws.Target).GetIcon();
                 }
                 catch (Exception e)
                 {
@@ -229,13 +202,13 @@ public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText
         private static void icon_set(System.IntPtr obj, System.IntPtr pd, System.String path)
         {
             Eina.Log.Debug("function efl_ui_tab_page_part_tab_icon_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((TabPagePartTab)wrapper).SetIcon(path);
+                    ((TabPagePartTab)ws.Target).SetIcon(path);
                 }
                 catch (Exception e)
                 {
@@ -264,13 +237,13 @@ public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((TabPagePartTab)wrapper).GetText();
+                    _ret_var = ((TabPagePartTab)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -300,13 +273,13 @@ public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((TabPagePartTab)wrapper).SetText(text);
+                    ((TabPagePartTab)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -324,7 +297,7 @@ public class TabPagePartTab : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IText
 
         private static efl_text_set_delegate efl_text_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 102b88e..a153cbb 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Tab Pager class</summary>
 [Efl.Ui.TabPager.NativeMethods]
-public class TabPager : Efl.Ui.Pager, Efl.Eo.IWrapper
+public class TabPager : Efl.Ui.ActiveView.Container
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class TabPager : Efl.Ui.Pager, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TabPager(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TabPager"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class TabPager : Efl.Ui.Pager, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     virtual public Efl.Canvas.Object GetTabBar() {
          var _ret_var = Efl.Ui.TabPager.NativeMethods.efl_ui_tab_pager_tab_bar_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
@@ -97,7 +70,7 @@ public class TabPager : Efl.Ui.Pager, Efl.Eo.IWrapper
                                  Efl.Ui.TabPager.NativeMethods.efl_ui_tab_pager_tab_bar_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),tab_bar);
         Eina.Error.RaiseIfUnhandledException();
                          }
-        public Efl.Canvas.Object TabBar {
+    public Efl.Canvas.Object TabBar {
         get { return GetTabBar(); }
         set { SetTabBar(value); }
     }
@@ -107,7 +80,7 @@ public class TabPager : Efl.Ui.Pager, Efl.Eo.IWrapper
     }
     /// <summary>Wrapper for native methods and virtual method delegates.
     /// For internal use by generated code only.</summary>
-    public new class NativeMethods : Efl.Ui.Pager.NativeMethods
+    public new class NativeMethods : Efl.Ui.ActiveView.Container.NativeMethods
     {
         private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(    efl.Libs.Elementary);
         /// <summary>Gets the list of Eo operations to override.</summary>
@@ -147,7 +120,7 @@ public class TabPager : Efl.Ui.Pager, Efl.Eo.IWrapper
             return Efl.Ui.TabPager.efl_ui_tab_pager_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Canvas.Object efl_ui_tab_pager_tab_bar_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -160,13 +133,13 @@ public class TabPager : Efl.Ui.Pager, Efl.Eo.IWrapper
         private static Efl.Canvas.Object tab_bar_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_tab_pager_tab_bar_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((TabPager)wrapper).GetTabBar();
+                    _ret_var = ((TabPager)ws.Target).GetTabBar();
                 }
                 catch (Exception e)
                 {
@@ -196,13 +169,13 @@ public class TabPager : Efl.Ui.Pager, Efl.Eo.IWrapper
         private static void tab_bar_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object tab_bar)
         {
             Eina.Log.Debug("function efl_ui_tab_pager_tab_bar_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((TabPager)wrapper).SetTabBar(tab_bar);
+                    ((TabPager)ws.Target).SetTabBar(tab_bar);
                 }
                 catch (Exception e)
                 {
@@ -220,7 +193,7 @@ public class TabPager : Efl.Ui.Pager, Efl.Eo.IWrapper
 
         private static efl_ui_tab_pager_tab_bar_set_delegate efl_ui_tab_pager_tab_bar_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 9217813..0b80f4c 100644 (file)
@@ -9,9 +9,10 @@ namespace Efl {
 
 namespace Ui {
 
-/// <summary>Efl UI table class</summary>
+/// <summary>Widget container that arranges its elements in a grid.
+/// The amount of rows and columns can be controlled with <see cref="Efl.IPackTable.TableRows"/> and <see cref="Efl.IPackTable.TableColumns"/>, and elements can be manually positioned with <see cref="Efl.IPackTable.PackTable"/>. Additionally, a fill direction can be defined with <see cref="Efl.Ui.ILayoutOrientable.Orientation"/> and elements added with <see cref="Efl.IPack.Pack"/>. Elements are then added following this direction (horizontal or vertical) and when the amount of columns or rows has been reached, a step is taken in the orthogonal direction. In this second case there is no need to define both the amount of columns and rows, as the table will expand as needed. The default fill direction is <see cref="Efl.Ui.LayoutOrientation.Horizontal"/>.</summary>
 [Efl.Ui.Table.NativeMethods]
-public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl.IPackLayout,Efl.IPackTable,Efl.Ui.IDirection
+public class Table : Efl.Ui.Widget, Efl.IContainer, Efl.IPack, Efl.IPackLayout, Efl.IPackTable, Efl.Gfx.IArrangement, Efl.Ui.ILayoutOrientable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +51,7 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Table(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Table"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,34 +62,7 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    /// <summary>Sent after a new item was added.
+    /// <summary>Sent after a new sub-object was added.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentAddedEvt_Args> ContentAddedEvt
     {
@@ -96,13 +70,12 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
+                        Efl.IContainerContentAddedEvt_Args args = new Efl.IContainerContentAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -144,7 +117,7 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         IntPtr info = e.arg.NativeHandle;
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Sent after an item was removed, before unref.
+    /// <summary>Sent after a sub-object was removed, before unref.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContainerContentRemovedEvt_Args> ContentRemovedEvt
     {
@@ -152,13 +125,12 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
+                        Efl.IContainerContentRemovedEvt_Args args = new Efl.IContainerContentRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -207,10 +179,9 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -271,78 +242,48 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
                                          }
     /// <summary>Begin iterating over this object&apos;s contents.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Iterator to object content</returns>
+    /// <returns>Iterator on object&apos;s content.</returns>
     virtual public Eina.Iterator<Efl.Gfx.IEntity> ContentIterate() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_iterate_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return new Eina.Iterator<Efl.Gfx.IEntity>(_ret_var, true, false);
  }
-    /// <summary>Returns the number of UI elements packed in this container.
+    /// <summary>Returns the number of contained sub-objects.
     /// (Since EFL 1.22)</summary>
-    /// <returns>Number of packed UI elements</returns>
+    /// <returns>Number of sub-objects.</returns>
     virtual public int ContentCount() {
          var _ret_var = Efl.IContainerConcrete.NativeMethods.efl_content_count_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void GetPackAlign(out double align_horiz, out double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Alignment of the container within its bounds</summary>
-    /// <param name="align_horiz">Horizontal alignment</param>
-    /// <param name="align_vert">Vertical alignment</param>
-    virtual public void SetPackAlign(double align_horiz, double align_vert) {
-                                                         Efl.IPackConcrete.NativeMethods.efl_pack_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void GetPackPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Padding between items contained in this object.</summary>
-    /// <param name="pad_horiz">Horizontal padding</param>
-    /// <param name="pad_vert">Vertical padding</param>
-    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
-    virtual public void SetPackPadding(double pad_horiz, double pad_vert, bool scalable) {
-                                                                                 Efl.IPackConcrete.NativeMethods.efl_pack_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
-        Eina.Error.RaiseIfUnhandledException();
-                                                         }
-    /// <summary>Removes all packed contents, and unreferences them.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <summary>Removes all packed sub-objects and unreferences them.</summary>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool ClearPack() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_clear_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes all packed contents, without unreferencing them.
+    /// <summary>Removes all packed sub-objects without unreferencing them.
     /// Use with caution.</summary>
-    /// <returns><c>true</c> on success, <c>false</c> otherwise</returns>
+    /// <returns><c>true</c> on success, <c>false</c> otherwise.</returns>
     virtual public bool UnpackAll() {
          var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_all_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Removes an existing item from the container, without deleting it.</summary>
-    /// <param name="subobj">The unpacked object.</param>
-    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t a child or can&apos;t be removed</returns>
+    /// <summary>Removes an existing sub-object from the container without deleting it.</summary>
+    /// <param name="subobj">The sub-object to unpack.</param>
+    /// <returns><c>false</c> if <c>subobj</c> wasn&apos;t in the container or couldn&apos;t be removed.</returns>
     virtual public bool Unpack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_unpack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
-    /// <summary>Adds an item to this container.
+    /// <summary>Adds a sub-object to this container.
     /// Depending on the container this will either fill in the default spot, replacing any already existing element or append to the end of the container if there is no default part.
     /// 
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
-    /// <param name="subobj">An object to pack.</param>
+    /// <param name="subobj">The object to pack.</param>
     /// <returns><c>false</c> if <c>subobj</c> could not be packed.</returns>
     virtual public bool Pack(Efl.Gfx.IEntity subobj) {
                                  var _ret_var = Efl.IPackConcrete.NativeMethods.efl_pack_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),subobj);
@@ -389,48 +330,32 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
                                                          Efl.IPackTableConcrete.NativeMethods.efl_pack_table_size_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cols, rows);
         Eina.Error.RaiseIfUnhandledException();
                                          }
-    /// <summary>Gird columns property</summary>
-    /// <returns>Number of columns</returns>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <returns>Amount of columns.</returns>
     virtual public int GetTableColumns() {
          var _ret_var = Efl.IPackTableConcrete.NativeMethods.efl_pack_table_columns_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Specifies limit for linear adds - if direction is horizontal</summary>
-    /// <param name="cols">Number of columns</param>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <param name="cols">Amount of columns.</param>
     virtual public void SetTableColumns(int cols) {
                                  Efl.IPackTableConcrete.NativeMethods.efl_pack_table_columns_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),cols);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Table rows property</summary>
-    /// <returns>Number of rows</returns>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <returns>Amount of rows.</returns>
     virtual public int GetTableRows() {
          var _ret_var = Efl.IPackTableConcrete.NativeMethods.efl_pack_table_rows_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
-    /// <summary>Specifies limit for linear adds - if direction is vertical</summary>
-    /// <param name="rows">Number of rows</param>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <param name="rows">Amount of rows.</param>
     virtual public void SetTableRows(int rows) {
                                  Efl.IPackTableConcrete.NativeMethods.efl_pack_table_rows_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),rows);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Primary and secondary up/left/right/down directions for linear apis.
-    /// Default is horizontal and vertical. This overrides <see cref="Efl.Ui.IDirection.Direction"/>.</summary>
-    /// <param name="primary">Primary direction</param>
-    /// <param name="secondary">Secondary direction</param>
-    virtual public void GetTableDirection(out Efl.Ui.Dir primary, out Efl.Ui.Dir secondary) {
-                                                         Efl.IPackTableConcrete.NativeMethods.efl_pack_table_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out primary, out secondary);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
-    /// <summary>Primary and secondary up/left/right/down directions for linear apis.
-    /// Default is horizontal and vertical. This overrides <see cref="Efl.Ui.IDirection.Direction"/>.</summary>
-    /// <param name="primary">Primary direction</param>
-    /// <param name="secondary">Secondary direction</param>
-    virtual public void SetTableDirection(Efl.Ui.Dir primary, Efl.Ui.Dir secondary) {
-                                                         Efl.IPackTableConcrete.NativeMethods.efl_pack_table_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),primary, secondary);
-        Eina.Error.RaiseIfUnhandledException();
-                                         }
     /// <summary>Pack object at a given location in the table.
     /// When this container is deleted, it will request deletion of the given <c>subobj</c>. Use <see cref="Efl.IPack.Unpack"/> to remove <c>subobj</c> from this container without deleting it.</summary>
     /// <param name="subobj">A child object to pack in this table.</param>
@@ -463,13 +388,43 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
+    /// <summary>Alignment of the container within its bounds</summary>
+    /// <param name="align_horiz">Horizontal alignment</param>
+    /// <param name="align_vert">Vertical alignment</param>
+    virtual public void GetContentAlign(out double align_horiz, out double align_vert) {
+                                                         Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_align_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out align_horiz, out align_vert);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Alignment of the container within its bounds</summary>
+    /// <param name="align_horiz">Horizontal alignment</param>
+    /// <param name="align_vert">Vertical alignment</param>
+    virtual public void SetContentAlign(double align_horiz, double align_vert) {
+                                                         Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_align_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),align_horiz, align_vert);
+        Eina.Error.RaiseIfUnhandledException();
+                                         }
+    /// <summary>Padding between items contained in this object.</summary>
+    /// <param name="pad_horiz">Horizontal padding</param>
+    /// <param name="pad_vert">Vertical padding</param>
+    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+    virtual public void GetContentPadding(out double pad_horiz, out double pad_vert, out bool scalable) {
+                                                                                 Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_padding_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),out pad_horiz, out pad_vert, out scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
+    /// <summary>Padding between items contained in this object.</summary>
+    /// <param name="pad_horiz">Horizontal padding</param>
+    /// <param name="pad_vert">Vertical padding</param>
+    /// <param name="scalable"><c>true</c> if scalable, <c>false</c> otherwise</param>
+    virtual public void SetContentPadding(double pad_horiz, double pad_vert, bool scalable) {
+                                                                                 Efl.Gfx.IArrangementConcrete.NativeMethods.efl_gfx_arrangement_content_padding_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),pad_horiz, pad_vert, scalable);
+        Eina.Error.RaiseIfUnhandledException();
+                                                         }
     /// <summary>Control the direction of a given widget.
     /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <returns>Direction of the widget.</returns>
-    virtual public Efl.Ui.Dir GetDirection() {
-         var _ret_var = Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+    virtual public Efl.Ui.LayoutOrientation GetOrientation() {
+         var _ret_var = Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
@@ -478,30 +433,30 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
     /// 
     /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
     /// <param name="dir">Direction of the widget.</param>
-    virtual public void SetDirection(Efl.Ui.Dir dir) {
-                                 Efl.Ui.IDirectionConcrete.NativeMethods.efl_ui_direction_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
+    virtual public void SetOrientation(Efl.Ui.LayoutOrientation dir) {
+                                 Efl.Ui.ILayoutOrientableConcrete.NativeMethods.efl_ui_layout_orientation_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),dir);
         Eina.Error.RaiseIfUnhandledException();
                          }
-    /// <summary>Gird columns property</summary>
-/// <value>Number of columns</value>
+    /// <summary>Specifies the amount of columns the table will have when the fill direction is horizontal. If it is vertical, the amount of columns depends on the amount of cells added and <see cref="Efl.IPackTable.TableRows"/>.</summary>
+    /// <value>Amount of columns.</value>
     public int TableColumns {
         get { return GetTableColumns(); }
         set { SetTableColumns(value); }
     }
-    /// <summary>Table rows property</summary>
-/// <value>Number of rows</value>
+    /// <summary>Specifies the amount of rows the table will have when the fill direction is vertical. If it is horizontal, the amount of rows depends on the amount of cells added and <see cref="Efl.IPackTable.TableColumns"/>.</summary>
+    /// <value>Amount of rows.</value>
     public int TableRows {
         get { return GetTableRows(); }
         set { SetTableRows(value); }
     }
     /// <summary>Control the direction of a given widget.
-/// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
-/// 
-/// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
-/// <value>Direction of the widget.</value>
-    public Efl.Ui.Dir Direction {
-        get { return GetDirection(); }
-        set { SetDirection(value); }
+    /// Use this function to change how your widget is to be disposed: vertically or horizontally or inverted vertically or inverted horizontally.
+    /// 
+    /// Mirroring as defined in <see cref="Efl.Ui.II18n"/> can invert the <c>horizontal</c> direction: it is <c>ltr</c> by default, but becomes <c>rtl</c> if the object is mirrored.</summary>
+    /// <value>Direction of the widget.</value>
+    public Efl.Ui.LayoutOrientation Orientation {
+        get { return GetOrientation(); }
+        set { SetOrientation(value); }
     }
     private static IntPtr GetEflClassStatic()
     {
@@ -559,46 +514,6 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_content_count"), func = Marshal.GetFunctionPointerForDelegate(efl_content_count_static_delegate) });
             }
 
-            if (efl_pack_align_get_static_delegate == null)
-            {
-                efl_pack_align_get_static_delegate = new efl_pack_align_get_delegate(pack_align_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_get_static_delegate) });
-            }
-
-            if (efl_pack_align_set_static_delegate == null)
-            {
-                efl_pack_align_set_static_delegate = new efl_pack_align_set_delegate(pack_align_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackAlign") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_align_set_static_delegate) });
-            }
-
-            if (efl_pack_padding_get_static_delegate == null)
-            {
-                efl_pack_padding_get_static_delegate = new efl_pack_padding_get_delegate(pack_padding_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_get_static_delegate) });
-            }
-
-            if (efl_pack_padding_set_static_delegate == null)
-            {
-                efl_pack_padding_set_static_delegate = new efl_pack_padding_set_delegate(pack_padding_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetPackPadding") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_padding_set_static_delegate) });
-            }
-
             if (efl_pack_clear_static_delegate == null)
             {
                 efl_pack_clear_static_delegate = new efl_pack_clear_delegate(pack_clear);
@@ -729,26 +644,6 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_rows_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_rows_set_static_delegate) });
             }
 
-            if (efl_pack_table_direction_get_static_delegate == null)
-            {
-                efl_pack_table_direction_get_static_delegate = new efl_pack_table_direction_get_delegate(table_direction_get);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "GetTableDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_direction_get_static_delegate) });
-            }
-
-            if (efl_pack_table_direction_set_static_delegate == null)
-            {
-                efl_pack_table_direction_set_static_delegate = new efl_pack_table_direction_set_delegate(table_direction_set);
-            }
-
-            if (methods.FirstOrDefault(m => m.Name == "SetTableDirection") != null)
-            {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_direction_set_static_delegate) });
-            }
-
             if (efl_pack_table_static_delegate == null)
             {
                 efl_pack_table_static_delegate = new efl_pack_table_delegate(pack_table);
@@ -779,24 +674,64 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_pack_table_content_get"), func = Marshal.GetFunctionPointerForDelegate(efl_pack_table_content_get_static_delegate) });
             }
 
-            if (efl_ui_direction_get_static_delegate == null)
+            if (efl_gfx_arrangement_content_align_get_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_align_get_static_delegate = new efl_gfx_arrangement_content_align_get_delegate(content_align_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetContentAlign") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_align_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_align_get_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_align_set_static_delegate == null)
             {
-                efl_ui_direction_get_static_delegate = new efl_ui_direction_get_delegate(direction_get);
+                efl_gfx_arrangement_content_align_set_static_delegate = new efl_gfx_arrangement_content_align_set_delegate(content_align_set);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "GetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "SetContentAlign") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_get_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_align_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_align_set_static_delegate) });
             }
 
-            if (efl_ui_direction_set_static_delegate == null)
+            if (efl_gfx_arrangement_content_padding_get_static_delegate == null)
             {
-                efl_ui_direction_set_static_delegate = new efl_ui_direction_set_delegate(direction_set);
+                efl_gfx_arrangement_content_padding_get_static_delegate = new efl_gfx_arrangement_content_padding_get_delegate(content_padding_get);
             }
 
-            if (methods.FirstOrDefault(m => m.Name == "SetDirection") != null)
+            if (methods.FirstOrDefault(m => m.Name == "GetContentPadding") != null)
             {
-                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_direction_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_direction_set_static_delegate) });
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_padding_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_padding_get_static_delegate) });
+            }
+
+            if (efl_gfx_arrangement_content_padding_set_static_delegate == null)
+            {
+                efl_gfx_arrangement_content_padding_set_static_delegate = new efl_gfx_arrangement_content_padding_set_delegate(content_padding_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetContentPadding") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_arrangement_content_padding_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_arrangement_content_padding_set_static_delegate) });
+            }
+
+            if (efl_ui_layout_orientation_get_static_delegate == null)
+            {
+                efl_ui_layout_orientation_get_static_delegate = new efl_ui_layout_orientation_get_delegate(orientation_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_get"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_get_static_delegate) });
+            }
+
+            if (efl_ui_layout_orientation_set_static_delegate == null)
+            {
+                efl_ui_layout_orientation_set_static_delegate = new efl_ui_layout_orientation_set_delegate(orientation_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetOrientation") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_layout_orientation_set"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_layout_orientation_set_static_delegate) });
             }
 
             descs.AddRange(base.GetEoOps(type));
@@ -809,7 +744,7 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
             return Efl.Ui.Table.efl_ui_table_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_table_homogeneous_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] out bool homogeneoush, [MarshalAs(UnmanagedType.U1)] out bool homogeneousv);
@@ -822,13 +757,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static void homogeneous_get(System.IntPtr obj, System.IntPtr pd, out bool homogeneoush, out bool homogeneousv)
         {
             Eina.Log.Debug("function efl_ui_table_homogeneous_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         homogeneoush = default(bool);        homogeneousv = default(bool);                            
                 try
                 {
-                    ((Table)wrapper).GetHomogeneous(out homogeneoush, out homogeneousv);
+                    ((Table)ws.Target).GetHomogeneous(out homogeneoush, out homogeneousv);
                 }
                 catch (Exception e)
                 {
@@ -857,13 +792,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static void homogeneous_set(System.IntPtr obj, System.IntPtr pd, bool homogeneoush, bool homogeneousv)
         {
             Eina.Log.Debug("function efl_ui_table_homogeneous_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Table)wrapper).SetHomogeneous(homogeneoush, homogeneousv);
+                    ((Table)ws.Target).SetHomogeneous(homogeneoush, homogeneousv);
                 }
                 catch (Exception e)
                 {
@@ -892,13 +827,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static System.IntPtr content_iterate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((Table)wrapper).ContentIterate();
+                    _ret_var = ((Table)ws.Target).ContentIterate();
                 }
                 catch (Exception e)
                 {
@@ -928,13 +863,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static int content_count(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_count was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Table)wrapper).ContentCount();
+                    _ret_var = ((Table)ws.Target).ContentCount();
                 }
                 catch (Exception e)
                 {
@@ -953,146 +888,6 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
 
         private static efl_content_count_delegate efl_content_count_static_delegate;
 
-        
-        private delegate void efl_pack_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
-
-        
-        public delegate void efl_pack_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate> efl_pack_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_get_api_delegate>(Module, "efl_pack_align_get");
-
-        private static void pack_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                        align_horiz = default(double);        align_vert = default(double);                            
-                try
-                {
-                    ((Table)wrapper).GetPackAlign(out align_horiz, out align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
-            }
-        }
-
-        private static efl_pack_align_get_delegate efl_pack_align_get_static_delegate;
-
-        
-        private delegate void efl_pack_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
-
-        
-        public delegate void efl_pack_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate> efl_pack_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_align_set_api_delegate>(Module, "efl_pack_align_set");
-
-        private static void pack_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
-        {
-            Eina.Log.Debug("function efl_pack_align_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                            
-                try
-                {
-                    ((Table)wrapper).SetPackAlign(align_horiz, align_vert);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                        
-            }
-            else
-            {
-                efl_pack_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
-            }
-        }
-
-        private static efl_pack_align_set_delegate efl_pack_align_set_static_delegate;
-
-        
-        private delegate void efl_pack_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        
-        public delegate void efl_pack_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate> efl_pack_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_get_api_delegate>(Module, "efl_pack_padding_get");
-
-        private static void pack_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
-                try
-                {
-                    ((Table)wrapper).GetPackPadding(out pad_horiz, out pad_vert, out scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
-            }
-        }
-
-        private static efl_pack_padding_get_delegate efl_pack_padding_get_static_delegate;
-
-        
-        private delegate void efl_pack_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        
-        public delegate void efl_pack_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
-
-        public static Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate> efl_pack_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_padding_set_api_delegate>(Module, "efl_pack_padding_set");
-
-        private static void pack_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
-        {
-            Eina.Log.Debug("function efl_pack_padding_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
-            {
-                                                                                    
-                try
-                {
-                    ((Table)wrapper).SetPackPadding(pad_horiz, pad_vert, scalable);
-                }
-                catch (Exception e)
-                {
-                    Eina.Log.Warning($"Callback error: {e.ToString()}");
-                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                }
-
-                                                        
-            }
-            else
-            {
-                efl_pack_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
-            }
-        }
-
-        private static efl_pack_padding_set_delegate efl_pack_padding_set_static_delegate;
-
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_pack_clear_delegate(System.IntPtr obj, System.IntPtr pd);
 
@@ -1104,13 +899,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static bool pack_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Table)wrapper).ClearPack();
+                    _ret_var = ((Table)ws.Target).ClearPack();
                 }
                 catch (Exception e)
                 {
@@ -1140,13 +935,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static bool unpack_all(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_unpack_all was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Table)wrapper).UnpackAll();
+                    _ret_var = ((Table)ws.Target).UnpackAll();
                 }
                 catch (Exception e)
                 {
@@ -1176,13 +971,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static bool unpack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack_unpack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Table)wrapper).Unpack(subobj);
+                    _ret_var = ((Table)ws.Target).Unpack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1212,13 +1007,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static bool pack(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj)
         {
             Eina.Log.Debug("function efl_pack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Table)wrapper).Pack(subobj);
+                    _ret_var = ((Table)ws.Target).Pack(subobj);
                 }
                 catch (Exception e)
                 {
@@ -1248,13 +1043,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static void layout_request(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_request was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Table)wrapper).LayoutRequest();
+                    ((Table)ws.Target).LayoutRequest();
                 }
                 catch (Exception e)
                 {
@@ -1283,13 +1078,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static void layout_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_layout_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Table)wrapper).UpdateLayout();
+                    ((Table)ws.Target).UpdateLayout();
                 }
                 catch (Exception e)
                 {
@@ -1318,13 +1113,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static bool table_position_get(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, out int col, out int row, out int colspan, out int rowspan)
         {
             Eina.Log.Debug("function efl_pack_table_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                         col = default(int);        row = default(int);        colspan = default(int);        rowspan = default(int);                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Table)wrapper).GetTablePosition(subobj, out col, out row, out colspan, out rowspan);
+                    _ret_var = ((Table)ws.Target).GetTablePosition(subobj, out col, out row, out colspan, out rowspan);
                 }
                 catch (Exception e)
                 {
@@ -1354,13 +1149,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static void table_size_get(System.IntPtr obj, System.IntPtr pd, out int cols, out int rows)
         {
             Eina.Log.Debug("function efl_pack_table_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         cols = default(int);        rows = default(int);                            
                 try
                 {
-                    ((Table)wrapper).GetTableSize(out cols, out rows);
+                    ((Table)ws.Target).GetTableSize(out cols, out rows);
                 }
                 catch (Exception e)
                 {
@@ -1389,13 +1184,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static void table_size_set(System.IntPtr obj, System.IntPtr pd, int cols, int rows)
         {
             Eina.Log.Debug("function efl_pack_table_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Table)wrapper).SetTableSize(cols, rows);
+                    ((Table)ws.Target).SetTableSize(cols, rows);
                 }
                 catch (Exception e)
                 {
@@ -1424,13 +1219,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static int table_columns_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_table_columns_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Table)wrapper).GetTableColumns();
+                    _ret_var = ((Table)ws.Target).GetTableColumns();
                 }
                 catch (Exception e)
                 {
@@ -1460,13 +1255,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static void table_columns_set(System.IntPtr obj, System.IntPtr pd, int cols)
         {
             Eina.Log.Debug("function efl_pack_table_columns_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Table)wrapper).SetTableColumns(cols);
+                    ((Table)ws.Target).SetTableColumns(cols);
                 }
                 catch (Exception e)
                 {
@@ -1495,13 +1290,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static int table_rows_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_pack_table_rows_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Table)wrapper).GetTableRows();
+                    _ret_var = ((Table)ws.Target).GetTableRows();
                 }
                 catch (Exception e)
                 {
@@ -1531,13 +1326,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
         private static void table_rows_set(System.IntPtr obj, System.IntPtr pd, int rows)
         {
             Eina.Log.Debug("function efl_pack_table_rows_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Table)wrapper).SetTableRows(rows);
+                    ((Table)ws.Target).SetTableRows(rows);
                 }
                 catch (Exception e)
                 {
@@ -1555,24 +1350,24 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
 
         private static efl_pack_table_rows_set_delegate efl_pack_table_rows_set_static_delegate;
 
-        
-        private delegate void efl_pack_table_direction_get_delegate(System.IntPtr obj, System.IntPtr pd,  out Efl.Ui.Dir primary,  out Efl.Ui.Dir secondary);
+        [return: MarshalAs(UnmanagedType.U1)]
+        private delegate bool efl_pack_table_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int col,  int row,  int colspan,  int rowspan);
 
-        
-        public delegate void efl_pack_table_direction_get_api_delegate(System.IntPtr obj,  out Efl.Ui.Dir primary,  out Efl.Ui.Dir secondary);
+        [return: MarshalAs(UnmanagedType.U1)]
+        public delegate bool efl_pack_table_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int col,  int row,  int colspan,  int rowspan);
 
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_direction_get_api_delegate> efl_pack_table_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_direction_get_api_delegate>(Module, "efl_pack_table_direction_get");
+        public static Efl.Eo.FunctionWrapper<efl_pack_table_api_delegate> efl_pack_table_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_api_delegate>(Module, "efl_pack_table");
 
-        private static void table_direction_get(System.IntPtr obj, System.IntPtr pd, out Efl.Ui.Dir primary, out Efl.Ui.Dir secondary)
+        private static bool pack_table(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int col, int row, int colspan, int rowspan)
         {
-            Eina.Log.Debug("function efl_pack_table_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_pack_table was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-                        primary = default(Efl.Ui.Dir);        secondary = default(Efl.Ui.Dir);                            
+                                                                                                                                    bool _ret_var = default(bool);
                 try
                 {
-                    ((Table)wrapper).GetTableDirection(out primary, out secondary);
+                    _ret_var = ((Table)ws.Target).PackTable(subobj, col, row, colspan, rowspan);
                 }
                 catch (Exception e)
                 {
@@ -1580,34 +1375,35 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-                                        
+                                                                                        return _ret_var;
+
             }
             else
             {
-                efl_pack_table_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out primary, out secondary);
+                return efl_pack_table_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, col, row, colspan, rowspan);
             }
         }
 
-        private static efl_pack_table_direction_get_delegate efl_pack_table_direction_get_static_delegate;
+        private static efl_pack_table_delegate efl_pack_table_static_delegate;
 
         
-        private delegate void efl_pack_table_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir primary,  Efl.Ui.Dir secondary);
+        private delegate System.IntPtr efl_pack_table_contents_get_delegate(System.IntPtr obj, System.IntPtr pd,  int col,  int row, [MarshalAs(UnmanagedType.U1)] bool below);
 
         
-        public delegate void efl_pack_table_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir primary,  Efl.Ui.Dir secondary);
+        public delegate System.IntPtr efl_pack_table_contents_get_api_delegate(System.IntPtr obj,  int col,  int row, [MarshalAs(UnmanagedType.U1)] bool below);
 
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_direction_set_api_delegate> efl_pack_table_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_direction_set_api_delegate>(Module, "efl_pack_table_direction_set");
+        public static Efl.Eo.FunctionWrapper<efl_pack_table_contents_get_api_delegate> efl_pack_table_contents_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_contents_get_api_delegate>(Module, "efl_pack_table_contents_get");
 
-        private static void table_direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir primary, Efl.Ui.Dir secondary)
+        private static System.IntPtr table_contents_get(System.IntPtr obj, System.IntPtr pd, int col, int row, bool below)
         {
-            Eina.Log.Debug("function efl_pack_table_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_pack_table_contents_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-                                                            
+                                                                                    Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    ((Table)wrapper).SetTableDirection(primary, secondary);
+                    _ret_var = ((Table)ws.Target).GetTableContents(col, row, below);
                 }
                 catch (Exception e)
                 {
@@ -1615,34 +1411,35 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-                                        
+                                                        _ret_var.Own = false; return _ret_var.Handle;
+
             }
             else
             {
-                efl_pack_table_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), primary, secondary);
+                return efl_pack_table_contents_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), col, row, below);
             }
         }
 
-        private static efl_pack_table_direction_set_delegate efl_pack_table_direction_set_static_delegate;
+        private static efl_pack_table_contents_get_delegate efl_pack_table_contents_get_static_delegate;
 
-        [return: MarshalAs(UnmanagedType.U1)]
-        private delegate bool efl_pack_table_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int col,  int row,  int colspan,  int rowspan);
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        private delegate Efl.Gfx.IEntity efl_pack_table_content_get_delegate(System.IntPtr obj, System.IntPtr pd,  int col,  int row);
 
-        [return: MarshalAs(UnmanagedType.U1)]
-        public delegate bool efl_pack_table_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Gfx.IEntity subobj,  int col,  int row,  int colspan,  int rowspan);
+        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
+        public delegate Efl.Gfx.IEntity efl_pack_table_content_get_api_delegate(System.IntPtr obj,  int col,  int row);
 
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_api_delegate> efl_pack_table_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_api_delegate>(Module, "efl_pack_table");
+        public static Efl.Eo.FunctionWrapper<efl_pack_table_content_get_api_delegate> efl_pack_table_content_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_content_get_api_delegate>(Module, "efl_pack_table_content_get");
 
-        private static bool pack_table(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity subobj, int col, int row, int colspan, int rowspan)
+        private static Efl.Gfx.IEntity table_content_get(System.IntPtr obj, System.IntPtr pd, int col, int row)
         {
-            Eina.Log.Debug("function efl_pack_table was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_pack_table_content_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-                                                                                                                                    bool _ret_var = default(bool);
+                                                            Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Table)wrapper).PackTable(subobj, col, row, colspan, rowspan);
+                    _ret_var = ((Table)ws.Target).GetTableContent(col, row);
                 }
                 catch (Exception e)
                 {
@@ -1650,35 +1447,35 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-                                                                                        return _ret_var;
+                                        return _ret_var;
 
             }
             else
             {
-                return efl_pack_table_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), subobj, col, row, colspan, rowspan);
+                return efl_pack_table_content_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), col, row);
             }
         }
 
-        private static efl_pack_table_delegate efl_pack_table_static_delegate;
+        private static efl_pack_table_content_get_delegate efl_pack_table_content_get_static_delegate;
 
         
-        private delegate System.IntPtr efl_pack_table_contents_get_delegate(System.IntPtr obj, System.IntPtr pd,  int col,  int row, [MarshalAs(UnmanagedType.U1)] bool below);
+        private delegate void efl_gfx_arrangement_content_align_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double align_horiz,  out double align_vert);
 
         
-        public delegate System.IntPtr efl_pack_table_contents_get_api_delegate(System.IntPtr obj,  int col,  int row, [MarshalAs(UnmanagedType.U1)] bool below);
+        public delegate void efl_gfx_arrangement_content_align_get_api_delegate(System.IntPtr obj,  out double align_horiz,  out double align_vert);
 
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_contents_get_api_delegate> efl_pack_table_contents_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_contents_get_api_delegate>(Module, "efl_pack_table_contents_get");
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_get_api_delegate> efl_gfx_arrangement_content_align_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_get_api_delegate>(Module, "efl_gfx_arrangement_content_align_get");
 
-        private static System.IntPtr table_contents_get(System.IntPtr obj, System.IntPtr pd, int col, int row, bool below)
+        private static void content_align_get(System.IntPtr obj, System.IntPtr pd, out double align_horiz, out double align_vert)
         {
-            Eina.Log.Debug("function efl_pack_table_contents_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_gfx_arrangement_content_align_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-                                                                                    Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
+                        align_horiz = default(double);        align_vert = default(double);                            
                 try
                 {
-                    _ret_var = ((Table)wrapper).GetTableContents(col, row, below);
+                    ((Table)ws.Target).GetContentAlign(out align_horiz, out align_vert);
                 }
                 catch (Exception e)
                 {
@@ -1686,35 +1483,69 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-                                                        _ret_var.Own = false; return _ret_var.Handle;
+                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_align_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out align_horiz, out align_vert);
+            }
+        }
+
+        private static efl_gfx_arrangement_content_align_get_delegate efl_gfx_arrangement_content_align_get_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_align_set_delegate(System.IntPtr obj, System.IntPtr pd,  double align_horiz,  double align_vert);
+
+        
+        public delegate void efl_gfx_arrangement_content_align_set_api_delegate(System.IntPtr obj,  double align_horiz,  double align_vert);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_set_api_delegate> efl_gfx_arrangement_content_align_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_align_set_api_delegate>(Module, "efl_gfx_arrangement_content_align_set");
 
+        private static void content_align_set(System.IntPtr obj, System.IntPtr pd, double align_horiz, double align_vert)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_align_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                            
+                try
+                {
+                    ((Table)ws.Target).SetContentAlign(align_horiz, align_vert);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                        
             }
             else
             {
-                return efl_pack_table_contents_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), col, row, below);
+                efl_gfx_arrangement_content_align_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), align_horiz, align_vert);
             }
         }
 
-        private static efl_pack_table_contents_get_delegate efl_pack_table_contents_get_static_delegate;
+        private static efl_gfx_arrangement_content_align_set_delegate efl_gfx_arrangement_content_align_set_static_delegate;
 
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        private delegate Efl.Gfx.IEntity efl_pack_table_content_get_delegate(System.IntPtr obj, System.IntPtr pd,  int col,  int row);
+        
+        private delegate void efl_gfx_arrangement_content_padding_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
 
-        [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
-        public delegate Efl.Gfx.IEntity efl_pack_table_content_get_api_delegate(System.IntPtr obj,  int col,  int row);
+        
+        public delegate void efl_gfx_arrangement_content_padding_get_api_delegate(System.IntPtr obj,  out double pad_horiz,  out double pad_vert, [MarshalAs(UnmanagedType.U1)] out bool scalable);
 
-        public static Efl.Eo.FunctionWrapper<efl_pack_table_content_get_api_delegate> efl_pack_table_content_get_ptr = new Efl.Eo.FunctionWrapper<efl_pack_table_content_get_api_delegate>(Module, "efl_pack_table_content_get");
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_get_api_delegate> efl_gfx_arrangement_content_padding_get_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_get_api_delegate>(Module, "efl_gfx_arrangement_content_padding_get");
 
-        private static Efl.Gfx.IEntity table_content_get(System.IntPtr obj, System.IntPtr pd, int col, int row)
+        private static void content_padding_get(System.IntPtr obj, System.IntPtr pd, out double pad_horiz, out double pad_vert, out bool scalable)
         {
-            Eina.Log.Debug("function efl_pack_table_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_gfx_arrangement_content_padding_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-                                                            Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
+                                pad_horiz = default(double);        pad_vert = default(double);        scalable = default(bool);                                    
                 try
                 {
-                    _ret_var = ((Table)wrapper).GetTableContent(col, row);
+                    ((Table)ws.Target).GetContentPadding(out pad_horiz, out pad_vert, out scalable);
                 }
                 catch (Exception e)
                 {
@@ -1722,35 +1553,69 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
                     Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
                 }
 
-                                        return _ret_var;
+                                                        
+            }
+            else
+            {
+                efl_gfx_arrangement_content_padding_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), out pad_horiz, out pad_vert, out scalable);
+            }
+        }
 
+        private static efl_gfx_arrangement_content_padding_get_delegate efl_gfx_arrangement_content_padding_get_static_delegate;
+
+        
+        private delegate void efl_gfx_arrangement_content_padding_set_delegate(System.IntPtr obj, System.IntPtr pd,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
+
+        
+        public delegate void efl_gfx_arrangement_content_padding_set_api_delegate(System.IntPtr obj,  double pad_horiz,  double pad_vert, [MarshalAs(UnmanagedType.U1)] bool scalable);
+
+        public static Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_set_api_delegate> efl_gfx_arrangement_content_padding_set_ptr = new Efl.Eo.FunctionWrapper<efl_gfx_arrangement_content_padding_set_api_delegate>(Module, "efl_gfx_arrangement_content_padding_set");
+
+        private static void content_padding_set(System.IntPtr obj, System.IntPtr pd, double pad_horiz, double pad_vert, bool scalable)
+        {
+            Eina.Log.Debug("function efl_gfx_arrangement_content_padding_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                    
+                try
+                {
+                    ((Table)ws.Target).SetContentPadding(pad_horiz, pad_vert, scalable);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                        
             }
             else
             {
-                return efl_pack_table_content_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), col, row);
+                efl_gfx_arrangement_content_padding_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), pad_horiz, pad_vert, scalable);
             }
         }
 
-        private static efl_pack_table_content_get_delegate efl_pack_table_content_get_static_delegate;
+        private static efl_gfx_arrangement_content_padding_set_delegate efl_gfx_arrangement_content_padding_set_static_delegate;
 
         
-        private delegate Efl.Ui.Dir efl_ui_direction_get_delegate(System.IntPtr obj, System.IntPtr pd);
+        private delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_delegate(System.IntPtr obj, System.IntPtr pd);
 
         
-        public delegate Efl.Ui.Dir efl_ui_direction_get_api_delegate(System.IntPtr obj);
+        public delegate Efl.Ui.LayoutOrientation efl_ui_layout_orientation_get_api_delegate(System.IntPtr obj);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate> efl_ui_direction_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_get_api_delegate>(Module, "efl_ui_direction_get");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate> efl_ui_layout_orientation_get_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_get_api_delegate>(Module, "efl_ui_layout_orientation_get");
 
-        private static Efl.Ui.Dir direction_get(System.IntPtr obj, System.IntPtr pd)
+        private static Efl.Ui.LayoutOrientation orientation_get(System.IntPtr obj, System.IntPtr pd)
         {
-            Eina.Log.Debug("function efl_ui_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
-            Efl.Ui.Dir _ret_var = default(Efl.Ui.Dir);
+            Efl.Ui.LayoutOrientation _ret_var = default(Efl.Ui.LayoutOrientation);
                 try
                 {
-                    _ret_var = ((Table)wrapper).GetDirection();
+                    _ret_var = ((Table)ws.Target).GetOrientation();
                 }
                 catch (Exception e)
                 {
@@ -1763,30 +1628,30 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
             }
             else
             {
-                return efl_ui_direction_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+                return efl_ui_layout_orientation_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
             }
         }
 
-        private static efl_ui_direction_get_delegate efl_ui_direction_get_static_delegate;
+        private static efl_ui_layout_orientation_get_delegate efl_ui_layout_orientation_get_static_delegate;
 
         
-        private delegate void efl_ui_direction_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.Dir dir);
+        private delegate void efl_ui_layout_orientation_set_delegate(System.IntPtr obj, System.IntPtr pd,  Efl.Ui.LayoutOrientation dir);
 
         
-        public delegate void efl_ui_direction_set_api_delegate(System.IntPtr obj,  Efl.Ui.Dir dir);
+        public delegate void efl_ui_layout_orientation_set_api_delegate(System.IntPtr obj,  Efl.Ui.LayoutOrientation dir);
 
-        public static Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate> efl_ui_direction_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_direction_set_api_delegate>(Module, "efl_ui_direction_set");
+        public static Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate> efl_ui_layout_orientation_set_ptr = new Efl.Eo.FunctionWrapper<efl_ui_layout_orientation_set_api_delegate>(Module, "efl_ui_layout_orientation_set");
 
-        private static void direction_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Dir dir)
+        private static void orientation_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.LayoutOrientation dir)
         {
-            Eina.Log.Debug("function efl_ui_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            Eina.Log.Debug("function efl_ui_layout_orientation_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Table)wrapper).SetDirection(dir);
+                    ((Table)ws.Target).SetOrientation(dir);
                 }
                 catch (Exception e)
                 {
@@ -1798,13 +1663,13 @@ public class Table : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IContainer,Efl.IPack,Efl
             }
             else
             {
-                efl_ui_direction_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
+                efl_ui_layout_orientation_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), dir);
             }
         }
 
-        private static efl_ui_direction_set_delegate efl_ui_direction_set_static_delegate;
+        private static efl_ui_layout_orientation_set_delegate efl_ui_layout_orientation_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 927dfa7..678ae43 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI table static class</summary>
 [Efl.Ui.TableStatic.NativeMethods]
-public class TableStatic : Efl.Ui.Table, Efl.Eo.IWrapper
+public class TableStatic : Efl.Ui.Table
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class TableStatic : Efl.Ui.Table, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TableStatic(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TableStatic"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class TableStatic : Efl.Ui.Table, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.TableStatic.efl_ui_table_static_class_get();
@@ -111,9 +84,9 @@ public class TableStatic : Efl.Ui.Table, Efl.Eo.IWrapper
             return Efl.Ui.TableStatic.efl_ui_table_static_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 141c424..86faa24 100644 (file)
@@ -41,7 +41,7 @@ public class TagsExpandStateChangedEvt_Args : EventArgs {
 }
 /// <summary>A widget displaying a list of tags. The user can remove tags by clicking on each tag &quot;close&quot; button and add new tags by typing text in the text entry at the end of the list.</summary>
 [Efl.Ui.Tags.NativeMethods]
-public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
+public class Tags : Efl.Ui.LayoutBase, Efl.IText, Efl.Ui.IFormat
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -80,7 +80,7 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Tags(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Tags"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -91,33 +91,6 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when item was selected</summary>
     public event EventHandler<Efl.Ui.TagsItemSelectedEvt_Args> ItemSelectedEvt
     {
@@ -125,13 +98,12 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TagsItemSelectedEvt_Args args = new Efl.Ui.TagsItemSelectedEvt_Args();
+                        Efl.Ui.TagsItemSelectedEvt_Args args = new Efl.Ui.TagsItemSelectedEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -187,13 +159,12 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TagsItemAddedEvt_Args args = new Efl.Ui.TagsItemAddedEvt_Args();
+                        Efl.Ui.TagsItemAddedEvt_Args args = new Efl.Ui.TagsItemAddedEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -249,13 +220,12 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TagsItemDeletedEvt_Args args = new Efl.Ui.TagsItemDeletedEvt_Args();
+                        Efl.Ui.TagsItemDeletedEvt_Args args = new Efl.Ui.TagsItemDeletedEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -311,13 +281,12 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TagsItemClickedEvt_Args args = new Efl.Ui.TagsItemClickedEvt_Args();
+                        Efl.Ui.TagsItemClickedEvt_Args args = new Efl.Ui.TagsItemClickedEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -373,13 +342,12 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TagsItemLongpressedEvt_Args args = new Efl.Ui.TagsItemLongpressedEvt_Args();
+                        Efl.Ui.TagsItemLongpressedEvt_Args args = new Efl.Ui.TagsItemLongpressedEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -435,10 +403,9 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -488,10 +455,9 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -541,14 +507,13 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TagsExpandStateChangedEvt_Args args = new Efl.Ui.TagsExpandStateChangedEvt_Args();
-                        args.arg = evt.Info.ToInt32();
+                        Efl.Ui.TagsExpandStateChangedEvt_Args args = new Efl.Ui.TagsExpandStateChangedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -684,34 +649,34 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Control if the tag list is to be editable by the user or not.</summary>
-/// <value>If <c>true</c>, the user can add/delete tags to the tag list, if not, the tag list is non-editable.</value>
+    /// <value>If <c>true</c>, the user can add/delete tags to the tag list, if not, the tag list is non-editable.</value>
     public bool Editable {
         get { return GetEditable(); }
         set { SetEditable(value); }
     }
     /// <summary>Control whether the tag list is expanded or not.
-/// In the expanded state, all tags will be displayed. Otherwise, only a single line of tags will be displayed with a marker to indicate that there is more content.</summary>
-/// <value>The expanded state. Set this to <c>true</c> to allow multiple lines of tags. Set to <c>false</c> for a single line.</value>
+    /// In the expanded state, all tags will be displayed. Otherwise, only a single line of tags will be displayed with a marker to indicate that there is more content.</summary>
+    /// <value>The expanded state. Set this to <c>true</c> to allow multiple lines of tags. Set to <c>false</c> for a single line.</value>
     public bool Expanded {
         get { return GetExpanded(); }
         set { SetExpanded(value); }
     }
     /// <summary>List of tags in the tag list. Tags can be added and removed by the user using the UI, and by the program by modifying this property.</summary>
-/// <value>The array of items, or NULL if none.</value>
+    /// <value>The array of items, or NULL if none.</value>
     public Eina.Array<System.String> Items {
         get { return GetItems(); }
         set { SetItems(value); }
     }
     /// <summary>Set the format function pointer to format the string.</summary>
-/// <value>The format function callback</value>
+    /// <value>The format function callback</value>
     public Efl.Ui.FormatFuncCb FormatCb {
         set { SetFormatCb(value); }
     }
     /// <summary>Control the format string for a given units label
-/// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
-/// 
-/// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
-/// <value>The format string for <c>obj</c>&apos;s units label.</value>
+    /// If <c>NULL</c> is passed to <c>format</c>, it will hide <c>obj</c>&apos;s units area completely. If not, it&apos;ll set the &lt;b&gt;format string&lt;/b&gt; for the units label text. The units label is provided as a floating point value, so the units text can display at most one floating point value. Note that the units label is optional. Use a format string such as &quot;%1.2f meters&quot; for example.
+    /// 
+    /// Note: The default format string is an integer percentage, as in $&quot;%.0f %%&quot;.</summary>
+    /// <value>The format string for <c>obj</c>&apos;s units label.</value>
     public System.String FormatString {
         get { return GetFormatString(); }
         set { SetFormatString(value); }
@@ -852,7 +817,7 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
             return Efl.Ui.Tags.efl_ui_tags_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_tags_editable_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -865,13 +830,13 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static bool editable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_tags_editable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Tags)wrapper).GetEditable();
+                    _ret_var = ((Tags)ws.Target).GetEditable();
                 }
                 catch (Exception e)
                 {
@@ -901,13 +866,13 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static void editable_set(System.IntPtr obj, System.IntPtr pd, bool editable)
         {
             Eina.Log.Debug("function efl_ui_tags_editable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Tags)wrapper).SetEditable(editable);
+                    ((Tags)ws.Target).SetEditable(editable);
                 }
                 catch (Exception e)
                 {
@@ -936,13 +901,13 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static bool expanded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_tags_expanded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Tags)wrapper).GetExpanded();
+                    _ret_var = ((Tags)ws.Target).GetExpanded();
                 }
                 catch (Exception e)
                 {
@@ -972,13 +937,13 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static void expanded_set(System.IntPtr obj, System.IntPtr pd, bool expanded)
         {
             Eina.Log.Debug("function efl_ui_tags_expanded_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Tags)wrapper).SetExpanded(expanded);
+                    ((Tags)ws.Target).SetExpanded(expanded);
                 }
                 catch (Exception e)
                 {
@@ -1007,13 +972,13 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static System.IntPtr items_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_tags_items_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Array<System.String> _ret_var = default(Eina.Array<System.String>);
                 try
                 {
-                    _ret_var = ((Tags)wrapper).GetItems();
+                    _ret_var = ((Tags)ws.Target).GetItems();
                 }
                 catch (Exception e)
                 {
@@ -1043,14 +1008,14 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static void items_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr items)
         {
             Eina.Log.Debug("function efl_ui_tags_items_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_items = new Eina.Array<System.String>(items, false, false);
                             
                 try
                 {
-                    ((Tags)wrapper).SetItems(_in_items);
+                    ((Tags)ws.Target).SetItems(_in_items);
                 }
                 catch (Exception e)
                 {
@@ -1079,13 +1044,13 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Tags)wrapper).GetText();
+                    _ret_var = ((Tags)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -1115,13 +1080,13 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Tags)wrapper).SetText(text);
+                    ((Tags)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -1150,14 +1115,14 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static void format_cb_set(System.IntPtr obj, System.IntPtr pd, IntPtr func_data, Efl.Ui.FormatFuncCbInternal func, EinaFreeCb func_free_cb)
         {
             Eina.Log.Debug("function efl_ui_format_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                             Efl.Ui.FormatFuncCbWrapper func_wrapper = new Efl.Ui.FormatFuncCbWrapper(func, func_data, func_free_cb);
             
                 try
                 {
-                    ((Tags)wrapper).SetFormatCb(func_wrapper.ManagedCb);
+                    ((Tags)ws.Target).SetFormatCb(func_wrapper.ManagedCb);
                 }
                 catch (Exception e)
                 {
@@ -1186,13 +1151,13 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static System.String format_string_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_format_string_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Tags)wrapper).GetFormatString();
+                    _ret_var = ((Tags)ws.Target).GetFormatString();
                 }
                 catch (Exception e)
                 {
@@ -1222,13 +1187,13 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
         private static void format_string_set(System.IntPtr obj, System.IntPtr pd, System.String units)
         {
             Eina.Log.Debug("function efl_ui_format_string_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Tags)wrapper).SetFormatString(units);
+                    ((Tags)ws.Target).SetFormatString(units);
                 }
                 catch (Exception e)
                 {
@@ -1246,7 +1211,7 @@ public class Tags : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Ui.IFormat
 
         private static efl_ui_format_string_set_delegate efl_ui_format_string_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 18eacfd..0c84223 100644 (file)
@@ -46,7 +46,7 @@ public class TextAnchorUpEvt_Args : EventArgs {
 }
 /// <summary>Efl UI text class</summary>
 [Efl.Ui.Text.NativeMethods]
-public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.ITextFont,Efl.ITextFormat,Efl.ITextInteractive,Efl.ITextStyle,Efl.Access.IText,Efl.Access.Editable.IText,Efl.Ui.IClickable,Efl.Ui.ISelectable
+public class Text : Efl.Ui.LayoutBase, Efl.IFile, Efl.IText, Efl.ITextFont, Efl.ITextFormat, Efl.ITextInteractive, Efl.ITextMarkup, Efl.ITextStyle, Efl.Access.IText, Efl.Access.Editable.IText, Efl.Ui.IClickable, Efl.Ui.ISelectable
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -85,7 +85,7 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Text(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Text"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -96,33 +96,6 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when entry changes</summary>
     public event EventHandler ChangedEvt
     {
@@ -130,10 +103,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -183,13 +155,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TextChangedUserEvt_Args args = new Efl.Ui.TextChangedUserEvt_Args();
+                        Efl.Ui.TextChangedUserEvt_Args args = new Efl.Ui.TextChangedUserEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -246,13 +217,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TextValidateEvt_Args args = new Efl.Ui.TextValidateEvt_Args();
+                        Efl.Ui.TextValidateEvt_Args args = new Efl.Ui.TextValidateEvt_Args();
                         args.arg = default(Elm.ValidateContent);
                         try
                         {
@@ -308,10 +278,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -361,10 +330,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -414,10 +382,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -467,10 +434,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -520,10 +486,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -573,10 +538,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -626,13 +590,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TextAnchorDownEvt_Args args = new Efl.Ui.TextAnchorDownEvt_Args();
+                        Efl.Ui.TextAnchorDownEvt_Args args = new Efl.Ui.TextAnchorDownEvt_Args();
                         args.arg = default(Elm.EntryAnchorInfo);
                         try
                         {
@@ -688,13 +651,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TextAnchorHoverOpenedEvt_Args args = new Efl.Ui.TextAnchorHoverOpenedEvt_Args();
+                        Efl.Ui.TextAnchorHoverOpenedEvt_Args args = new Efl.Ui.TextAnchorHoverOpenedEvt_Args();
                         args.arg = default(Elm.EntryAnchorHoverInfo);
                         try
                         {
@@ -750,13 +712,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TextAnchorInEvt_Args args = new Efl.Ui.TextAnchorInEvt_Args();
+                        Efl.Ui.TextAnchorInEvt_Args args = new Efl.Ui.TextAnchorInEvt_Args();
                         args.arg = default(Elm.EntryAnchorInfo);
                         try
                         {
@@ -812,13 +773,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TextAnchorOutEvt_Args args = new Efl.Ui.TextAnchorOutEvt_Args();
+                        Efl.Ui.TextAnchorOutEvt_Args args = new Efl.Ui.TextAnchorOutEvt_Args();
                         args.arg = default(Elm.EntryAnchorInfo);
                         try
                         {
@@ -874,13 +834,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.TextAnchorUpEvt_Args args = new Efl.Ui.TextAnchorUpEvt_Args();
+                        Efl.Ui.TextAnchorUpEvt_Args args = new Efl.Ui.TextAnchorUpEvt_Args();
                         args.arg = default(Elm.EntryAnchorInfo);
                         try
                         {
@@ -936,10 +895,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -989,10 +947,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1042,10 +999,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1095,13 +1051,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.ITextAccessTextInsertedEvt_Args args = new Efl.Access.ITextAccessTextInsertedEvt_Args();
+                        Efl.Access.ITextAccessTextInsertedEvt_Args args = new Efl.Access.ITextAccessTextInsertedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -1158,13 +1113,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.ITextAccessTextRemovedEvt_Args args = new Efl.Access.ITextAccessTextRemovedEvt_Args();
+                        Efl.Access.ITextAccessTextRemovedEvt_Args args = new Efl.Access.ITextAccessTextRemovedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -1221,10 +1175,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1267,20 +1220,20 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
 
         Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object is clicked</summary>
-    public event EventHandler ClickedEvt
+    /// <summary>Called when object is in sequence pressed and unpressed, by the primary button</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedEvt_Args> ClickedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedEvt_Args args = new Efl.Ui.IClickableClickedEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -1294,7 +1247,7 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
                 };
 
                 string key = "_EFL_UI_EVENT_CLICKED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -1303,90 +1256,46 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_CLICKED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
     ///<summary>Method to raise event ClickedEvt.</summary>
-    public void OnClickedEvt(EventArgs e)
+    public void OnClickedEvt(Efl.Ui.IClickableClickedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_CLICKED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a double click</summary>
-    public event EventHandler ClickedDoubleEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event ClickedDoubleEvt.</summary>
-    public void OnClickedDoubleEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_DOUBLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
-    /// <summary>Called when object receives a triple click</summary>
-    public event EventHandler ClickedTripleEvt
+    /// <summary>Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.</summary>
+    public event EventHandler<Efl.Ui.IClickableClickedAnyEvt_Args> ClickedAnyEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                        EventArgs args = EventArgs.Empty;
+                        Efl.Ui.IClickableClickedAnyEvt_Args args = new Efl.Ui.IClickableClickedAnyEvt_Args();
+                        args.arg =  evt.Info;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -1399,8 +1308,8 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
                     }
                 };
 
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -1408,94 +1317,47 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                string key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                string key = "_EFL_UI_EVENT_CLICKED_ANY";
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
-    ///<summary>Method to raise event ClickedTripleEvt.</summary>
-    public void OnClickedTripleEvt(EventArgs e)
+    ///<summary>Method to raise event ClickedAnyEvt.</summary>
+    public void OnClickedAnyEvt(Efl.Ui.IClickableClickedAnyEvt_Args e)
     {
-        var key = "_EFL_UI_EVENT_CLICKED_TRIPLE";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        var key = "_EFL_UI_EVENT_CLICKED_ANY";
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
-    }
-    /// <summary>Called when object receives a right click</summary>
-    public event EventHandler<Efl.Ui.IClickableClickedRightEvt_Args> ClickedRightEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                                                Efl.Ui.IClickableClickedRightEvt_Args args = new Efl.Ui.IClickableClickedRightEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Marshal.AllocHGlobal(Marshal.SizeOf(e.arg));
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Marshal.StructureToPtr(e.arg, info, false);
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event ClickedRightEvt.</summary>
-    public void OnClickedRightEvt(Efl.Ui.IClickableClickedRightEvt_Args e)
-    {
-        var key = "_EFL_UI_EVENT_CLICKED_RIGHT";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
     }
-    /// <summary>Called when the object is pressed</summary>
+    /// <summary>Called when the object is pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickablePressedEvt_Args> PressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickablePressedEvt_Args args = new Efl.Ui.IClickablePressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -1509,7 +1371,7 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
                 };
 
                 string key = "_EFL_UI_EVENT_PRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -1518,7 +1380,7 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_PRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -1526,31 +1388,37 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
     public void OnPressedEvt(Efl.Ui.IClickablePressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_PRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object is no longer pressed</summary>
+    /// <summary>Called when the object is no longer pressed, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableUnpressedEvt_Args> UnpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableUnpressedEvt_Args args = new Efl.Ui.IClickableUnpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -1564,7 +1432,7 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
                 };
 
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -1573,7 +1441,7 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_UNPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -1581,31 +1449,37 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
     public void OnUnpressedEvt(Efl.Ui.IClickableUnpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_UNPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
+        {
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
+        }
+        finally
+        {
+            Marshal.FreeHGlobal(info);
+        }
     }
-    /// <summary>Called when the object receives a long press</summary>
+    /// <summary>Called when the object receives a long press, event_info is the button that got pressed</summary>
     public event EventHandler<Efl.Ui.IClickableLongpressedEvt_Args> LongpressedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
-                        args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
+                        Efl.Ui.IClickableLongpressedEvt_Args args = new Efl.Ui.IClickableLongpressedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -1619,7 +1493,7 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
                 };
 
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
+                AddNativeEventHandler(efl.Libs.Elementary, key, callerCb, value);
             }
         }
 
@@ -1628,7 +1502,7 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
             lock (eventLock)
             {
                 string key = "_EFL_UI_EVENT_LONGPRESSED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
+                RemoveNativeEventHandler(efl.Libs.Elementary, key, value);
             }
         }
     }
@@ -1636,68 +1510,22 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
     public void OnLongpressedEvt(Efl.Ui.IClickableLongpressedEvt_Args e)
     {
         var key = "_EFL_UI_EVENT_LONGPRESSED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
+        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
         if (desc == IntPtr.Zero)
         {
             Eina.Log.Error($"Failed to get native event {key}");
             return;
         }
 
-        IntPtr info = e.arg.NativeHandle;
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
-    }
-    /// <summary>Called when the object receives repeated presses/clicks</summary>
-    public event EventHandler RepeatedEvt
-    {
-        add
-        {
-            lock (eventLock)
-            {
-                var wRef = new WeakReference(this);
-                Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
-                {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
-                    if (obj != null)
-                    {
-                        EventArgs args = EventArgs.Empty;
-                        try
-                        {
-                            value?.Invoke(obj, args);
-                        }
-                        catch (Exception e)
-                        {
-                            Eina.Log.Error(e.ToString());
-                            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
-                        }
-                    }
-                };
-
-                string key = "_EFL_UI_EVENT_REPEATED";
-                AddNativeEventHandler(efl.Libs.Efl, key, callerCb, value);
-            }
-        }
-
-        remove
+        IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg);
+        try
         {
-            lock (eventLock)
-            {
-                string key = "_EFL_UI_EVENT_REPEATED";
-                RemoveNativeEventHandler(efl.Libs.Efl, key, value);
-            }
+            Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
         }
-    }
-    ///<summary>Method to raise event RepeatedEvt.</summary>
-    public void OnRepeatedEvt(EventArgs e)
-    {
-        var key = "_EFL_UI_EVENT_REPEATED";
-        IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Efl, key);
-        if (desc == IntPtr.Zero)
+        finally
         {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
+            Marshal.FreeHGlobal(info);
         }
-
-        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, IntPtr.Zero);
     }
     /// <summary>Called when selected</summary>
     public event EventHandler<Efl.Ui.ISelectableItemSelectedEvt_Args> ItemSelectedEvt
@@ -1706,13 +1534,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
+                        Efl.Ui.ISelectableItemSelectedEvt_Args args = new Efl.Ui.ISelectableItemSelectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1761,13 +1588,12 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
+                        Efl.Ui.ISelectableItemUnselectedEvt_Args args = new Efl.Ui.ISelectableItemUnselectedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -1816,10 +1642,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1869,10 +1694,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1922,10 +1746,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1975,10 +1798,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2028,10 +1850,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2081,10 +1902,9 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2846,6 +2666,19 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
          Efl.ITextInteractiveConcrete.NativeMethods.efl_text_interactive_select_none_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
         Eina.Error.RaiseIfUnhandledException();
          }
+    /// <summary>Markup property</summary>
+    /// <returns>The markup-text representation set to this text.</returns>
+    virtual public System.String GetMarkup() {
+         var _ret_var = Efl.ITextMarkupConcrete.NativeMethods.efl_text_markup_get_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle));
+        Eina.Error.RaiseIfUnhandledException();
+        return _ret_var;
+ }
+    /// <summary>Markup property</summary>
+    /// <param name="markup">The markup-text representation set to this text.</param>
+    virtual public void SetMarkup(System.String markup) {
+                                 Efl.ITextMarkupConcrete.NativeMethods.efl_text_markup_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),markup);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>Color of text, excluding style</summary>
     /// <param name="r">Red component</param>
     /// <param name="g">Green component</param>
@@ -3368,350 +3201,376 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         Eina.Error.RaiseIfUnhandledException();
                         return _ret_var;
  }
+    /// <summary>Change internal states that a button got pressed.
+    /// When the button is already pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Press(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_press_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>Change internal states that a button got unpressed.
+    /// When the button is not pressed, this is silently ignored.</summary>
+    /// <param name="button">The number of the button. FIXME ensure to have the right interval of possible input</param>
+    virtual public void Unpress(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_unpress_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
+    /// <summary>This aborts the internal state after a press call.
+    /// This will stop the timer for longpress. And set the state of the clickable mixin back into the unpressed state.</summary>
+    virtual public void ResetButtonState(uint button) {
+                                 Efl.Ui.IClickableConcrete.NativeMethods.efl_ui_clickable_button_state_reset_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),button);
+        Eina.Error.RaiseIfUnhandledException();
+                         }
     /// <summary>Get the scrollable state of the entry
-/// Normally the entry is not scrollable. This gets the scrollable state of the entry.</summary>
-/// <value><c>true</c> if it is to be scrollable, <c>false</c> otherwise.</value>
+    /// Normally the entry is not scrollable. This gets the scrollable state of the entry.</summary>
+    /// <value><c>true</c> if it is to be scrollable, <c>false</c> otherwise.</value>
     public bool Scrollable {
         get { return GetScrollable(); }
         set { SetScrollable(value); }
     }
     /// <summary>Get the attribute to show the input panel in case of only an user&apos;s explicit Mouse Up event.</summary>
-/// <value>If <c>true</c>, the input panel will be shown in case of only Mouse up event. (Focus event will be ignored.)</value>
+    /// <value>If <c>true</c>, the input panel will be shown in case of only Mouse up event. (Focus event will be ignored.)</value>
     public bool InputPanelShowOnDemand {
         get { return GetInputPanelShowOnDemand(); }
         set { SetInputPanelShowOnDemand(value); }
     }
     /// <summary>This returns whether the entry&apos;s contextual (longpress) menu is disabled.</summary>
-/// <value>If <c>true</c>, the menu is disabled.</value>
+    /// <value>If <c>true</c>, the menu is disabled.</value>
     public bool ContextMenuDisabled {
         get { return GetContextMenuDisabled(); }
         set { SetContextMenuDisabled(value); }
     }
     /// <summary>Getting elm_entry text paste/drop mode.
-/// Normally the entry allows both text and images to be pasted. This gets the copy &amp; paste mode of the entry.</summary>
-/// <value>Format for copy &amp; paste.</value>
+    /// Normally the entry allows both text and images to be pasted. This gets the copy &amp; paste mode of the entry.</summary>
+    /// <value>Format for copy &amp; paste.</value>
     public Efl.Ui.SelectionFormat CnpMode {
         get { return GetCnpMode(); }
         set { SetCnpMode(value); }
     }
     /// <summary>Get the language mode of the input panel.</summary>
-/// <value>Language to be set to the input panel.</value>
+    /// <value>Language to be set to the input panel.</value>
     public Elm.Input.Panel.Lang InputPanelLanguage {
         get { return GetInputPanelLanguage(); }
         set { SetInputPanelLanguage(value); }
     }
     /// <summary>This returns whether the entry&apos;s selection handlers are disabled.</summary>
-/// <value>If <c>true</c>, the selection handlers are disabled.</value>
+    /// <value>If <c>true</c>, the selection handlers are disabled.</value>
     public bool SelectionHandlerDisabled {
         get { return GetSelectionHandlerDisabled(); }
         set { SetSelectionHandlerDisabled(value); }
     }
     /// <summary>Get the input panel layout variation of the entry</summary>
-/// <value>Layout variation type.</value>
+    /// <value>Layout variation type.</value>
     public int InputPanelLayoutVariation {
         get { return GetInputPanelLayoutVariation(); }
         set { SetInputPanelLayoutVariation(value); }
     }
     /// <summary>Get the autocapitalization type on the immodule.</summary>
-/// <value>The type of autocapitalization.</value>
+    /// <value>The type of autocapitalization.</value>
     public Elm.Autocapital.Type AutocapitalType {
         get { return GetAutocapitalType(); }
         set { SetAutocapitalType(value); }
     }
     /// <summary>Get whether the entry is set to password mode.</summary>
-/// <value>If true, password mode is enabled.</value>
+    /// <value>If true, password mode is enabled.</value>
     public bool PasswordMode {
         get { return GetPasswordMode(); }
         set { SetPasswordMode(value); }
     }
     /// <summary>Get whether the return key on the input panel should be disabled or not.</summary>
-/// <value>The state to put in in: <c>true</c> for disabled, <c>false</c> for enabled.</value>
+    /// <value>The state to put in in: <c>true</c> for disabled, <c>false</c> for enabled.</value>
     public bool InputPanelReturnKeyDisabled {
         get { return GetInputPanelReturnKeyDisabled(); }
         set { SetInputPanelReturnKeyDisabled(value); }
     }
     /// <summary>Get whether the entry allows predictive text.</summary>
-/// <value>Whether the entry should allow predictive text.</value>
+    /// <value>Whether the entry should allow predictive text.</value>
     public bool PredictionAllow {
         get { return GetPredictionAllow(); }
         set { SetPredictionAllow(value); }
     }
     /// <summary>Gets the value of input hint.</summary>
-/// <value>Input hint.</value>
+    /// <value>Input hint.</value>
     public Elm.Input.Hints InputHint {
         get { return GetInputHint(); }
         set { SetInputHint(value); }
     }
     /// <summary>Get the input panel layout of the entry.</summary>
-/// <value>Layout type.</value>
+    /// <value>Layout type.</value>
     public Elm.Input.Panel.Layout InputPanelLayout {
         get { return GetInputPanelLayout(); }
         set { SetInputPanelLayout(value); }
     }
     /// <summary>Get the &quot;return&quot; key type.</summary>
-/// <value>The type of &quot;return&quot; key on the input panel.</value>
+    /// <value>The type of &quot;return&quot; key on the input panel.</value>
     public Elm.Input.Panel.ReturnKey.Type InputPanelReturnKeyType {
         get { return GetInputPanelReturnKeyType(); }
         set { SetInputPanelReturnKeyType(value); }
     }
     /// <summary>Get the attribute to show the input panel automatically.</summary>
-/// <value>If <c>true</c>, the input panel is appeared when entry is clicked or has a focus.</value>
+    /// <value>If <c>true</c>, the input panel is appeared when entry is clicked or has a focus.</value>
     public bool InputPanelEnabled {
         get { return GetInputPanelEnabled(); }
         set { SetInputPanelEnabled(value); }
     }
     /// <summary>Set whether the return key on the input panel is disabled automatically when entry has no text.
-/// If <c>enabled</c> is <c>true</c>, the return key on input panel is disabled when the entry has no text. The return key on the input panel is automatically enabled when the entry has text. The default value is <c>false</c>.</summary>
-/// <value>If <c>enabled</c> is <c>true</c>, the return key is automatically disabled when the entry has no text.</value>
+    /// If <c>enabled</c> is <c>true</c>, the return key on input panel is disabled when the entry has no text. The return key on the input panel is automatically enabled when the entry has text. The default value is <c>false</c>.</summary>
+    /// <value>If <c>enabled</c> is <c>true</c>, the return key is automatically disabled when the entry has no text.</value>
     public bool InputPanelReturnKeyAutoenabled {
         set { SetInputPanelReturnKeyAutoenabled(value); }
     }
     /// <summary>The factory that provides item in the text e.g. &quot;emoticon/happy&quot; or &quot;href=file://image.jpg&quot; etc.</summary>
-/// <value>Factory to create items</value>
+    /// <value>Factory to create items</value>
     public Efl.Canvas.ITextFactory ItemFactory {
         get { return GetItemFactory(); }
         set { SetItemFactory(value); }
     }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
     /// <summary>Get the font file&apos;s path which is being used on a given text object.
-/// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
-/// <value>The font file&apos;s path.</value>
+    /// See <see cref="Efl.ITextFont.GetFont"/> for more details.</summary>
+    /// <value>The font file&apos;s path.</value>
     public System.String FontSource {
         get { return GetFontSource(); }
         set { SetFontSource(value); }
     }
     /// <summary>Comma-separated list of font fallbacks
-/// Will be used in case the primary font isn&apos;t available.</summary>
-/// <value>Font name fallbacks</value>
+    /// Will be used in case the primary font isn&apos;t available.</summary>
+    /// <value>Font name fallbacks</value>
     public System.String FontFallbacks {
         get { return GetFontFallbacks(); }
         set { SetFontFallbacks(value); }
     }
     /// <summary>Type of weight of the displayed font
-/// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
-/// <value>Font weight</value>
+    /// Default is <see cref="Efl.TextFontWeight.Normal"/>.</summary>
+    /// <value>Font weight</value>
     public Efl.TextFontWeight FontWeight {
         get { return GetFontWeight(); }
         set { SetFontWeight(value); }
     }
     /// <summary>Type of slant of the displayed font
-/// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
-/// <value>Font slant</value>
+    /// Default is <see cref="Efl.TextFontSlant.Normal"/>.</summary>
+    /// <value>Font slant</value>
     public Efl.TextFontSlant FontSlant {
         get { return GetFontSlant(); }
         set { SetFontSlant(value); }
     }
     /// <summary>Type of width of the displayed font
-/// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
-/// <value>Font width</value>
+    /// Default is <see cref="Efl.TextFontWidth.Normal"/>.</summary>
+    /// <value>Font width</value>
     public Efl.TextFontWidth FontWidth {
         get { return GetFontWidth(); }
         set { SetFontWidth(value); }
     }
     /// <summary>Specific language of the displayed font
-/// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
-/// <value>Language</value>
+    /// This is used to lookup fonts suitable to the specified language, as well as helping the font shaper backend. The language <c>lang</c> can be either a code e.g &quot;en_US&quot;, &quot;auto&quot; to use the system locale, or &quot;none&quot;.</summary>
+    /// <value>Language</value>
     public System.String FontLang {
         get { return GetFontLang(); }
         set { SetFontLang(value); }
     }
     /// <summary>The bitmap fonts have fixed size glyphs for several available sizes. Basically, it is not scalable. But, it needs to be scalable for some use cases. (ex. colorful emoji fonts)
-/// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
-/// <value>Scalable</value>
+    /// Default is <see cref="Efl.TextFontBitmapScalable.None"/>.</summary>
+    /// <value>Scalable</value>
     public Efl.TextFontBitmapScalable FontBitmapScalable {
         get { return GetFontBitmapScalable(); }
         set { SetFontBitmapScalable(value); }
     }
     /// <summary>Ellipsis value (number from -1.0 to 1.0)</summary>
-/// <value>Ellipsis value</value>
+    /// <value>Ellipsis value</value>
     public double Ellipsis {
         get { return GetEllipsis(); }
         set { SetEllipsis(value); }
     }
     /// <summary>Wrap mode for use in the text</summary>
-/// <value>Wrap mode</value>
+    /// <value>Wrap mode</value>
     public Efl.TextFormatWrap Wrap {
         get { return GetWrap(); }
         set { SetWrap(value); }
     }
     /// <summary>Multiline is enabled or not</summary>
-/// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if multiline is enabled, <c>false</c> otherwise</value>
     public bool Multiline {
         get { return GetMultiline(); }
         set { SetMultiline(value); }
     }
     /// <summary>Horizontal alignment of text</summary>
-/// <value>Alignment type</value>
+    /// <value>Alignment type</value>
     public Efl.TextFormatHorizontalAlignmentAutoType HalignAutoType {
         get { return GetHalignAutoType(); }
         set { SetHalignAutoType(value); }
     }
     /// <summary>Horizontal alignment of text</summary>
-/// <value>Horizontal alignment value</value>
+    /// <value>Horizontal alignment value</value>
     public double Halign {
         get { return GetHalign(); }
         set { SetHalign(value); }
     }
     /// <summary>Vertical alignment of text</summary>
-/// <value>Vertical alignment value</value>
+    /// <value>Vertical alignment value</value>
     public double Valign {
         get { return GetValign(); }
         set { SetValign(value); }
     }
     /// <summary>Minimal line gap (top and bottom) for each line in the text
-/// <c>value</c> is absolute size.</summary>
-/// <value>Line gap value</value>
+    /// <c>value</c> is absolute size.</summary>
+    /// <value>Line gap value</value>
     public double Linegap {
         get { return GetLinegap(); }
         set { SetLinegap(value); }
     }
     /// <summary>Relative line gap (top and bottom) for each line in the text
-/// The original line gap value is multiplied by <c>value</c>.</summary>
-/// <value>Relative line gap value</value>
+    /// The original line gap value is multiplied by <c>value</c>.</summary>
+    /// <value>Relative line gap value</value>
     public double Linerelgap {
         get { return GetLinerelgap(); }
         set { SetLinerelgap(value); }
     }
     /// <summary>Tabstops value</summary>
-/// <value>Tapstops value</value>
+    /// <value>Tapstops value</value>
     public int Tabstops {
         get { return GetTabstops(); }
         set { SetTabstops(value); }
     }
     /// <summary>Whether text is a password</summary>
-/// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the text is a password, <c>false</c> otherwise</value>
     public bool Password {
         get { return GetPassword(); }
         set { SetPassword(value); }
     }
     /// <summary>The character used to replace characters that can&apos;t be displayed
-/// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
-/// <value>Replacement character</value>
+    /// Currently only used to replace characters if <see cref="Efl.ITextFormat.Password"/> is enabled.</summary>
+    /// <value>Replacement character</value>
     public System.String ReplacementChar {
         get { return GetReplacementChar(); }
         set { SetReplacementChar(value); }
     }
     /// <summary>Whether or not selection is allowed on this object</summary>
-/// <value><c>true</c> if enabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if enabled, <c>false</c> otherwise</value>
     public bool SelectionAllowed {
         get { return GetSelectionAllowed(); }
         set { SetSelectionAllowed(value); }
     }
     /// <summary>Whether the entry is editable.
-/// By default text interactives are editable. However setting this property to <c>false</c> will make it so that key input will be disregarded.</summary>
-/// <value>If <c>true</c>, user input will be inserted in the entry, if not, the entry is read-only and no user input is allowed.</value>
+    /// By default text interactives are editable. However setting this property to <c>false</c> will make it so that key input will be disregarded.</summary>
+    /// <value>If <c>true</c>, user input will be inserted in the entry, if not, the entry is read-only and no user input is allowed.</value>
     public bool Editable {
         get { return GetEditable(); }
         set { SetEditable(value); }
     }
+    /// <summary>Markup property</summary>
+    /// <value>The markup-text representation set to this text.</value>
+    public System.String Markup {
+        get { return GetMarkup(); }
+        set { SetMarkup(value); }
+    }
     /// <summary>Enable or disable backing type</summary>
-/// <value>Backing type</value>
+    /// <value>Backing type</value>
     public Efl.TextStyleBackingType BackingType {
         get { return GetBackingType(); }
         set { SetBackingType(value); }
     }
     /// <summary>Sets an underline style on the text</summary>
-/// <value>Underline type</value>
+    /// <value>Underline type</value>
     public Efl.TextStyleUnderlineType UnderlineType {
         get { return GetUnderlineType(); }
         set { SetUnderlineType(value); }
     }
     /// <summary>Height of underline style</summary>
-/// <value>Height</value>
+    /// <value>Height</value>
     public double UnderlineHeight {
         get { return GetUnderlineHeight(); }
         set { SetUnderlineHeight(value); }
     }
     /// <summary>Width of dashed underline style</summary>
-/// <value>Width</value>
+    /// <value>Width</value>
     public int UnderlineDashedWidth {
         get { return GetUnderlineDashedWidth(); }
         set { SetUnderlineDashedWidth(value); }
     }
     /// <summary>Gap of dashed underline style</summary>
-/// <value>Gap</value>
+    /// <value>Gap</value>
     public int UnderlineDashedGap {
         get { return GetUnderlineDashedGap(); }
         set { SetUnderlineDashedGap(value); }
     }
     /// <summary>Type of strikethrough style</summary>
-/// <value>Strikethrough type</value>
+    /// <value>Strikethrough type</value>
     public Efl.TextStyleStrikethroughType StrikethroughType {
         get { return GetStrikethroughType(); }
         set { SetStrikethroughType(value); }
     }
     /// <summary>Type of effect used for the displayed text</summary>
-/// <value>Effect type</value>
+    /// <value>Effect type</value>
     public Efl.TextStyleEffectType EffectType {
         get { return GetEffectType(); }
         set { SetEffectType(value); }
     }
     /// <summary>Direction of shadow effect</summary>
-/// <value>Shadow direction</value>
+    /// <value>Shadow direction</value>
     public Efl.TextStyleShadowDirection ShadowDirection {
         get { return GetShadowDirection(); }
         set { SetShadowDirection(value); }
     }
     /// <summary>Program that applies a special filter
-/// See <see cref="Efl.Gfx.IFilter"/>.</summary>
-/// <value>Filter code</value>
+    /// See <see cref="Efl.Gfx.IFilter"/>.</summary>
+    /// <value>Filter code</value>
     public System.String GfxFilter {
         get { return GetGfxFilter(); }
         set { SetGfxFilter(value); }
     }
     /// <summary>Caret offset property</summary>
-/// <value>Offset</value>
+    /// <value>Offset</value>
     public int CaretOffset {
         get { return GetCaretOffset(); }
         set { SetCaretOffset(value); }
     }
     /// <summary>Default attributes</summary>
-/// <value>List of default attributes</value>
+    /// <value>List of default attributes</value>
     public Eina.List<Efl.Access.TextAttribute> DefaultAttributes {
         get { return GetDefaultAttributes(); }
     }
     /// <summary>Character count</summary>
-/// <value>Character count</value>
+    /// <value>Character count</value>
     public int CharacterCount {
         get { return GetCharacterCount(); }
     }
     /// <summary>Selection count property</summary>
-/// <value>Selection counter</value>
+    /// <value>Selection counter</value>
     public int SelectionsCount {
         get { return GetSelectionsCount(); }
     }
     /// <summary>Editable content property</summary>
-/// <value>Content</value>
+    /// <value>Content</value>
     public System.String TextContent {
         set { SetTextContent(value); }
     }
@@ -4721,6 +4580,26 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_interactive_select_none"), func = Marshal.GetFunctionPointerForDelegate(efl_text_interactive_select_none_static_delegate) });
             }
 
+            if (efl_text_markup_get_static_delegate == null)
+            {
+                efl_text_markup_get_static_delegate = new efl_text_markup_get_delegate(markup_get);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "GetMarkup") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_markup_get"), func = Marshal.GetFunctionPointerForDelegate(efl_text_markup_get_static_delegate) });
+            }
+
+            if (efl_text_markup_set_static_delegate == null)
+            {
+                efl_text_markup_set_static_delegate = new efl_text_markup_set_delegate(markup_set);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "SetMarkup") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_text_markup_set"), func = Marshal.GetFunctionPointerForDelegate(efl_text_markup_set_static_delegate) });
+            }
+
             if (efl_text_normal_color_get_static_delegate == null)
             {
                 efl_text_normal_color_get_static_delegate = new efl_text_normal_color_get_delegate(normal_color_get);
@@ -5341,6 +5220,36 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_access_editable_text_paste"), func = Marshal.GetFunctionPointerForDelegate(efl_access_editable_text_paste_static_delegate) });
             }
 
+            if (efl_ui_clickable_press_static_delegate == null)
+            {
+                efl_ui_clickable_press_static_delegate = new efl_ui_clickable_press_delegate(press);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Press") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_press"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_press_static_delegate) });
+            }
+
+            if (efl_ui_clickable_unpress_static_delegate == null)
+            {
+                efl_ui_clickable_unpress_static_delegate = new efl_ui_clickable_unpress_delegate(unpress);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "Unpress") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_unpress"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_unpress_static_delegate) });
+            }
+
+            if (efl_ui_clickable_button_state_reset_static_delegate == null)
+            {
+                efl_ui_clickable_button_state_reset_static_delegate = new efl_ui_clickable_button_state_reset_delegate(button_state_reset);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "ResetButtonState") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_ui_clickable_button_state_reset"), func = Marshal.GetFunctionPointerForDelegate(efl_ui_clickable_button_state_reset_static_delegate) });
+            }
+
             descs.AddRange(base.GetEoOps(type));
             return descs;
         }
@@ -5351,7 +5260,7 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
             return Efl.Ui.Text.efl_ui_text_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_text_scrollable_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -5364,13 +5273,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool scrollable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_scrollable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetScrollable();
+                    _ret_var = ((Text)ws.Target).GetScrollable();
                 }
                 catch (Exception e)
                 {
@@ -5400,13 +5309,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void scrollable_set(System.IntPtr obj, System.IntPtr pd, bool scroll)
         {
             Eina.Log.Debug("function efl_ui_text_scrollable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetScrollable(scroll);
+                    ((Text)ws.Target).SetScrollable(scroll);
                 }
                 catch (Exception e)
                 {
@@ -5435,13 +5344,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool input_panel_show_on_demand_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_show_on_demand_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetInputPanelShowOnDemand();
+                    _ret_var = ((Text)ws.Target).GetInputPanelShowOnDemand();
                 }
                 catch (Exception e)
                 {
@@ -5471,13 +5380,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_show_on_demand_set(System.IntPtr obj, System.IntPtr pd, bool ondemand)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_show_on_demand_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetInputPanelShowOnDemand(ondemand);
+                    ((Text)ws.Target).SetInputPanelShowOnDemand(ondemand);
                 }
                 catch (Exception e)
                 {
@@ -5506,13 +5415,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool context_menu_disabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_context_menu_disabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetContextMenuDisabled();
+                    _ret_var = ((Text)ws.Target).GetContextMenuDisabled();
                 }
                 catch (Exception e)
                 {
@@ -5542,13 +5451,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void context_menu_disabled_set(System.IntPtr obj, System.IntPtr pd, bool disabled)
         {
             Eina.Log.Debug("function efl_ui_text_context_menu_disabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetContextMenuDisabled(disabled);
+                    ((Text)ws.Target).SetContextMenuDisabled(disabled);
                 }
                 catch (Exception e)
                 {
@@ -5577,13 +5486,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.Ui.SelectionFormat cnp_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_cnp_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.SelectionFormat _ret_var = default(Efl.Ui.SelectionFormat);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetCnpMode();
+                    _ret_var = ((Text)ws.Target).GetCnpMode();
                 }
                 catch (Exception e)
                 {
@@ -5613,13 +5522,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void cnp_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format)
         {
             Eina.Log.Debug("function efl_ui_text_cnp_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetCnpMode(format);
+                    ((Text)ws.Target).SetCnpMode(format);
                 }
                 catch (Exception e)
                 {
@@ -5648,13 +5557,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Elm.Input.Panel.Lang input_panel_language_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_language_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Elm.Input.Panel.Lang _ret_var = default(Elm.Input.Panel.Lang);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetInputPanelLanguage();
+                    _ret_var = ((Text)ws.Target).GetInputPanelLanguage();
                 }
                 catch (Exception e)
                 {
@@ -5684,13 +5593,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_language_set(System.IntPtr obj, System.IntPtr pd, Elm.Input.Panel.Lang lang)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_language_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetInputPanelLanguage(lang);
+                    ((Text)ws.Target).SetInputPanelLanguage(lang);
                 }
                 catch (Exception e)
                 {
@@ -5719,13 +5628,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool selection_handler_disabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_selection_handler_disabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetSelectionHandlerDisabled();
+                    _ret_var = ((Text)ws.Target).GetSelectionHandlerDisabled();
                 }
                 catch (Exception e)
                 {
@@ -5755,13 +5664,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void selection_handler_disabled_set(System.IntPtr obj, System.IntPtr pd, bool disabled)
         {
             Eina.Log.Debug("function efl_ui_text_selection_handler_disabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetSelectionHandlerDisabled(disabled);
+                    ((Text)ws.Target).SetSelectionHandlerDisabled(disabled);
                 }
                 catch (Exception e)
                 {
@@ -5790,13 +5699,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static int input_panel_layout_variation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_layout_variation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetInputPanelLayoutVariation();
+                    _ret_var = ((Text)ws.Target).GetInputPanelLayoutVariation();
                 }
                 catch (Exception e)
                 {
@@ -5826,13 +5735,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_layout_variation_set(System.IntPtr obj, System.IntPtr pd, int variation)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_layout_variation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetInputPanelLayoutVariation(variation);
+                    ((Text)ws.Target).SetInputPanelLayoutVariation(variation);
                 }
                 catch (Exception e)
                 {
@@ -5861,13 +5770,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Elm.Autocapital.Type autocapital_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_autocapital_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Elm.Autocapital.Type _ret_var = default(Elm.Autocapital.Type);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetAutocapitalType();
+                    _ret_var = ((Text)ws.Target).GetAutocapitalType();
                 }
                 catch (Exception e)
                 {
@@ -5897,13 +5806,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void autocapital_type_set(System.IntPtr obj, System.IntPtr pd, Elm.Autocapital.Type autocapital_type)
         {
             Eina.Log.Debug("function efl_ui_text_autocapital_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetAutocapitalType(autocapital_type);
+                    ((Text)ws.Target).SetAutocapitalType(autocapital_type);
                 }
                 catch (Exception e)
                 {
@@ -5932,13 +5841,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool password_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_password_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetPasswordMode();
+                    _ret_var = ((Text)ws.Target).GetPasswordMode();
                 }
                 catch (Exception e)
                 {
@@ -5968,13 +5877,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void password_mode_set(System.IntPtr obj, System.IntPtr pd, bool password)
         {
             Eina.Log.Debug("function efl_ui_text_password_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetPasswordMode(password);
+                    ((Text)ws.Target).SetPasswordMode(password);
                 }
                 catch (Exception e)
                 {
@@ -6003,13 +5912,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool input_panel_return_key_disabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_return_key_disabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetInputPanelReturnKeyDisabled();
+                    _ret_var = ((Text)ws.Target).GetInputPanelReturnKeyDisabled();
                 }
                 catch (Exception e)
                 {
@@ -6039,13 +5948,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_return_key_disabled_set(System.IntPtr obj, System.IntPtr pd, bool disabled)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_return_key_disabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetInputPanelReturnKeyDisabled(disabled);
+                    ((Text)ws.Target).SetInputPanelReturnKeyDisabled(disabled);
                 }
                 catch (Exception e)
                 {
@@ -6074,13 +5983,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool prediction_allow_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_prediction_allow_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetPredictionAllow();
+                    _ret_var = ((Text)ws.Target).GetPredictionAllow();
                 }
                 catch (Exception e)
                 {
@@ -6110,13 +6019,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void prediction_allow_set(System.IntPtr obj, System.IntPtr pd, bool prediction)
         {
             Eina.Log.Debug("function efl_ui_text_prediction_allow_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetPredictionAllow(prediction);
+                    ((Text)ws.Target).SetPredictionAllow(prediction);
                 }
                 catch (Exception e)
                 {
@@ -6145,13 +6054,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Elm.Input.Hints input_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_input_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Elm.Input.Hints _ret_var = default(Elm.Input.Hints);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetInputHint();
+                    _ret_var = ((Text)ws.Target).GetInputHint();
                 }
                 catch (Exception e)
                 {
@@ -6181,13 +6090,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_hint_set(System.IntPtr obj, System.IntPtr pd, Elm.Input.Hints hints)
         {
             Eina.Log.Debug("function efl_ui_text_input_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetInputHint(hints);
+                    ((Text)ws.Target).SetInputHint(hints);
                 }
                 catch (Exception e)
                 {
@@ -6216,13 +6125,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Elm.Input.Panel.Layout input_panel_layout_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_layout_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Elm.Input.Panel.Layout _ret_var = default(Elm.Input.Panel.Layout);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetInputPanelLayout();
+                    _ret_var = ((Text)ws.Target).GetInputPanelLayout();
                 }
                 catch (Exception e)
                 {
@@ -6252,13 +6161,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_layout_set(System.IntPtr obj, System.IntPtr pd, Elm.Input.Panel.Layout layout)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_layout_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetInputPanelLayout(layout);
+                    ((Text)ws.Target).SetInputPanelLayout(layout);
                 }
                 catch (Exception e)
                 {
@@ -6287,13 +6196,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Elm.Input.Panel.ReturnKey.Type input_panel_return_key_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_return_key_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Elm.Input.Panel.ReturnKey.Type _ret_var = default(Elm.Input.Panel.ReturnKey.Type);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetInputPanelReturnKeyType();
+                    _ret_var = ((Text)ws.Target).GetInputPanelReturnKeyType();
                 }
                 catch (Exception e)
                 {
@@ -6323,13 +6232,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_return_key_type_set(System.IntPtr obj, System.IntPtr pd, Elm.Input.Panel.ReturnKey.Type return_key_type)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_return_key_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetInputPanelReturnKeyType(return_key_type);
+                    ((Text)ws.Target).SetInputPanelReturnKeyType(return_key_type);
                 }
                 catch (Exception e)
                 {
@@ -6358,13 +6267,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool input_panel_enabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetInputPanelEnabled();
+                    _ret_var = ((Text)ws.Target).GetInputPanelEnabled();
                 }
                 catch (Exception e)
                 {
@@ -6394,13 +6303,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_enabled_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetInputPanelEnabled(enabled);
+                    ((Text)ws.Target).SetInputPanelEnabled(enabled);
                 }
                 catch (Exception e)
                 {
@@ -6429,13 +6338,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_return_key_autoenabled_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_return_key_autoenabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetInputPanelReturnKeyAutoenabled(enabled);
+                    ((Text)ws.Target).SetInputPanelReturnKeyAutoenabled(enabled);
                 }
                 catch (Exception e)
                 {
@@ -6464,13 +6373,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.Canvas.ITextFactory item_factory_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_item_factory_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.ITextFactory _ret_var = default(Efl.Canvas.ITextFactory);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetItemFactory();
+                    _ret_var = ((Text)ws.Target).GetItemFactory();
                 }
                 catch (Exception e)
                 {
@@ -6500,13 +6409,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void item_factory_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.ITextFactory item_factory)
         {
             Eina.Log.Debug("function efl_ui_text_item_factory_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetItemFactory(item_factory);
+                    ((Text)ws.Target).SetItemFactory(item_factory);
                 }
                 catch (Exception e)
                 {
@@ -6535,13 +6444,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_show(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_show was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Text)wrapper).ShowInputPanel();
+                    ((Text)ws.Target).ShowInputPanel();
                 }
                 catch (Exception e)
                 {
@@ -6570,13 +6479,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void selection_copy(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_selection_copy was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Text)wrapper).SelectionCopy();
+                    ((Text)ws.Target).SelectionCopy();
                 }
                 catch (Exception e)
                 {
@@ -6605,13 +6514,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void context_menu_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_context_menu_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Text)wrapper).ClearContextMenu();
+                    ((Text)ws.Target).ClearContextMenu();
                 }
                 catch (Exception e)
                 {
@@ -6640,13 +6549,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_imdata_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr data, int len)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_imdata_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Text)wrapper).SetInputPanelImdata(data, len);
+                    ((Text)ws.Target).SetInputPanelImdata(data, len);
                 }
                 catch (Exception e)
                 {
@@ -6675,13 +6584,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_imdata_get(System.IntPtr obj, System.IntPtr pd, ref System.IntPtr data, out int len)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_imdata_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 len = default(int);                            
                 try
                 {
-                    ((Text)wrapper).GetInputPanelImdata(ref data, out len);
+                    ((Text)ws.Target).GetInputPanelImdata(ref data, out len);
                 }
                 catch (Exception e)
                 {
@@ -6710,13 +6619,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void selection_paste(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_selection_paste was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Text)wrapper).SelectionPaste();
+                    ((Text)ws.Target).SelectionPaste();
                 }
                 catch (Exception e)
                 {
@@ -6745,13 +6654,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void input_panel_hide(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_input_panel_hide was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Text)wrapper).HideInputPanel();
+                    ((Text)ws.Target).HideInputPanel();
                 }
                 catch (Exception e)
                 {
@@ -6780,13 +6689,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void cursor_selection_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_cursor_selection_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Text)wrapper).CursorSelectionEnd();
+                    ((Text)ws.Target).CursorSelectionEnd();
                 }
                 catch (Exception e)
                 {
@@ -6815,13 +6724,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void selection_cut(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_selection_cut was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Text)wrapper).SelectionCut();
+                    ((Text)ws.Target).SelectionCut();
                 }
                 catch (Exception e)
                 {
@@ -6850,13 +6759,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void context_menu_item_add(System.IntPtr obj, System.IntPtr pd, System.String label, System.String icon_file, Elm.Icon.Type icon_type, EvasSmartCb func, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_ui_text_context_menu_item_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((Text)wrapper).AddContextMenuItem(label, icon_file, icon_type, func, data);
+                    ((Text)ws.Target).AddContextMenuItem(label, icon_file, icon_type, func, data);
                 }
                 catch (Exception e)
                 {
@@ -6885,13 +6794,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextCursorCursor cursor_new(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_text_cursor_new was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextCursorCursor _ret_var = default(Efl.TextCursorCursor);
                 try
                 {
-                    _ret_var = ((Text)wrapper).NewCursor();
+                    _ret_var = ((Text)ws.Target).NewCursor();
                 }
                 catch (Exception e)
                 {
@@ -6921,13 +6830,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetMmap();
+                    _ret_var = ((Text)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -6957,13 +6866,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Text)wrapper).SetMmap(f);
+                    _ret_var = ((Text)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -6993,13 +6902,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetFile();
+                    _ret_var = ((Text)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -7029,13 +6938,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Text)wrapper).SetFile(file);
+                    _ret_var = ((Text)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -7065,13 +6974,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetKey();
+                    _ret_var = ((Text)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -7101,13 +7010,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetKey(key);
+                    ((Text)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -7136,13 +7045,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetLoaded();
+                    _ret_var = ((Text)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -7172,13 +7081,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Text)wrapper).Load();
+                    _ret_var = ((Text)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -7208,13 +7117,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Text)wrapper).Unload();
+                    ((Text)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -7243,13 +7152,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetText();
+                    _ret_var = ((Text)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -7279,13 +7188,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetText(text);
+                    ((Text)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -7314,14 +7223,14 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void font_get(System.IntPtr obj, System.IntPtr pd, out System.String font, out Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_text_font_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         System.String _out_font = default(System.String);
         size = default(Efl.Font.Size);                            
                 try
                 {
-                    ((Text)wrapper).GetFont(out _out_font, out size);
+                    ((Text)ws.Target).GetFont(out _out_font, out size);
                 }
                 catch (Exception e)
                 {
@@ -7351,13 +7260,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void font_set(System.IntPtr obj, System.IntPtr pd, System.String font, Efl.Font.Size size)
         {
             Eina.Log.Debug("function efl_text_font_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Text)wrapper).SetFont(font, size);
+                    ((Text)ws.Target).SetFont(font, size);
                 }
                 catch (Exception e)
                 {
@@ -7386,13 +7295,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.String font_source_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetFontSource();
+                    _ret_var = ((Text)ws.Target).GetFontSource();
                 }
                 catch (Exception e)
                 {
@@ -7422,13 +7331,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void font_source_set(System.IntPtr obj, System.IntPtr pd, System.String font_source)
         {
             Eina.Log.Debug("function efl_text_font_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetFontSource(font_source);
+                    ((Text)ws.Target).SetFontSource(font_source);
                 }
                 catch (Exception e)
                 {
@@ -7457,13 +7366,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.String font_fallbacks_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_fallbacks_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetFontFallbacks();
+                    _ret_var = ((Text)ws.Target).GetFontFallbacks();
                 }
                 catch (Exception e)
                 {
@@ -7493,13 +7402,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void font_fallbacks_set(System.IntPtr obj, System.IntPtr pd, System.String font_fallbacks)
         {
             Eina.Log.Debug("function efl_text_font_fallbacks_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetFontFallbacks(font_fallbacks);
+                    ((Text)ws.Target).SetFontFallbacks(font_fallbacks);
                 }
                 catch (Exception e)
                 {
@@ -7528,13 +7437,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextFontWeight font_weight_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_weight_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontWeight _ret_var = default(Efl.TextFontWeight);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetFontWeight();
+                    _ret_var = ((Text)ws.Target).GetFontWeight();
                 }
                 catch (Exception e)
                 {
@@ -7564,13 +7473,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void font_weight_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontWeight font_weight)
         {
             Eina.Log.Debug("function efl_text_font_weight_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetFontWeight(font_weight);
+                    ((Text)ws.Target).SetFontWeight(font_weight);
                 }
                 catch (Exception e)
                 {
@@ -7599,13 +7508,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextFontSlant font_slant_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_slant_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontSlant _ret_var = default(Efl.TextFontSlant);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetFontSlant();
+                    _ret_var = ((Text)ws.Target).GetFontSlant();
                 }
                 catch (Exception e)
                 {
@@ -7635,13 +7544,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void font_slant_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontSlant style)
         {
             Eina.Log.Debug("function efl_text_font_slant_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetFontSlant(style);
+                    ((Text)ws.Target).SetFontSlant(style);
                 }
                 catch (Exception e)
                 {
@@ -7670,13 +7579,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextFontWidth font_width_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_width_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontWidth _ret_var = default(Efl.TextFontWidth);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetFontWidth();
+                    _ret_var = ((Text)ws.Target).GetFontWidth();
                 }
                 catch (Exception e)
                 {
@@ -7706,13 +7615,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void font_width_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontWidth width)
         {
             Eina.Log.Debug("function efl_text_font_width_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetFontWidth(width);
+                    ((Text)ws.Target).SetFontWidth(width);
                 }
                 catch (Exception e)
                 {
@@ -7741,13 +7650,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.String font_lang_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_lang_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetFontLang();
+                    _ret_var = ((Text)ws.Target).GetFontLang();
                 }
                 catch (Exception e)
                 {
@@ -7777,13 +7686,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void font_lang_set(System.IntPtr obj, System.IntPtr pd, System.String lang)
         {
             Eina.Log.Debug("function efl_text_font_lang_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetFontLang(lang);
+                    ((Text)ws.Target).SetFontLang(lang);
                 }
                 catch (Exception e)
                 {
@@ -7812,13 +7721,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextFontBitmapScalable font_bitmap_scalable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_font_bitmap_scalable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFontBitmapScalable _ret_var = default(Efl.TextFontBitmapScalable);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetFontBitmapScalable();
+                    _ret_var = ((Text)ws.Target).GetFontBitmapScalable();
                 }
                 catch (Exception e)
                 {
@@ -7848,13 +7757,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void font_bitmap_scalable_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFontBitmapScalable scalable)
         {
             Eina.Log.Debug("function efl_text_font_bitmap_scalable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetFontBitmapScalable(scalable);
+                    ((Text)ws.Target).SetFontBitmapScalable(scalable);
                 }
                 catch (Exception e)
                 {
@@ -7883,13 +7792,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static double ellipsis_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_ellipsis_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetEllipsis();
+                    _ret_var = ((Text)ws.Target).GetEllipsis();
                 }
                 catch (Exception e)
                 {
@@ -7919,13 +7828,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void ellipsis_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_ellipsis_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetEllipsis(value);
+                    ((Text)ws.Target).SetEllipsis(value);
                 }
                 catch (Exception e)
                 {
@@ -7954,13 +7863,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextFormatWrap wrap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_wrap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFormatWrap _ret_var = default(Efl.TextFormatWrap);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetWrap();
+                    _ret_var = ((Text)ws.Target).GetWrap();
                 }
                 catch (Exception e)
                 {
@@ -7990,13 +7899,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void wrap_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFormatWrap wrap)
         {
             Eina.Log.Debug("function efl_text_wrap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetWrap(wrap);
+                    ((Text)ws.Target).SetWrap(wrap);
                 }
                 catch (Exception e)
                 {
@@ -8025,13 +7934,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool multiline_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_multiline_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetMultiline();
+                    _ret_var = ((Text)ws.Target).GetMultiline();
                 }
                 catch (Exception e)
                 {
@@ -8061,13 +7970,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void multiline_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_text_multiline_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetMultiline(enabled);
+                    ((Text)ws.Target).SetMultiline(enabled);
                 }
                 catch (Exception e)
                 {
@@ -8096,13 +8005,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextFormatHorizontalAlignmentAutoType halign_auto_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_halign_auto_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextFormatHorizontalAlignmentAutoType _ret_var = default(Efl.TextFormatHorizontalAlignmentAutoType);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetHalignAutoType();
+                    _ret_var = ((Text)ws.Target).GetHalignAutoType();
                 }
                 catch (Exception e)
                 {
@@ -8132,13 +8041,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void halign_auto_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextFormatHorizontalAlignmentAutoType value)
         {
             Eina.Log.Debug("function efl_text_halign_auto_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetHalignAutoType(value);
+                    ((Text)ws.Target).SetHalignAutoType(value);
                 }
                 catch (Exception e)
                 {
@@ -8167,13 +8076,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static double halign_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_halign_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetHalign();
+                    _ret_var = ((Text)ws.Target).GetHalign();
                 }
                 catch (Exception e)
                 {
@@ -8203,13 +8112,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void halign_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_halign_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetHalign(value);
+                    ((Text)ws.Target).SetHalign(value);
                 }
                 catch (Exception e)
                 {
@@ -8238,13 +8147,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static double valign_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_valign_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetValign();
+                    _ret_var = ((Text)ws.Target).GetValign();
                 }
                 catch (Exception e)
                 {
@@ -8274,13 +8183,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void valign_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_valign_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetValign(value);
+                    ((Text)ws.Target).SetValign(value);
                 }
                 catch (Exception e)
                 {
@@ -8309,13 +8218,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static double linegap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_linegap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetLinegap();
+                    _ret_var = ((Text)ws.Target).GetLinegap();
                 }
                 catch (Exception e)
                 {
@@ -8345,13 +8254,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void linegap_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_linegap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetLinegap(value);
+                    ((Text)ws.Target).SetLinegap(value);
                 }
                 catch (Exception e)
                 {
@@ -8380,13 +8289,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static double linerelgap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_linerelgap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetLinerelgap();
+                    _ret_var = ((Text)ws.Target).GetLinerelgap();
                 }
                 catch (Exception e)
                 {
@@ -8416,13 +8325,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void linerelgap_set(System.IntPtr obj, System.IntPtr pd, double value)
         {
             Eina.Log.Debug("function efl_text_linerelgap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetLinerelgap(value);
+                    ((Text)ws.Target).SetLinerelgap(value);
                 }
                 catch (Exception e)
                 {
@@ -8451,13 +8360,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static int tabstops_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_tabstops_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetTabstops();
+                    _ret_var = ((Text)ws.Target).GetTabstops();
                 }
                 catch (Exception e)
                 {
@@ -8487,13 +8396,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void tabstops_set(System.IntPtr obj, System.IntPtr pd, int value)
         {
             Eina.Log.Debug("function efl_text_tabstops_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetTabstops(value);
+                    ((Text)ws.Target).SetTabstops(value);
                 }
                 catch (Exception e)
                 {
@@ -8522,13 +8431,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool password_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_password_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetPassword();
+                    _ret_var = ((Text)ws.Target).GetPassword();
                 }
                 catch (Exception e)
                 {
@@ -8558,13 +8467,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void password_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_text_password_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetPassword(enabled);
+                    ((Text)ws.Target).SetPassword(enabled);
                 }
                 catch (Exception e)
                 {
@@ -8593,13 +8502,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.String replacement_char_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_replacement_char_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetReplacementChar();
+                    _ret_var = ((Text)ws.Target).GetReplacementChar();
                 }
                 catch (Exception e)
                 {
@@ -8629,13 +8538,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void replacement_char_set(System.IntPtr obj, System.IntPtr pd, System.String repch)
         {
             Eina.Log.Debug("function efl_text_replacement_char_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetReplacementChar(repch);
+                    ((Text)ws.Target).SetReplacementChar(repch);
                 }
                 catch (Exception e)
                 {
@@ -8664,13 +8573,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool selection_allowed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_interactive_selection_allowed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetSelectionAllowed();
+                    _ret_var = ((Text)ws.Target).GetSelectionAllowed();
                 }
                 catch (Exception e)
                 {
@@ -8700,13 +8609,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void selection_allowed_set(System.IntPtr obj, System.IntPtr pd, bool allowed)
         {
             Eina.Log.Debug("function efl_text_interactive_selection_allowed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetSelectionAllowed(allowed);
+                    ((Text)ws.Target).SetSelectionAllowed(allowed);
                 }
                 catch (Exception e)
                 {
@@ -8735,13 +8644,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void selection_cursors_get(System.IntPtr obj, System.IntPtr pd, out Efl.TextCursorCursor start, out Efl.TextCursorCursor end)
         {
             Eina.Log.Debug("function efl_text_interactive_selection_cursors_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         start = default(Efl.TextCursorCursor);        end = default(Efl.TextCursorCursor);                            
                 try
                 {
-                    ((Text)wrapper).GetSelectionCursors(out start, out end);
+                    ((Text)ws.Target).GetSelectionCursors(out start, out end);
                 }
                 catch (Exception e)
                 {
@@ -8770,13 +8679,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool editable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_interactive_editable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetEditable();
+                    _ret_var = ((Text)ws.Target).GetEditable();
                 }
                 catch (Exception e)
                 {
@@ -8806,13 +8715,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void editable_set(System.IntPtr obj, System.IntPtr pd, bool editable)
         {
             Eina.Log.Debug("function efl_text_interactive_editable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetEditable(editable);
+                    ((Text)ws.Target).SetEditable(editable);
                 }
                 catch (Exception e)
                 {
@@ -8841,13 +8750,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void select_none(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_interactive_select_none was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Text)wrapper).SelectNone();
+                    ((Text)ws.Target).SelectNone();
                 }
                 catch (Exception e)
                 {
@@ -8865,6 +8774,77 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
 
         private static efl_text_interactive_select_none_delegate efl_text_interactive_select_none_static_delegate;
 
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        private delegate System.String efl_text_markup_get_delegate(System.IntPtr obj, System.IntPtr pd);
+
+        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
+        public delegate System.String efl_text_markup_get_api_delegate(System.IntPtr obj);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_markup_get_api_delegate> efl_text_markup_get_ptr = new Efl.Eo.FunctionWrapper<efl_text_markup_get_api_delegate>(Module, "efl_text_markup_get");
+
+        private static System.String markup_get(System.IntPtr obj, System.IntPtr pd)
+        {
+            Eina.Log.Debug("function efl_text_markup_get was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+            System.String _ret_var = default(System.String);
+                try
+                {
+                    _ret_var = ((Text)ws.Target).GetMarkup();
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+        return _ret_var;
+
+            }
+            else
+            {
+                return efl_text_markup_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)));
+            }
+        }
+
+        private static efl_text_markup_get_delegate efl_text_markup_get_static_delegate;
+
+        
+        private delegate void efl_text_markup_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String markup);
+
+        
+        public delegate void efl_text_markup_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String markup);
+
+        public static Efl.Eo.FunctionWrapper<efl_text_markup_set_api_delegate> efl_text_markup_set_ptr = new Efl.Eo.FunctionWrapper<efl_text_markup_set_api_delegate>(Module, "efl_text_markup_set");
+
+        private static void markup_set(System.IntPtr obj, System.IntPtr pd, System.String markup)
+        {
+            Eina.Log.Debug("function efl_text_markup_set was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).SetMarkup(markup);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_text_markup_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), markup);
+            }
+        }
+
+        private static efl_text_markup_set_delegate efl_text_markup_set_static_delegate;
+
         
         private delegate void efl_text_normal_color_get_delegate(System.IntPtr obj, System.IntPtr pd,  out byte r,  out byte g,  out byte b,  out byte a);
 
@@ -8876,13 +8856,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void normal_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_normal_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((Text)wrapper).GetNormalColor(out r, out g, out b, out a);
+                    ((Text)ws.Target).GetNormalColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -8911,13 +8891,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void normal_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_normal_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Text)wrapper).SetNormalColor(r, g, b, a);
+                    ((Text)ws.Target).SetNormalColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -8946,13 +8926,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextStyleBackingType backing_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_backing_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleBackingType _ret_var = default(Efl.TextStyleBackingType);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetBackingType();
+                    _ret_var = ((Text)ws.Target).GetBackingType();
                 }
                 catch (Exception e)
                 {
@@ -8982,13 +8962,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void backing_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleBackingType type)
         {
             Eina.Log.Debug("function efl_text_backing_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetBackingType(type);
+                    ((Text)ws.Target).SetBackingType(type);
                 }
                 catch (Exception e)
                 {
@@ -9017,13 +8997,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void backing_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_backing_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((Text)wrapper).GetBackingColor(out r, out g, out b, out a);
+                    ((Text)ws.Target).GetBackingColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -9052,13 +9032,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void backing_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_backing_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Text)wrapper).SetBackingColor(r, g, b, a);
+                    ((Text)ws.Target).SetBackingColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -9087,13 +9067,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextStyleUnderlineType underline_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleUnderlineType _ret_var = default(Efl.TextStyleUnderlineType);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetUnderlineType();
+                    _ret_var = ((Text)ws.Target).GetUnderlineType();
                 }
                 catch (Exception e)
                 {
@@ -9123,13 +9103,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void underline_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleUnderlineType type)
         {
             Eina.Log.Debug("function efl_text_underline_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetUnderlineType(type);
+                    ((Text)ws.Target).SetUnderlineType(type);
                 }
                 catch (Exception e)
                 {
@@ -9158,13 +9138,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void underline_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((Text)wrapper).GetUnderlineColor(out r, out g, out b, out a);
+                    ((Text)ws.Target).GetUnderlineColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -9193,13 +9173,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void underline_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Text)wrapper).SetUnderlineColor(r, g, b, a);
+                    ((Text)ws.Target).SetUnderlineColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -9228,13 +9208,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static double underline_height_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_height_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetUnderlineHeight();
+                    _ret_var = ((Text)ws.Target).GetUnderlineHeight();
                 }
                 catch (Exception e)
                 {
@@ -9264,13 +9244,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void underline_height_set(System.IntPtr obj, System.IntPtr pd, double height)
         {
             Eina.Log.Debug("function efl_text_underline_height_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetUnderlineHeight(height);
+                    ((Text)ws.Target).SetUnderlineHeight(height);
                 }
                 catch (Exception e)
                 {
@@ -9299,13 +9279,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void underline_dashed_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((Text)wrapper).GetUnderlineDashedColor(out r, out g, out b, out a);
+                    ((Text)ws.Target).GetUnderlineDashedColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -9334,13 +9314,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void underline_dashed_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Text)wrapper).SetUnderlineDashedColor(r, g, b, a);
+                    ((Text)ws.Target).SetUnderlineDashedColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -9369,13 +9349,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static int underline_dashed_width_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_width_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetUnderlineDashedWidth();
+                    _ret_var = ((Text)ws.Target).GetUnderlineDashedWidth();
                 }
                 catch (Exception e)
                 {
@@ -9405,13 +9385,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void underline_dashed_width_set(System.IntPtr obj, System.IntPtr pd, int width)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_width_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetUnderlineDashedWidth(width);
+                    ((Text)ws.Target).SetUnderlineDashedWidth(width);
                 }
                 catch (Exception e)
                 {
@@ -9440,13 +9420,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static int underline_dashed_gap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_gap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetUnderlineDashedGap();
+                    _ret_var = ((Text)ws.Target).GetUnderlineDashedGap();
                 }
                 catch (Exception e)
                 {
@@ -9476,13 +9456,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void underline_dashed_gap_set(System.IntPtr obj, System.IntPtr pd, int gap)
         {
             Eina.Log.Debug("function efl_text_underline_dashed_gap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetUnderlineDashedGap(gap);
+                    ((Text)ws.Target).SetUnderlineDashedGap(gap);
                 }
                 catch (Exception e)
                 {
@@ -9511,13 +9491,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void underline2_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_underline2_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((Text)wrapper).GetUnderline2Color(out r, out g, out b, out a);
+                    ((Text)ws.Target).GetUnderline2Color(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -9546,13 +9526,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void underline2_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_underline2_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Text)wrapper).SetUnderline2Color(r, g, b, a);
+                    ((Text)ws.Target).SetUnderline2Color(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -9581,13 +9561,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextStyleStrikethroughType strikethrough_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_strikethrough_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleStrikethroughType _ret_var = default(Efl.TextStyleStrikethroughType);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetStrikethroughType();
+                    _ret_var = ((Text)ws.Target).GetStrikethroughType();
                 }
                 catch (Exception e)
                 {
@@ -9617,13 +9597,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void strikethrough_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleStrikethroughType type)
         {
             Eina.Log.Debug("function efl_text_strikethrough_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetStrikethroughType(type);
+                    ((Text)ws.Target).SetStrikethroughType(type);
                 }
                 catch (Exception e)
                 {
@@ -9652,13 +9632,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void strikethrough_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_strikethrough_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((Text)wrapper).GetStrikethroughColor(out r, out g, out b, out a);
+                    ((Text)ws.Target).GetStrikethroughColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -9687,13 +9667,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void strikethrough_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_strikethrough_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Text)wrapper).SetStrikethroughColor(r, g, b, a);
+                    ((Text)ws.Target).SetStrikethroughColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -9722,13 +9702,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextStyleEffectType effect_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_effect_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleEffectType _ret_var = default(Efl.TextStyleEffectType);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetEffectType();
+                    _ret_var = ((Text)ws.Target).GetEffectType();
                 }
                 catch (Exception e)
                 {
@@ -9758,13 +9738,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void effect_type_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleEffectType type)
         {
             Eina.Log.Debug("function efl_text_effect_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetEffectType(type);
+                    ((Text)ws.Target).SetEffectType(type);
                 }
                 catch (Exception e)
                 {
@@ -9793,13 +9773,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void outline_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_outline_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((Text)wrapper).GetOutlineColor(out r, out g, out b, out a);
+                    ((Text)ws.Target).GetOutlineColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -9828,13 +9808,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void outline_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_outline_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Text)wrapper).SetOutlineColor(r, g, b, a);
+                    ((Text)ws.Target).SetOutlineColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -9863,13 +9843,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Efl.TextStyleShadowDirection shadow_direction_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_shadow_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.TextStyleShadowDirection _ret_var = default(Efl.TextStyleShadowDirection);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetShadowDirection();
+                    _ret_var = ((Text)ws.Target).GetShadowDirection();
                 }
                 catch (Exception e)
                 {
@@ -9899,13 +9879,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void shadow_direction_set(System.IntPtr obj, System.IntPtr pd, Efl.TextStyleShadowDirection type)
         {
             Eina.Log.Debug("function efl_text_shadow_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetShadowDirection(type);
+                    ((Text)ws.Target).SetShadowDirection(type);
                 }
                 catch (Exception e)
                 {
@@ -9934,13 +9914,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void shadow_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_shadow_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((Text)wrapper).GetShadowColor(out r, out g, out b, out a);
+                    ((Text)ws.Target).GetShadowColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -9969,13 +9949,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void shadow_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_shadow_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Text)wrapper).SetShadowColor(r, g, b, a);
+                    ((Text)ws.Target).SetShadowColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -10004,13 +9984,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void glow_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_glow_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((Text)wrapper).GetGlowColor(out r, out g, out b, out a);
+                    ((Text)ws.Target).GetGlowColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -10039,13 +10019,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void glow_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_glow_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Text)wrapper).SetGlowColor(r, g, b, a);
+                    ((Text)ws.Target).SetGlowColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -10074,13 +10054,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void glow2_color_get(System.IntPtr obj, System.IntPtr pd, out byte r, out byte g, out byte b, out byte a)
         {
             Eina.Log.Debug("function efl_text_glow2_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(byte);        g = default(byte);        b = default(byte);        a = default(byte);                                            
                 try
                 {
-                    ((Text)wrapper).GetGlow2Color(out r, out g, out b, out a);
+                    ((Text)ws.Target).GetGlow2Color(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -10109,13 +10089,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void glow2_color_set(System.IntPtr obj, System.IntPtr pd, byte r, byte g, byte b, byte a)
         {
             Eina.Log.Debug("function efl_text_glow2_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Text)wrapper).SetGlow2Color(r, g, b, a);
+                    ((Text)ws.Target).SetGlow2Color(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -10144,13 +10124,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.String gfx_filter_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_gfx_filter_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetGfxFilter();
+                    _ret_var = ((Text)ws.Target).GetGfxFilter();
                 }
                 catch (Exception e)
                 {
@@ -10180,13 +10160,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void gfx_filter_set(System.IntPtr obj, System.IntPtr pd, System.String code)
         {
             Eina.Log.Debug("function efl_text_gfx_filter_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Text)wrapper).SetGfxFilter(code);
+                    ((Text)ws.Target).SetGfxFilter(code);
                 }
                 catch (Exception e)
                 {
@@ -10215,13 +10195,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static Eina.Unicode character_get(System.IntPtr obj, System.IntPtr pd, int offset)
         {
             Eina.Log.Debug("function efl_access_text_character_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Unicode _ret_var = default(Eina.Unicode);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetCharacter(offset);
+                    _ret_var = ((Text)ws.Target).GetCharacter(offset);
                 }
                 catch (Exception e)
                 {
@@ -10251,15 +10231,15 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.String string_get(System.IntPtr obj, System.IntPtr pd, Efl.Access.TextGranularity granularity, System.IntPtr start_offset, System.IntPtr end_offset)
         {
             Eina.Log.Debug("function efl_access_text_string_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 var _in_start_offset = Eina.PrimitiveConversion.PointerToManaged<int>(start_offset);
         var _in_end_offset = Eina.PrimitiveConversion.PointerToManaged<int>(end_offset);
                                                             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetString(granularity, _in_start_offset, _in_end_offset);
+                    _ret_var = ((Text)ws.Target).GetString(granularity, _in_start_offset, _in_end_offset);
                 }
                 catch (Exception e)
                 {
@@ -10289,13 +10269,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.String access_text_get(System.IntPtr obj, System.IntPtr pd, int start_offset, int end_offset)
         {
             Eina.Log.Debug("function efl_access_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetAccessText(start_offset, end_offset);
+                    _ret_var = ((Text)ws.Target).GetAccessText(start_offset, end_offset);
                 }
                 catch (Exception e)
                 {
@@ -10325,13 +10305,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static int caret_offset_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_text_caret_offset_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetCaretOffset();
+                    _ret_var = ((Text)ws.Target).GetCaretOffset();
                 }
                 catch (Exception e)
                 {
@@ -10361,13 +10341,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool caret_offset_set(System.IntPtr obj, System.IntPtr pd, int offset)
         {
             Eina.Log.Debug("function efl_access_text_caret_offset_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).SetCaretOffset(offset);
+                    _ret_var = ((Text)ws.Target).SetCaretOffset(offset);
                 }
                 catch (Exception e)
                 {
@@ -10397,15 +10377,15 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool attribute_get(System.IntPtr obj, System.IntPtr pd, System.String name, System.IntPtr start_offset, System.IntPtr end_offset, out System.String value)
         {
             Eina.Log.Debug("function efl_access_text_attribute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 var _in_start_offset = Eina.PrimitiveConversion.PointerToManaged<int>(start_offset);
         var _in_end_offset = Eina.PrimitiveConversion.PointerToManaged<int>(end_offset);
                                         value = default(System.String);                                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetAttribute(name, _in_start_offset, _in_end_offset, out value);
+                    _ret_var = ((Text)ws.Target).GetAttribute(name, _in_start_offset, _in_end_offset, out value);
                 }
                 catch (Exception e)
                 {
@@ -10435,15 +10415,15 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.IntPtr text_attributes_get(System.IntPtr obj, System.IntPtr pd, System.IntPtr start_offset, System.IntPtr end_offset)
         {
             Eina.Log.Debug("function efl_access_text_attributes_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_start_offset = Eina.PrimitiveConversion.PointerToManaged<int>(start_offset);
         var _in_end_offset = Eina.PrimitiveConversion.PointerToManaged<int>(end_offset);
                                             Eina.List<Efl.Access.TextAttribute> _ret_var = default(Eina.List<Efl.Access.TextAttribute>);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetTextAttributes(_in_start_offset, _in_end_offset);
+                    _ret_var = ((Text)ws.Target).GetTextAttributes(_in_start_offset, _in_end_offset);
                 }
                 catch (Exception e)
                 {
@@ -10473,13 +10453,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.IntPtr default_attributes_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_text_default_attributes_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Access.TextAttribute> _ret_var = default(Eina.List<Efl.Access.TextAttribute>);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetDefaultAttributes();
+                    _ret_var = ((Text)ws.Target).GetDefaultAttributes();
                 }
                 catch (Exception e)
                 {
@@ -10509,14 +10489,14 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool character_extents_get(System.IntPtr obj, System.IntPtr pd, int offset, bool screen_coords, out Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_access_text_character_extents_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                 Eina.Rect _out_rect = default(Eina.Rect);
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetCharacterExtents(offset, screen_coords, out _out_rect);
+                    _ret_var = ((Text)ws.Target).GetCharacterExtents(offset, screen_coords, out _out_rect);
                 }
                 catch (Exception e)
                 {
@@ -10547,13 +10527,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static int character_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_text_character_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetCharacterCount();
+                    _ret_var = ((Text)ws.Target).GetCharacterCount();
                 }
                 catch (Exception e)
                 {
@@ -10583,13 +10563,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static int offset_at_point_get(System.IntPtr obj, System.IntPtr pd, bool screen_coords, int x, int y)
         {
             Eina.Log.Debug("function efl_access_text_offset_at_point_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetOffsetAtPoint(screen_coords, x, y);
+                    _ret_var = ((Text)ws.Target).GetOffsetAtPoint(screen_coords, x, y);
                 }
                 catch (Exception e)
                 {
@@ -10619,14 +10599,14 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static System.IntPtr bounded_ranges_get(System.IntPtr obj, System.IntPtr pd, bool screen_coords, Eina.Rect.NativeStruct rect, Efl.Access.TextClipType xclip, Efl.Access.TextClipType yclip)
         {
             Eina.Log.Debug("function efl_access_text_bounded_ranges_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Rect _in_rect = rect;
                                                                                             Eina.List<Efl.Access.TextRange> _ret_var = default(Eina.List<Efl.Access.TextRange>);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetBoundedRanges(screen_coords, _in_rect, xclip, yclip);
+                    _ret_var = ((Text)ws.Target).GetBoundedRanges(screen_coords, _in_rect, xclip, yclip);
                 }
                 catch (Exception e)
                 {
@@ -10656,14 +10636,14 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool range_extents_get(System.IntPtr obj, System.IntPtr pd, bool screen_coords, int start_offset, int end_offset, out Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_access_text_range_extents_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                 Eina.Rect _out_rect = default(Eina.Rect);
                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetRangeExtents(screen_coords, start_offset, end_offset, out _out_rect);
+                    _ret_var = ((Text)ws.Target).GetRangeExtents(screen_coords, start_offset, end_offset, out _out_rect);
                 }
                 catch (Exception e)
                 {
@@ -10694,13 +10674,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static int selections_count_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_text_selections_count_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Text)wrapper).GetSelectionsCount();
+                    _ret_var = ((Text)ws.Target).GetSelectionsCount();
                 }
                 catch (Exception e)
                 {
@@ -10730,13 +10710,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static void access_selection_get(System.IntPtr obj, System.IntPtr pd, int selection_number, out int start_offset, out int end_offset)
         {
             Eina.Log.Debug("function efl_access_text_access_selection_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         start_offset = default(int);        end_offset = default(int);                                    
                 try
                 {
-                    ((Text)wrapper).GetAccessSelection(selection_number, out start_offset, out end_offset);
+                    ((Text)ws.Target).GetAccessSelection(selection_number, out start_offset, out end_offset);
                 }
                 catch (Exception e)
                 {
@@ -10765,13 +10745,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool access_selection_set(System.IntPtr obj, System.IntPtr pd, int selection_number, int start_offset, int end_offset)
         {
             Eina.Log.Debug("function efl_access_text_access_selection_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).SetAccessSelection(selection_number, start_offset, end_offset);
+                    _ret_var = ((Text)ws.Target).SetAccessSelection(selection_number, start_offset, end_offset);
                 }
                 catch (Exception e)
                 {
@@ -10801,13 +10781,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool selection_add(System.IntPtr obj, System.IntPtr pd, int start_offset, int end_offset)
         {
             Eina.Log.Debug("function efl_access_text_selection_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).AddSelection(start_offset, end_offset);
+                    _ret_var = ((Text)ws.Target).AddSelection(start_offset, end_offset);
                 }
                 catch (Exception e)
                 {
@@ -10837,13 +10817,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool selection_remove(System.IntPtr obj, System.IntPtr pd, int selection_number)
         {
             Eina.Log.Debug("function efl_access_text_selection_remove was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).SelectionRemove(selection_number);
+                    _ret_var = ((Text)ws.Target).SelectionRemove(selection_number);
                 }
                 catch (Exception e)
                 {
@@ -10873,13 +10853,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool text_content_set(System.IntPtr obj, System.IntPtr pd, System.String kw_string)
         {
             Eina.Log.Debug("function efl_access_editable_text_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).SetTextContent(kw_string);
+                    _ret_var = ((Text)ws.Target).SetTextContent(kw_string);
                 }
                 catch (Exception e)
                 {
@@ -10909,13 +10889,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool insert(System.IntPtr obj, System.IntPtr pd, System.String kw_string, int position)
         {
             Eina.Log.Debug("function efl_access_editable_text_insert was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).Insert(kw_string, position);
+                    _ret_var = ((Text)ws.Target).Insert(kw_string, position);
                 }
                 catch (Exception e)
                 {
@@ -10945,13 +10925,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool copy(System.IntPtr obj, System.IntPtr pd, int start, int end)
         {
             Eina.Log.Debug("function efl_access_editable_text_copy was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).Copy(start, end);
+                    _ret_var = ((Text)ws.Target).Copy(start, end);
                 }
                 catch (Exception e)
                 {
@@ -10981,13 +10961,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool cut(System.IntPtr obj, System.IntPtr pd, int start, int end)
         {
             Eina.Log.Debug("function efl_access_editable_text_cut was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).Cut(start, end);
+                    _ret_var = ((Text)ws.Target).Cut(start, end);
                 }
                 catch (Exception e)
                 {
@@ -11017,13 +10997,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool kw_delete(System.IntPtr obj, System.IntPtr pd, int start, int end)
         {
             Eina.Log.Debug("function efl_access_editable_text_delete was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).Delete(start, end);
+                    _ret_var = ((Text)ws.Target).Delete(start, end);
                 }
                 catch (Exception e)
                 {
@@ -11053,13 +11033,13 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
         private static bool paste(System.IntPtr obj, System.IntPtr pd, int position)
         {
             Eina.Log.Debug("function efl_access_editable_text_paste was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Text)wrapper).Paste(position);
+                    _ret_var = ((Text)ws.Target).Paste(position);
                 }
                 catch (Exception e)
                 {
@@ -11078,7 +11058,112 @@ public class Text : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IText,Efl.I
 
         private static efl_access_editable_text_paste_delegate efl_access_editable_text_paste_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        
+        private delegate void efl_ui_clickable_press_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_press_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate> efl_ui_clickable_press_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_press_api_delegate>(Module, "efl_ui_clickable_press");
+
+        private static void press(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_press was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).Press(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_press_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_press_delegate efl_ui_clickable_press_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_unpress_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_unpress_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate> efl_ui_clickable_unpress_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_unpress_api_delegate>(Module, "efl_ui_clickable_unpress");
+
+        private static void unpress(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_unpress was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).Unpress(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_unpress_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_unpress_delegate efl_ui_clickable_unpress_static_delegate;
+
+        
+        private delegate void efl_ui_clickable_button_state_reset_delegate(System.IntPtr obj, System.IntPtr pd,  uint button);
+
+        
+        public delegate void efl_ui_clickable_button_state_reset_api_delegate(System.IntPtr obj,  uint button);
+
+        public static Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate> efl_ui_clickable_button_state_reset_ptr = new Efl.Eo.FunctionWrapper<efl_ui_clickable_button_state_reset_api_delegate>(Module, "efl_ui_clickable_button_state_reset");
+
+        private static void button_state_reset(System.IntPtr obj, System.IntPtr pd, uint button)
+        {
+            Eina.Log.Debug("function efl_ui_clickable_button_state_reset was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    
+                try
+                {
+                    ((Text)ws.Target).ResetButtonState(button);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        
+            }
+            else
+            {
+                efl_ui_clickable_button_state_reset_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), button);
+            }
+        }
+
+        private static efl_ui_clickable_button_state_reset_delegate efl_ui_clickable_button_state_reset_static_delegate;
+
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 2b38433..d887d19 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>EFL UI Text Alert Popup class</summary>
 [Efl.Ui.TextAlertPopup.NativeMethods]
-public class TextAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper,Efl.IText
+public class TextAlertPopup : Efl.Ui.AlertPopup, Efl.IText
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class TextAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper,Efl.IText
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TextAlertPopup(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TextAlertPopup"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class TextAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper,Efl.IText
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Set the expandable of popup.
     /// If the contents of the popup has min size, the popup will be increased by min size along the Y axis. If max hint is set it will be increased to the value of max hint and scrolling will occur.</summary>
     /// <param name="max_size">A 2D max size in pixel units.</param>
@@ -116,8 +89,8 @@ public class TextAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper,Efl.IText
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Set the expandable of popup.
-/// If the contents of the popup has min size, the popup will be increased by min size along the Y axis. If max hint is set it will be increased to the value of max hint and scrolling will occur.</summary>
-/// <value>A 2D max size in pixel units.</value>
+    /// If the contents of the popup has min size, the popup will be increased by min size along the Y axis. If max hint is set it will be increased to the value of max hint and scrolling will occur.</summary>
+    /// <value>A 2D max size in pixel units.</value>
     public Eina.Size2D Expandable {
         set { SetExpandable(value); }
     }
@@ -177,7 +150,7 @@ public class TextAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper,Efl.IText
             return Efl.Ui.TextAlertPopup.efl_ui_text_alert_popup_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_text_alert_popup_expandable_set_delegate(System.IntPtr obj, System.IntPtr pd,  Eina.Size2D.NativeStruct max_size);
@@ -190,14 +163,14 @@ public class TextAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper,Efl.IText
         private static void expandable_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct max_size)
         {
             Eina.Log.Debug("function efl_ui_text_alert_popup_expandable_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_max_size = max_size;
                             
                 try
                 {
-                    ((TextAlertPopup)wrapper).SetExpandable(_in_max_size);
+                    ((TextAlertPopup)ws.Target).SetExpandable(_in_max_size);
                 }
                 catch (Exception e)
                 {
@@ -226,13 +199,13 @@ public class TextAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper,Efl.IText
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((TextAlertPopup)wrapper).GetText();
+                    _ret_var = ((TextAlertPopup)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -262,13 +235,13 @@ public class TextAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper,Efl.IText
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((TextAlertPopup)wrapper).SetText(text);
+                    ((TextAlertPopup)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -286,7 +259,7 @@ public class TextAlertPopup : Efl.Ui.AlertPopup, Efl.Eo.IWrapper,Efl.IText
 
         private static efl_text_set_delegate efl_text_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 83c4868..15b151c 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI Text Alert Popup internal part class</summary>
 [Efl.Ui.TextAlertPopupPart.NativeMethods]
-public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IText
+public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.IContent, Efl.IText
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TextAlertPopupPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TextAlertPopupPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -90,13 +63,12 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -185,9 +157,9 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
@@ -268,7 +240,7 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
             return Efl.Ui.TextAlertPopupPart.efl_ui_text_alert_popup_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -281,13 +253,13 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((TextAlertPopupPart)wrapper).GetContent();
+                    _ret_var = ((TextAlertPopupPart)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -317,13 +289,13 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((TextAlertPopupPart)wrapper).SetContent(content);
+                    _ret_var = ((TextAlertPopupPart)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -353,13 +325,13 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((TextAlertPopupPart)wrapper).UnsetContent();
+                    _ret_var = ((TextAlertPopupPart)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -389,13 +361,13 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((TextAlertPopupPart)wrapper).GetText();
+                    _ret_var = ((TextAlertPopupPart)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -425,13 +397,13 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((TextAlertPopupPart)wrapper).SetText(text);
+                    ((TextAlertPopupPart)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -449,7 +421,7 @@ public class TextAlertPopupPart : Efl.Ui.LayoutPart, Efl.Eo.IWrapper,Efl.IConten
 
         private static efl_text_set_delegate efl_text_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 2f74e1b..1fb8030 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI text async class</summary>
 [Efl.Ui.TextAsync.NativeMethods]
-public class TextAsync : Efl.Ui.Text, Efl.Eo.IWrapper
+public class TextAsync : Efl.Ui.Text
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class TextAsync : Efl.Ui.Text, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TextAsync(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TextAsync"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class TextAsync : Efl.Ui.Text, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.TextAsync.efl_ui_text_async_class_get();
@@ -111,9 +84,9 @@ public class TextAsync : Efl.Ui.Text, Efl.Eo.IWrapper
             return Efl.Ui.TextAsync.efl_ui_text_async_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3086b47..c80b998 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI text editable class</summary>
 [Efl.Ui.TextEditable.NativeMethods]
-public class TextEditable : Efl.Ui.Text, Efl.Eo.IWrapper
+public class TextEditable : Efl.Ui.Text
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class TextEditable : Efl.Ui.Text, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TextEditable(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TextEditable"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class TextEditable : Efl.Ui.Text, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.TextEditable.efl_ui_text_editable_class_get();
@@ -111,9 +84,9 @@ public class TextEditable : Efl.Ui.Text, Efl.Eo.IWrapper
             return Efl.Ui.TextEditable.efl_ui_text_editable_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index dd86f5d..834e872 100644 (file)
@@ -13,7 +13,7 @@ namespace TextFactory {
 
 /// <summary>Factory that creates emoticons from the current theme given a key.</summary>
 [Efl.Ui.TextFactory.Emoticons.NativeMethods]
-public class Emoticons : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
+public class Emoticons : Efl.Object, Efl.Canvas.ITextFactory
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -46,7 +46,7 @@ public class Emoticons : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Emoticons(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Emoticons"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -57,33 +57,6 @@ public class Emoticons : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Translates a given <c>key</c> to an item object, and returns the object. The returned object should be owned by the passed <c>object</c>.</summary>
     /// <param name="kw_object">The parent of the created object</param>
     /// <param name="key">Key that is associated to an item object</param>
@@ -128,7 +101,7 @@ public class Emoticons : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
             return Efl.Ui.TextFactory.Emoticons.efl_ui_text_factory_emoticons_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))]
         private delegate Efl.Canvas.Object efl_canvas_text_factory_create_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Object kw_object, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key);
@@ -141,13 +114,13 @@ public class Emoticons : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
         private static Efl.Canvas.Object create(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object kw_object, System.String key)
         {
             Eina.Log.Debug("function efl_canvas_text_factory_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Emoticons)wrapper).Create(kw_object, key);
+                    _ret_var = ((Emoticons)ws.Target).Create(kw_object, key);
                 }
                 catch (Exception e)
                 {
@@ -166,7 +139,7 @@ public class Emoticons : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
 
         private static efl_canvas_text_factory_create_delegate efl_canvas_text_factory_create_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3c1f3f7..c11aa6b 100644 (file)
@@ -14,7 +14,7 @@ namespace TextFactory {
 /// <summary>Internal factory for fallback cases.
 /// This wraps some internal functionality: - Contains 2 factories: image and emoticon - Strips off &quot;file://&quot; prefix for image items, to be used with the image factory.</summary>
 [Efl.Ui.TextFactory.Fallback.NativeMethods]
-public class Fallback : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
+public class Fallback : Efl.Object, Efl.Canvas.ITextFactory
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -47,7 +47,7 @@ public class Fallback : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Fallback(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Fallback"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -58,33 +58,6 @@ public class Fallback : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Translates a given <c>key</c> to an item object, and returns the object. The returned object should be owned by the passed <c>object</c>.</summary>
     /// <param name="kw_object">The parent of the created object</param>
     /// <param name="key">Key that is associated to an item object</param>
@@ -129,7 +102,7 @@ public class Fallback : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
             return Efl.Ui.TextFactory.Fallback.efl_ui_text_factory_fallback_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.OwnTag>))]
         private delegate Efl.Canvas.Object efl_canvas_text_factory_create_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Canvas.Object kw_object, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key);
@@ -142,13 +115,13 @@ public class Fallback : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
         private static Efl.Canvas.Object create(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object kw_object, System.String key)
         {
             Eina.Log.Debug("function efl_canvas_text_factory_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Fallback)wrapper).Create(kw_object, key);
+                    _ret_var = ((Fallback)ws.Target).Create(kw_object, key);
                 }
                 catch (Exception e)
                 {
@@ -167,7 +140,7 @@ public class Fallback : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
 
         private static efl_canvas_text_factory_create_delegate efl_canvas_text_factory_create_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 212fcdc..1479061 100644 (file)
@@ -14,7 +14,7 @@ namespace TextFactory {
 /// <summary>Factory that creates images given key string
 /// The key can be either a full image path, or associated with one. The factory will fallback if key was not matches with an image, and try to load it as a full path.</summary>
 [Efl.Ui.TextFactory.Images.NativeMethods]
-public class Images : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
+public class Images : Efl.Object, Efl.Canvas.ITextFactory
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -47,7 +47,7 @@ public class Images : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Images(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Images"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -58,33 +58,6 @@ public class Images : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Associates given name with a path of an image or EET file.
     /// This can be used for quick retrieval (instead of providing actual filenames.
     /// 
@@ -213,7 +186,7 @@ public class Images : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
             return Efl.Ui.TextFactory.Images.efl_ui_text_factory_images_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_text_factory_images_matches_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String path, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String key);
@@ -226,13 +199,13 @@ public class Images : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
         private static bool matches_add(System.IntPtr obj, System.IntPtr pd, System.String name, System.String path, System.String key)
         {
             Eina.Log.Debug("function efl_ui_text_factory_images_matches_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Images)wrapper).AddMatches(name, path, key);
+                    _ret_var = ((Images)ws.Target).AddMatches(name, path, key);
                 }
                 catch (Exception e)
                 {
@@ -262,13 +235,13 @@ public class Images : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
         private static bool matches_del(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_ui_text_factory_images_matches_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Images)wrapper).DelMatches(key);
+                    _ret_var = ((Images)ws.Target).DelMatches(key);
                 }
                 catch (Exception e)
                 {
@@ -298,13 +271,13 @@ public class Images : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
         private static bool matches_mmap_add(System.IntPtr obj, System.IntPtr pd, System.String name, Eina.File file, System.String key)
         {
             Eina.Log.Debug("function efl_ui_text_factory_images_matches_mmap_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Images)wrapper).AddMatchesMmap(name, file, key);
+                    _ret_var = ((Images)ws.Target).AddMatchesMmap(name, file, key);
                 }
                 catch (Exception e)
                 {
@@ -334,13 +307,13 @@ public class Images : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
         private static bool matches_mmap_del(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_ui_text_factory_images_matches_mmap_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Images)wrapper).DelMatchesMmap(key);
+                    _ret_var = ((Images)ws.Target).DelMatchesMmap(key);
                 }
                 catch (Exception e)
                 {
@@ -370,13 +343,13 @@ public class Images : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
         private static Efl.Canvas.Object create(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object kw_object, System.String key)
         {
             Eina.Log.Debug("function efl_canvas_text_factory_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Images)wrapper).Create(kw_object, key);
+                    _ret_var = ((Images)ws.Target).Create(kw_object, key);
                 }
                 catch (Exception e)
                 {
@@ -395,7 +368,7 @@ public class Images : Efl.Object, Efl.Eo.IWrapper,Efl.Canvas.ITextFactory
 
         private static efl_canvas_text_factory_create_delegate efl_canvas_text_factory_create_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index b8bf220..cc0695b 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI Text internal part class</summary>
 [Efl.Ui.TextPart.NativeMethods]
-public class TextPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
+public class TextPart : Efl.Ui.LayoutPartText
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class TextPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TextPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TextPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class TextPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.TextPart.efl_ui_text_part_class_get();
@@ -105,9 +78,9 @@ public class TextPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
             return Efl.Ui.TextPart.efl_ui_text_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index bc6c6e3..2b7fdbc 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl Ui Textpath class</summary>
 [Efl.Ui.Textpath.NativeMethods]
-public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPath
+public class Textpath : Efl.Ui.LayoutBase, Efl.IText, Efl.Gfx.IPath
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Textpath(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Textpath"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The number of slices. The larger the number of slice_num is, The better the text follows the path.
     /// @internal</summary>
     /// <returns>Number of slices</returns>
@@ -359,15 +332,15 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>The number of slices. The larger the number of slice_num is, The better the text follows the path.
-/// @internal</summary>
-/// <value>Number of slices</value>
+    /// @internal</summary>
+    /// <value>Number of slices</value>
     public int SliceNumber {
         get { return GetSliceNumber(); }
         set { SetSliceNumber(value); }
     }
     /// <summary>Control the ellipsis behavior of the textpath.
-/// @since_tizen 5.5</summary>
-/// <value>To ellipsis text or not</value>
+    /// @since_tizen 5.5</summary>
+    /// <value>To ellipsis text or not</value>
     public bool Ellipsis {
         get { return GetEllipsis(); }
         set { SetEllipsis(value); }
@@ -708,7 +681,7 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
             return Efl.Ui.Textpath.efl_ui_textpath_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate int efl_ui_textpath_slice_number_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -721,13 +694,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static int slice_number_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_textpath_slice_number_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Textpath)wrapper).GetSliceNumber();
+                    _ret_var = ((Textpath)ws.Target).GetSliceNumber();
                 }
                 catch (Exception e)
                 {
@@ -757,13 +730,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void slice_number_set(System.IntPtr obj, System.IntPtr pd, int slice_no)
         {
             Eina.Log.Debug("function efl_ui_textpath_slice_number_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Textpath)wrapper).SetSliceNumber(slice_no);
+                    ((Textpath)ws.Target).SetSliceNumber(slice_no);
                 }
                 catch (Exception e)
                 {
@@ -792,13 +765,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static bool ellipsis_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_textpath_ellipsis_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Textpath)wrapper).GetEllipsis();
+                    _ret_var = ((Textpath)ws.Target).GetEllipsis();
                 }
                 catch (Exception e)
                 {
@@ -828,13 +801,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void ellipsis_set(System.IntPtr obj, System.IntPtr pd, bool ellipsis)
         {
             Eina.Log.Debug("function efl_ui_textpath_ellipsis_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Textpath)wrapper).SetEllipsis(ellipsis);
+                    ((Textpath)ws.Target).SetEllipsis(ellipsis);
                 }
                 catch (Exception e)
                 {
@@ -863,13 +836,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void circle_set(System.IntPtr obj, System.IntPtr pd, double x, double y, double radius, double start_angle, Efl.Ui.TextpathDirection direction)
         {
             Eina.Log.Debug("function efl_ui_textpath_circle_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((Textpath)wrapper).SetCircle(x, y, radius, start_angle, direction);
+                    ((Textpath)ws.Target).SetCircle(x, y, radius, start_angle, direction);
                 }
                 catch (Exception e)
                 {
@@ -898,13 +871,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Textpath)wrapper).GetText();
+                    _ret_var = ((Textpath)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -934,13 +907,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Textpath)wrapper).SetText(text);
+                    ((Textpath)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -969,15 +942,15 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void path_get(System.IntPtr obj, System.IntPtr pd, out System.IntPtr op, out System.IntPtr points)
         {
             Eina.Log.Debug("function efl_gfx_path_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         Efl.Gfx.PathCommandType _out_op = default(Efl.Gfx.PathCommandType);
         double _out_points = default(double);
                             
                 try
                 {
-                    ((Textpath)wrapper).GetPath(out _out_op, out _out_points);
+                    ((Textpath)ws.Target).GetPath(out _out_op, out _out_points);
                 }
                 catch (Exception e)
                 {
@@ -1008,15 +981,15 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void path_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr op, System.IntPtr points)
         {
             Eina.Log.Debug("function efl_gfx_path_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_op = Eina.PrimitiveConversion.PointerToManaged<Efl.Gfx.PathCommandType>(op);
         var _in_points = Eina.PrimitiveConversion.PointerToManaged<double>(points);
                                             
                 try
                 {
-                    ((Textpath)wrapper).SetPath(_in_op, _in_points);
+                    ((Textpath)ws.Target).SetPath(_in_op, _in_points);
                 }
                 catch (Exception e)
                 {
@@ -1045,13 +1018,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void length_get(System.IntPtr obj, System.IntPtr pd, out uint commands, out uint points)
         {
             Eina.Log.Debug("function efl_gfx_path_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         commands = default(uint);        points = default(uint);                            
                 try
                 {
-                    ((Textpath)wrapper).GetLength(out commands, out points);
+                    ((Textpath)ws.Target).GetLength(out commands, out points);
                 }
                 catch (Exception e)
                 {
@@ -1080,13 +1053,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void current_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_path_current_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Textpath)wrapper).GetCurrent(out x, out y);
+                    ((Textpath)ws.Target).GetCurrent(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -1115,13 +1088,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void current_ctrl_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function efl_gfx_path_current_ctrl_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((Textpath)wrapper).GetCurrentCtrl(out x, out y);
+                    ((Textpath)ws.Target).GetCurrentCtrl(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -1150,13 +1123,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void copy_from(System.IntPtr obj, System.IntPtr pd, Efl.Object dup_from)
         {
             Eina.Log.Debug("function efl_gfx_path_copy_from was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Textpath)wrapper).CopyFrom(dup_from);
+                    ((Textpath)ws.Target).CopyFrom(dup_from);
                 }
                 catch (Exception e)
                 {
@@ -1185,14 +1158,14 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void bounds_get(System.IntPtr obj, System.IntPtr pd, out Eina.Rect.NativeStruct r)
         {
             Eina.Log.Debug("function efl_gfx_path_bounds_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Rect _out_r = default(Eina.Rect);
                     
                 try
                 {
-                    ((Textpath)wrapper).GetBounds(out _out_r);
+                    ((Textpath)ws.Target).GetBounds(out _out_r);
                 }
                 catch (Exception e)
                 {
@@ -1222,13 +1195,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void reset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_reset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Textpath)wrapper).Reset();
+                    ((Textpath)ws.Target).Reset();
                 }
                 catch (Exception e)
                 {
@@ -1257,13 +1230,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_move_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_move_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Textpath)wrapper).AppendMoveTo(x, y);
+                    ((Textpath)ws.Target).AppendMoveTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1292,13 +1265,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_line_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_line_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Textpath)wrapper).AppendLineTo(x, y);
+                    ((Textpath)ws.Target).AppendLineTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1327,13 +1300,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_quadratic_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double ctrl_x, double ctrl_y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_quadratic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Textpath)wrapper).AppendQuadraticTo(x, y, ctrl_x, ctrl_y);
+                    ((Textpath)ws.Target).AppendQuadraticTo(x, y, ctrl_x, ctrl_y);
                 }
                 catch (Exception e)
                 {
@@ -1362,13 +1335,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_squadratic_to(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_squadratic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Textpath)wrapper).AppendSquadraticTo(x, y);
+                    ((Textpath)ws.Target).AppendSquadraticTo(x, y);
                 }
                 catch (Exception e)
                 {
@@ -1397,13 +1370,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_cubic_to(System.IntPtr obj, System.IntPtr pd, double ctrl_x0, double ctrl_y0, double ctrl_x1, double ctrl_y1, double x, double y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_cubic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((Textpath)wrapper).AppendCubicTo(ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, x, y);
+                    ((Textpath)ws.Target).AppendCubicTo(ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, x, y);
                 }
                 catch (Exception e)
                 {
@@ -1432,13 +1405,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_scubic_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double ctrl_x, double ctrl_y)
         {
             Eina.Log.Debug("function efl_gfx_path_append_scubic_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Textpath)wrapper).AppendScubicTo(x, y, ctrl_x, ctrl_y);
+                    ((Textpath)ws.Target).AppendScubicTo(x, y, ctrl_x, ctrl_y);
                 }
                 catch (Exception e)
                 {
@@ -1467,13 +1440,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_arc_to(System.IntPtr obj, System.IntPtr pd, double x, double y, double rx, double ry, double angle, bool large_arc, bool sweep)
         {
             Eina.Log.Debug("function efl_gfx_path_append_arc_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                                                     
                 try
                 {
-                    ((Textpath)wrapper).AppendArcTo(x, y, rx, ry, angle, large_arc, sweep);
+                    ((Textpath)ws.Target).AppendArcTo(x, y, rx, ry, angle, large_arc, sweep);
                 }
                 catch (Exception e)
                 {
@@ -1502,13 +1475,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_arc(System.IntPtr obj, System.IntPtr pd, double x, double y, double w, double h, double start_angle, double sweep_length)
         {
             Eina.Log.Debug("function efl_gfx_path_append_arc was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((Textpath)wrapper).AppendArc(x, y, w, h, start_angle, sweep_length);
+                    ((Textpath)ws.Target).AppendArc(x, y, w, h, start_angle, sweep_length);
                 }
                 catch (Exception e)
                 {
@@ -1537,13 +1510,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_close(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_append_close was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Textpath)wrapper).CloseAppend();
+                    ((Textpath)ws.Target).CloseAppend();
                 }
                 catch (Exception e)
                 {
@@ -1572,13 +1545,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_circle(System.IntPtr obj, System.IntPtr pd, double x, double y, double radius)
         {
             Eina.Log.Debug("function efl_gfx_path_append_circle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((Textpath)wrapper).AppendCircle(x, y, radius);
+                    ((Textpath)ws.Target).AppendCircle(x, y, radius);
                 }
                 catch (Exception e)
                 {
@@ -1607,13 +1580,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_rect(System.IntPtr obj, System.IntPtr pd, double x, double y, double w, double h, double rx, double ry)
         {
             Eina.Log.Debug("function efl_gfx_path_append_rect was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                                             
                 try
                 {
-                    ((Textpath)wrapper).AppendRect(x, y, w, h, rx, ry);
+                    ((Textpath)ws.Target).AppendRect(x, y, w, h, rx, ry);
                 }
                 catch (Exception e)
                 {
@@ -1642,13 +1615,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void append_svg_path(System.IntPtr obj, System.IntPtr pd, System.String svg_path_data)
         {
             Eina.Log.Debug("function efl_gfx_path_append_svg_path was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Textpath)wrapper).AppendSvgPath(svg_path_data);
+                    ((Textpath)ws.Target).AppendSvgPath(svg_path_data);
                 }
                 catch (Exception e)
                 {
@@ -1677,13 +1650,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static bool interpolate(System.IntPtr obj, System.IntPtr pd, Efl.Object from, Efl.Object to, double pos_map)
         {
             Eina.Log.Debug("function efl_gfx_path_interpolate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Textpath)wrapper).Interpolate(from, to, pos_map);
+                    _ret_var = ((Textpath)ws.Target).Interpolate(from, to, pos_map);
                 }
                 catch (Exception e)
                 {
@@ -1713,13 +1686,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static bool equal_commands(System.IntPtr obj, System.IntPtr pd, Efl.Object with)
         {
             Eina.Log.Debug("function efl_gfx_path_equal_commands was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Textpath)wrapper).EqualCommands(with);
+                    _ret_var = ((Textpath)ws.Target).EqualCommands(with);
                 }
                 catch (Exception e)
                 {
@@ -1749,13 +1722,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void reserve(System.IntPtr obj, System.IntPtr pd, uint cmd_count, uint pts_count)
         {
             Eina.Log.Debug("function efl_gfx_path_reserve was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Textpath)wrapper).Reserve(cmd_count, pts_count);
+                    ((Textpath)ws.Target).Reserve(cmd_count, pts_count);
                 }
                 catch (Exception e)
                 {
@@ -1784,13 +1757,13 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
         private static void commit(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_path_commit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Textpath)wrapper).Commit();
+                    ((Textpath)ws.Target).Commit();
                 }
                 catch (Exception e)
                 {
@@ -1808,7 +1781,7 @@ public class Textpath : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IText,Efl.Gfx.IPa
 
         private static efl_gfx_path_commit_delegate efl_gfx_path_commit_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -1828,6 +1801,12 @@ public enum TextpathDirection
 Cw = 0,
 /// <summary>Counter-clockwise</summary>
 Ccw = 1,
+/// <summary>Clockwise, middle of text will be at start angle
+/// (Since EFL 1.23)</summary>
+CwCenter = 2,
+/// <summary>Counter-clockwise, middle of text will be at start angle
+/// (Since EFL 1.23)</summary>
+CcwCenter = 3,
 }
 
 }
index e2c92f5..80f44c3 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI Textpath internal part class</summary>
 [Efl.Ui.TextpathPart.NativeMethods]
-public class TextpathPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
+public class TextpathPart : Efl.Ui.LayoutPartText
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class TextpathPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected TextpathPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="TextpathPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class TextpathPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.TextpathPart.efl_ui_textpath_part_class_get();
@@ -105,9 +78,9 @@ public class TextpathPart : Efl.Ui.LayoutPartText, Efl.Eo.IWrapper
             return Efl.Ui.TextpathPart.efl_ui_textpath_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3d27ba3..b7a392d 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl Ui Theme class</summary>
 [Efl.Ui.Theme.NativeMethods]
-public class Theme : Efl.Object, Efl.Eo.IWrapper
+public class Theme : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class Theme : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Theme(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Theme"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class Theme : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Gets the default theme handle.</summary>
     /// <returns>The default theme handle</returns>
     public static Efl.Ui.Theme GetDefault() {
@@ -114,8 +87,8 @@ public class Theme : Efl.Object, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>This is the default theme.
-/// All widgets use the default theme implicitly unless a specific theme is set.</summary>
-/// <value>The default theme handle</value>
+    /// All widgets use the default theme implicitly unless a specific theme is set.</summary>
+    /// <value>The default theme handle</value>
     public static Efl.Ui.Theme Default {
         get { return GetDefault(); }
     }
@@ -185,7 +158,7 @@ public class Theme : Efl.Object, Efl.Eo.IWrapper
             return Efl.Ui.Theme.efl_ui_theme_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Ui.Theme efl_ui_theme_default_get_delegate();
@@ -198,8 +171,8 @@ public class Theme : Efl.Object, Efl.Eo.IWrapper
         private static Efl.Ui.Theme default_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_theme_default_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Theme _ret_var = default(Efl.Ui.Theme);
                 try
@@ -232,13 +205,13 @@ public class Theme : Efl.Object, Efl.Eo.IWrapper
         private static void extension_add(System.IntPtr obj, System.IntPtr pd, System.String item)
         {
             Eina.Log.Debug("function efl_ui_theme_extension_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Theme)wrapper).AddExtension(item);
+                    ((Theme)ws.Target).AddExtension(item);
                 }
                 catch (Exception e)
                 {
@@ -267,13 +240,13 @@ public class Theme : Efl.Object, Efl.Eo.IWrapper
         private static void extension_del(System.IntPtr obj, System.IntPtr pd, System.String item)
         {
             Eina.Log.Debug("function efl_ui_theme_extension_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Theme)wrapper).DelExtension(item);
+                    ((Theme)ws.Target).DelExtension(item);
                 }
                 catch (Exception e)
                 {
@@ -302,13 +275,13 @@ public class Theme : Efl.Object, Efl.Eo.IWrapper
         private static void overlay_add(System.IntPtr obj, System.IntPtr pd, System.String item)
         {
             Eina.Log.Debug("function efl_ui_theme_overlay_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Theme)wrapper).AddOverlay(item);
+                    ((Theme)ws.Target).AddOverlay(item);
                 }
                 catch (Exception e)
                 {
@@ -337,13 +310,13 @@ public class Theme : Efl.Object, Efl.Eo.IWrapper
         private static void overlay_del(System.IntPtr obj, System.IntPtr pd, System.String item)
         {
             Eina.Log.Debug("function efl_ui_theme_overlay_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Theme)wrapper).DelOverlay(item);
+                    ((Theme)ws.Target).DelOverlay(item);
                 }
                 catch (Exception e)
                 {
@@ -361,7 +334,7 @@ public class Theme : Efl.Object, Efl.Eo.IWrapper
 
         private static efl_ui_theme_overlay_del_delegate efl_ui_theme_overlay_del_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index d34feb6..bf7e47c 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Timepicker widget
 /// This is a widget which allows the user to pick a time using internal spinner. User can use the internal spinner to select hour, minute, AM/PM or user can input value using internal entry.</summary>
 [Efl.Ui.Timepicker.NativeMethods]
-public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
+public class Timepicker : Efl.Ui.LayoutBase
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Timepicker(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Timepicker"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when date is changed</summary>
     public event EventHandler ChangedEvt
     {
@@ -96,10 +69,9 @@ public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -176,7 +148,7 @@ public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Control if the Timepicker displays 24 hour time or 12 hour time including AM/PM button.</summary>
-/// <value><c>true</c> to display the 24 hour time, <c>false</c> to display 12 hour time including AM/PM button.</value>
+    /// <value><c>true</c> to display the 24 hour time, <c>false</c> to display 12 hour time including AM/PM button.</value>
     public bool Ampm {
         get { return GetAmpm(); }
         set { SetAmpm(value); }
@@ -247,7 +219,7 @@ public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
             return Efl.Ui.Timepicker.efl_ui_timepicker_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_ui_timepicker_time_get_delegate(System.IntPtr obj, System.IntPtr pd,  out int hour,  out int min);
@@ -260,13 +232,13 @@ public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void time_get(System.IntPtr obj, System.IntPtr pd, out int hour, out int min)
         {
             Eina.Log.Debug("function efl_ui_timepicker_time_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         hour = default(int);        min = default(int);                            
                 try
                 {
-                    ((Timepicker)wrapper).GetTime(out hour, out min);
+                    ((Timepicker)ws.Target).GetTime(out hour, out min);
                 }
                 catch (Exception e)
                 {
@@ -295,13 +267,13 @@ public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void time_set(System.IntPtr obj, System.IntPtr pd, int hour, int min)
         {
             Eina.Log.Debug("function efl_ui_timepicker_time_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Timepicker)wrapper).SetTime(hour, min);
+                    ((Timepicker)ws.Target).SetTime(hour, min);
                 }
                 catch (Exception e)
                 {
@@ -330,13 +302,13 @@ public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static bool ampm_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_timepicker_ampm_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Timepicker)wrapper).GetAmpm();
+                    _ret_var = ((Timepicker)ws.Target).GetAmpm();
                 }
                 catch (Exception e)
                 {
@@ -366,13 +338,13 @@ public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
         private static void ampm_set(System.IntPtr obj, System.IntPtr pd, bool is_24hour)
         {
             Eina.Log.Debug("function efl_ui_timepicker_ampm_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Timepicker)wrapper).SetAmpm(is_24hour);
+                    ((Timepicker)ws.Target).SetAmpm(is_24hour);
                 }
                 catch (Exception e)
                 {
@@ -390,7 +362,7 @@ public class Timepicker : Efl.Ui.LayoutBase, Efl.Eo.IWrapper
 
         private static efl_ui_timepicker_ampm_set_delegate efl_ui_timepicker_ampm_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 8293a27..a474ff3 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI video class</summary>
 [Efl.Ui.Video.NativeMethods]
-public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
+public class Video : Efl.Ui.LayoutBase, Efl.IFile, Efl.IPlayer
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -50,7 +50,7 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Video(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Video"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -61,33 +61,6 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Set whether the object can remember the last played position.
     /// Note: This API only serves as indication. System support is required.</summary>
     /// <returns><c>true</c> when the object can remember the last position, <c>false</c> otherwise</returns>
@@ -316,107 +289,107 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Set whether the object can remember the last played position.
-/// Note: This API only serves as indication. System support is required.</summary>
-/// <value><c>true</c> when the object can remember the last position, <c>false</c> otherwise</value>
+    /// Note: This API only serves as indication. System support is required.</summary>
+    /// <value><c>true</c> when the object can remember the last position, <c>false</c> otherwise</value>
     public bool RememberPosition {
         get { return GetRememberPosition(); }
         set { SetRememberPosition(value); }
     }
     /// <summary>Get the underlying Emotion object.</summary>
-/// <value>The underlying Emotion object.</value>
+    /// <value>The underlying Emotion object.</value>
     public Efl.Canvas.Object Emotion {
         get { return GetEmotion(); }
     }
     /// <summary>Get the title (for instance DVD title) from this emotion object.
-/// This function is only useful when playing a DVD.
-/// 
-/// Note: Don&apos;t change or free the string returned by this function.</summary>
-/// <value>A string containing the title.</value>
+    /// This function is only useful when playing a DVD.
+    /// 
+    /// Note: Don&apos;t change or free the string returned by this function.</summary>
+    /// <value>A string containing the title.</value>
     public System.String Title {
         get { return GetTitle(); }
     }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
     /// <summary>Whether or not the playable can be played.</summary>
-/// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if the object have playable data, <c>false</c> otherwise</value>
     public bool Playable {
         get { return GetPlayable(); }
     }
     /// <summary>Get play/pause state of the media file.</summary>
-/// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
+    /// <value><c>true</c> if playing, <c>false</c> otherwise.</value>
     public bool Play {
         get { return GetPlay(); }
         set { SetPlay(value); }
     }
     /// <summary>Get the position in the media file.
-/// The position is returned as the number of seconds since the beginning of the media file.</summary>
-/// <value>The position (in seconds).</value>
+    /// The position is returned as the number of seconds since the beginning of the media file.</summary>
+    /// <value>The position (in seconds).</value>
     public double Pos {
         get { return GetPos(); }
         set { SetPos(value); }
     }
     /// <summary>Get how much of the file has been played.
-/// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
-/// <value>The progress within the [0, 1] range.</value>
+    /// This function gets the progress in playing the file, the return value is in the [0, 1] range.</summary>
+    /// <value>The progress within the [0, 1] range.</value>
     public double Progress {
         get { return GetProgress(); }
     }
     /// <summary>Control the play speed of the media file.
-/// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
-/// <value>The play speed in the [0, infinity) range.</value>
+    /// This function control the speed with which the media file will be played. 1.0 represents the normal speed, 2 double speed, 0.5 half speed and so on.</summary>
+    /// <value>The play speed in the [0, infinity) range.</value>
     public double PlaySpeed {
         get { return GetPlaySpeed(); }
         set { SetPlaySpeed(value); }
     }
     /// <summary>Control the audio volume.
-/// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
-/// <value>The volume level</value>
+    /// Controls the audio volume of the stream being played. This has nothing to do with the system volume. This volume will be multiplied by the system volume. e.g.: if the current volume level is 0.5, and the system volume is 50%, it will be 0.5 * 0.5 = 0.25.</summary>
+    /// <value>The volume level</value>
     public double Volume {
         get { return GetVolume(); }
         set { SetVolume(value); }
     }
     /// <summary>This property controls the audio mute state.</summary>
-/// <value>The mute state. <c>true</c> or <c>false</c>.</value>
+    /// <value>The mute state. <c>true</c> or <c>false</c>.</value>
     public bool Mute {
         get { return GetMute(); }
         set { SetMute(value); }
     }
     /// <summary>Get the length of play for the media file.</summary>
-/// <value>The length of the stream in seconds.</value>
+    /// <value>The length of the stream in seconds.</value>
     public double Length {
         get { return GetLength(); }
     }
     /// <summary>Get whether the media file is seekable.</summary>
-/// <value><c>true</c> if seekable.</value>
+    /// <value><c>true</c> if seekable.</value>
     public bool Seekable {
         get { return GetSeekable(); }
     }
@@ -736,7 +709,7 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
             return Efl.Ui.Video.efl_ui_video_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_video_remember_position_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -749,13 +722,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static bool remember_position_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_video_remember_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetRememberPosition();
+                    _ret_var = ((Video)ws.Target).GetRememberPosition();
                 }
                 catch (Exception e)
                 {
@@ -785,13 +758,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static void remember_position_set(System.IntPtr obj, System.IntPtr pd, bool remember)
         {
             Eina.Log.Debug("function efl_ui_video_remember_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Video)wrapper).SetRememberPosition(remember);
+                    ((Video)ws.Target).SetRememberPosition(remember);
                 }
                 catch (Exception e)
                 {
@@ -820,13 +793,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static Efl.Canvas.Object emotion_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_video_emotion_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetEmotion();
+                    _ret_var = ((Video)ws.Target).GetEmotion();
                 }
                 catch (Exception e)
                 {
@@ -856,13 +829,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static System.String title_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_video_title_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetTitle();
+                    _ret_var = ((Video)ws.Target).GetTitle();
                 }
                 catch (Exception e)
                 {
@@ -892,13 +865,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetMmap();
+                    _ret_var = ((Video)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -928,13 +901,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Video)wrapper).SetMmap(f);
+                    _ret_var = ((Video)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -964,13 +937,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetFile();
+                    _ret_var = ((Video)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -1000,13 +973,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Video)wrapper).SetFile(file);
+                    _ret_var = ((Video)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -1036,13 +1009,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetKey();
+                    _ret_var = ((Video)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -1072,13 +1045,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Video)wrapper).SetKey(key);
+                    ((Video)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -1107,13 +1080,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetLoaded();
+                    _ret_var = ((Video)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -1143,13 +1116,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Video)wrapper).Load();
+                    _ret_var = ((Video)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -1179,13 +1152,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Video)wrapper).Unload();
+                    ((Video)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -1214,13 +1187,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static bool playable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_playable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetPlayable();
+                    _ret_var = ((Video)ws.Target).GetPlayable();
                 }
                 catch (Exception e)
                 {
@@ -1250,13 +1223,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static bool play_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_play_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetPlay();
+                    _ret_var = ((Video)ws.Target).GetPlay();
                 }
                 catch (Exception e)
                 {
@@ -1286,13 +1259,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static void play_set(System.IntPtr obj, System.IntPtr pd, bool play)
         {
             Eina.Log.Debug("function efl_player_play_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Video)wrapper).SetPlay(play);
+                    ((Video)ws.Target).SetPlay(play);
                 }
                 catch (Exception e)
                 {
@@ -1321,13 +1294,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static double pos_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetPos();
+                    _ret_var = ((Video)ws.Target).GetPos();
                 }
                 catch (Exception e)
                 {
@@ -1357,13 +1330,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static void pos_set(System.IntPtr obj, System.IntPtr pd, double sec)
         {
             Eina.Log.Debug("function efl_player_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Video)wrapper).SetPos(sec);
+                    ((Video)ws.Target).SetPos(sec);
                 }
                 catch (Exception e)
                 {
@@ -1392,13 +1365,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static double progress_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_progress_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetProgress();
+                    _ret_var = ((Video)ws.Target).GetProgress();
                 }
                 catch (Exception e)
                 {
@@ -1428,13 +1401,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static double play_speed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_play_speed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetPlaySpeed();
+                    _ret_var = ((Video)ws.Target).GetPlaySpeed();
                 }
                 catch (Exception e)
                 {
@@ -1464,13 +1437,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static void play_speed_set(System.IntPtr obj, System.IntPtr pd, double speed)
         {
             Eina.Log.Debug("function efl_player_play_speed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Video)wrapper).SetPlaySpeed(speed);
+                    ((Video)ws.Target).SetPlaySpeed(speed);
                 }
                 catch (Exception e)
                 {
@@ -1499,13 +1472,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static double volume_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_volume_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetVolume();
+                    _ret_var = ((Video)ws.Target).GetVolume();
                 }
                 catch (Exception e)
                 {
@@ -1535,13 +1508,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static void volume_set(System.IntPtr obj, System.IntPtr pd, double volume)
         {
             Eina.Log.Debug("function efl_player_volume_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Video)wrapper).SetVolume(volume);
+                    ((Video)ws.Target).SetVolume(volume);
                 }
                 catch (Exception e)
                 {
@@ -1570,13 +1543,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static bool mute_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_mute_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetMute();
+                    _ret_var = ((Video)ws.Target).GetMute();
                 }
                 catch (Exception e)
                 {
@@ -1606,13 +1579,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static void mute_set(System.IntPtr obj, System.IntPtr pd, bool mute)
         {
             Eina.Log.Debug("function efl_player_mute_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Video)wrapper).SetMute(mute);
+                    ((Video)ws.Target).SetMute(mute);
                 }
                 catch (Exception e)
                 {
@@ -1641,13 +1614,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static double length_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_length_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetLength();
+                    _ret_var = ((Video)ws.Target).GetLength();
                 }
                 catch (Exception e)
                 {
@@ -1677,13 +1650,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static bool seekable_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_seekable_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Video)wrapper).GetSeekable();
+                    _ret_var = ((Video)ws.Target).GetSeekable();
                 }
                 catch (Exception e)
                 {
@@ -1713,13 +1686,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static void start(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Video)wrapper).Start();
+                    ((Video)ws.Target).Start();
                 }
                 catch (Exception e)
                 {
@@ -1748,13 +1721,13 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
         private static void stop(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_player_stop was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Video)wrapper).Stop();
+                    ((Video)ws.Target).Stop();
                 }
                 catch (Exception e)
                 {
@@ -1772,7 +1745,7 @@ public class Video : Efl.Ui.LayoutBase, Efl.Eo.IWrapper,Efl.IFile,Efl.IPlayer
 
         private static efl_player_stop_delegate efl_player_stop_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 1d0e9f2..7942177 100644 (file)
@@ -21,20 +21,20 @@ Efl.IModel GetModel();
 /// <param name="model">Efl model</param>
 void SetModel(Efl.IModel model);
             /// <summary>Model that is/will be</summary>
-/// <value>Efl model</value>
+    /// <value>Efl model</value>
     Efl.IModel Model {
         get ;
         set ;
     }
 }
 /// <summary>Efl UI view interface</summary>
-sealed public class IViewConcrete : 
-
-IView
+sealed public class IViewConcrete :
+    Efl.Eo.EoWrapper
+    , IView
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -49,86 +49,12 @@ IView
         }
     }
 
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_view_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IView"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IViewConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IViewConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
+    private IViewConcrete(System.IntPtr raw) : base(raw)
     {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
     }
 
     /// <summary>Model that is/will be</summary>
@@ -145,7 +71,7 @@ IView
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Model that is/will be</summary>
-/// <value>Efl model</value>
+    /// <value>Efl model</value>
     public Efl.IModel Model {
         get { return GetModel(); }
         set { SetModel(value); }
@@ -195,7 +121,7 @@ IView
             return Efl.Ui.IViewConcrete.efl_ui_view_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.IModel efl_ui_view_model_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -208,13 +134,13 @@ IView
         private static Efl.IModel model_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_view_model_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IModel _ret_var = default(Efl.IModel);
                 try
                 {
-                    _ret_var = ((IView)wrapper).GetModel();
+                    _ret_var = ((IView)ws.Target).GetModel();
                 }
                 catch (Exception e)
                 {
@@ -244,13 +170,13 @@ IView
         private static void model_set(System.IntPtr obj, System.IntPtr pd, Efl.IModel model)
         {
             Eina.Log.Debug("function efl_ui_view_model_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IView)wrapper).SetModel(model);
+                    ((IView)ws.Target).SetModel(model);
                 }
                 catch (Exception e)
                 {
@@ -268,7 +194,7 @@ IView
 
         private static efl_ui_view_model_set_delegate efl_ui_view_model_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index c40a898..a0d6737 100644 (file)
@@ -88,7 +88,7 @@ namespace Ui {
 /// <summary>Efl UI widget abstract class
 /// (Since EFL 1.22)</summary>
 [Efl.Ui.Widget.NativeMethods]
-public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.Access.IAction,Efl.Access.IComponent,Efl.Access.IObject,Efl.Access.Widget.IAction,Efl.Ui.IDnd,Efl.Ui.IL10n,Efl.Ui.IPropertyBind,Efl.Ui.ISelection,Efl.Ui.IView,Efl.Ui.Focus.IObject
+public abstract class Widget : Efl.Canvas.Group, Efl.IPart, Efl.Access.IAction, Efl.Access.IComponent, Efl.Access.IObject, Efl.Access.Widget.IAction, Efl.Ui.IDnd, Efl.Ui.IL10n, Efl.Ui.IPropertyBind, Efl.Ui.ISelection, Efl.Ui.IView, Efl.Ui.Focus.IObject
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -127,7 +127,7 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Widget(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     [Efl.Eo.PrivateNativeClass]
     private class WidgetRealized : Widget
@@ -145,43 +145,15 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     public event EventHandler AtspiHighlightedEvt
     {
         add
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -230,10 +202,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -284,10 +255,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -338,10 +308,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -391,13 +360,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.IObjectPropertyChangedEvt_Args args = new Efl.Access.IObjectPropertyChangedEvt_Args();
+                        Efl.Access.IObjectPropertyChangedEvt_Args args = new Efl.Access.IObjectPropertyChangedEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -453,13 +421,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.IObjectChildrenChangedEvt_Args args = new Efl.Access.IObjectChildrenChangedEvt_Args();
+                        Efl.Access.IObjectChildrenChangedEvt_Args args = new Efl.Access.IObjectChildrenChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -516,13 +483,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.IObjectStateChangedEvt_Args args = new Efl.Access.IObjectStateChangedEvt_Args();
+                        Efl.Access.IObjectStateChangedEvt_Args args = new Efl.Access.IObjectStateChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -579,13 +545,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.IObjectBoundsChangedEvt_Args args = new Efl.Access.IObjectBoundsChangedEvt_Args();
+                        Efl.Access.IObjectBoundsChangedEvt_Args args = new Efl.Access.IObjectBoundsChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -642,10 +607,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -695,13 +659,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Access.IObjectActiveDescendantChangedEvt_Args args = new Efl.Access.IObjectActiveDescendantChangedEvt_Args();
+                        Efl.Access.IObjectActiveDescendantChangedEvt_Args args = new Efl.Access.IObjectActiveDescendantChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Object);
                         try
                         {
@@ -750,10 +713,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -803,10 +765,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -855,10 +816,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -907,10 +867,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -960,13 +919,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDndDragAcceptEvt_Args args = new Efl.Ui.IDndDragAcceptEvt_Args();
+                        Efl.Ui.IDndDragAcceptEvt_Args args = new Efl.Ui.IDndDragAcceptEvt_Args();
                         args.arg = (bool)Marshal.PtrToStructure(evt.Info, typeof(bool));
                         try
                         {
@@ -1022,10 +980,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1075,10 +1032,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1128,10 +1084,9 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1181,13 +1136,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDndDragPosEvt_Args args = new Efl.Ui.IDndDragPosEvt_Args();
+                        Efl.Ui.IDndDragPosEvt_Args args = new Efl.Ui.IDndDragPosEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -1244,13 +1198,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IDndDragDropEvt_Args args = new Efl.Ui.IDndDragDropEvt_Args();
+                        Efl.Ui.IDndDragDropEvt_Args args = new Efl.Ui.IDndDragDropEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -1307,13 +1260,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IPropertyBindPropertiesChangedEvt_Args args = new Efl.Ui.IPropertyBindPropertiesChangedEvt_Args();
+                        Efl.Ui.IPropertyBindPropertiesChangedEvt_Args args = new Efl.Ui.IPropertyBindPropertiesChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -1370,13 +1322,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IPropertyBindPropertyBoundEvt_Args args = new Efl.Ui.IPropertyBindPropertyBoundEvt_Args();
+                        Efl.Ui.IPropertyBindPropertyBoundEvt_Args args = new Efl.Ui.IPropertyBindPropertyBoundEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -1432,13 +1383,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.ISelectionWmSelectionChangedEvt_Args args = new Efl.Ui.ISelectionWmSelectionChangedEvt_Args();
+                        Efl.Ui.ISelectionWmSelectionChangedEvt_Args args = new Efl.Ui.ISelectionWmSelectionChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -1496,14 +1446,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IObjectFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -1559,13 +1508,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args();
+                        Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusManagerChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -1615,13 +1563,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args();
+                        Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusParentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -1671,14 +1618,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args args = new Efl.Ui.Focus.IObjectChildFocusChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -1734,13 +1680,12 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args();
+                        Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args args = new Efl.Ui.Focus.IObjectFocusGeometryChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -1790,6 +1735,20 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
             Marshal.FreeHGlobal(info);
         }
     }
+    public Efl.Ui.WidgetPartBg BackgroundPart
+    {
+        get
+        {
+            return GetPart("background") as Efl.Ui.WidgetPartBg;
+        }
+    }
+    public Efl.Ui.WidgetPartShadow ShadowPart
+    {
+        get
+        {
+            return GetPart("shadow") as Efl.Ui.WidgetPartShadow;
+        }
+    }
     /// <summary>Returns the current cursor name.
     /// (Since EFL 1.22)</summary>
     /// <returns>The cursor name, defined either by the display system or the theme.</returns>
@@ -3004,280 +2963,288 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         Eina.Error.RaiseIfUnhandledException();
         return _ret_var;
  }
+    /// <summary>Async wrapper for <see cref="SetSelection" />.</summary>
+    /// <param name="type">Selection Type</param>
+    /// <param name="format">Selection Format</param>
+    /// <param name="data">Selection data</param>
+    /// <param name="seat">Specified seat for multiple seats case.</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> SetSelectionAsync(Efl.Ui.SelectionType type,Efl.Ui.SelectionFormat format,Eina.Slice data,uint seat, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = SetSelection( type, format, data, seat);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
     /// <summary>The cursor to be shown when mouse is over the object
-/// This is the cursor that will be displayed when mouse is over the object. The object can have only one cursor set to it so if <see cref="Efl.Ui.Widget.SetCursor"/> is called twice for an object, the previous set will be unset.
-/// 
-/// If using X cursors, a definition of all the valid cursor names is listed on Elementary_Cursors.h. If an invalid name is set the default cursor will be used.
-/// (Since EFL 1.22)</summary>
-/// <value>The cursor name, defined either by the display system or the theme.</value>
+    /// This is the cursor that will be displayed when mouse is over the object. The object can have only one cursor set to it so if <see cref="Efl.Ui.Widget.SetCursor"/> is called twice for an object, the previous set will be unset.
+    /// 
+    /// If using X cursors, a definition of all the valid cursor names is listed on Elementary_Cursors.h. If an invalid name is set the default cursor will be used.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The cursor name, defined either by the display system or the theme.</value>
     public System.String Cursor {
         get { return GetCursor(); }
         set { SetCursor(value); }
     }
     /// <summary>A different style for the cursor.
-/// This only makes sense if theme cursors are used. The cursor should be set with <see cref="Efl.Ui.Widget.SetCursor"/> first before setting its style with this property.
-/// (Since EFL 1.22)</summary>
-/// <value>A specific style to use, eg. default, transparent, ....</value>
+    /// This only makes sense if theme cursors are used. The cursor should be set with <see cref="Efl.Ui.Widget.SetCursor"/> first before setting its style with this property.
+    /// (Since EFL 1.22)</summary>
+    /// <value>A specific style to use, eg. default, transparent, ....</value>
     public System.String CursorStyle {
         get { return GetCursorStyle(); }
         set { SetCursorStyle(value); }
     }
     /// <summary>Whether the cursor may be looked in the theme or not.
-/// If <c>false</c>, the cursor may only come from the render engine, i.e. from the display manager.
-/// (Since EFL 1.22)</summary>
-/// <value>Whether to use theme cursors.</value>
+    /// If <c>false</c>, the cursor may only come from the render engine, i.e. from the display manager.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether to use theme cursors.</value>
     public bool CursorThemeSearchEnabled {
         get { return GetCursorThemeSearchEnabled(); }
         set { SetCursorThemeSearchEnabled(value); }
     }
     /// <summary>This is the internal canvas object managed by a widget.
-/// This property is protected as it is meant for widget implementations only, to set and access the internal canvas object. Do use this function unless you&apos;re implementing a widget.
-/// (Since EFL 1.22)</summary>
-/// <value>A canvas object (often a <see cref="Efl.Canvas.Layout"/> object).</value>
+    /// This property is protected as it is meant for widget implementations only, to set and access the internal canvas object. Do use this function unless you&apos;re implementing a widget.
+    /// (Since EFL 1.22)</summary>
+    /// <value>A canvas object (often a <see cref="Efl.Canvas.Layout"/> object).</value>
     public Efl.Canvas.Object ResizeObject {
         set { SetResizeObject(value); }
     }
     /// <summary>Whether the widget is enabled (accepts and reacts to user inputs).
-/// The property works counted, this means, whenever n-caller set the value to <c>true</c>, n-caller have to set it to <c>false</c> in order to get it out of the disabled state again.
-/// 
-/// Each widget may handle the disabled state differently, but overall disabled widgets shall not respond to any input events. This is <c>false</c> by default, meaning the widget is enabled.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the widget is disabled.</value>
+    /// The property works counted, this means, whenever n-caller set the value to <c>true</c>, n-caller have to set it to <c>false</c> in order to get it out of the disabled state again.
+    /// 
+    /// Each widget may handle the disabled state differently, but overall disabled widgets shall not respond to any input events. This is <c>false</c> by default, meaning the widget is enabled.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the widget is disabled.</value>
     public bool Disabled {
         get { return GetDisabled(); }
         set { SetDisabled(value); }
     }
     /// <summary>The widget style to use.
-/// Styles define different look and feel for widgets, and may provide different parts for layout-based widgets. Styles vary from widget to widget and may be defined by other themes by means of extensions and overlays.
-/// 
-/// The style can only be set before <see cref="Efl.Object.FinalizeAdd"/>, which means at construction time of the object (inside <c>efl_add</c> in C).
-/// (Since EFL 1.22)</summary>
-/// <value>Name of the style to use. Refer to each widget&apos;s documentation for the available style names, or to the themes in use.</value>
+    /// Styles define different look and feel for widgets, and may provide different parts for layout-based widgets. Styles vary from widget to widget and may be defined by other themes by means of extensions and overlays.
+    /// 
+    /// The style can only be set before <see cref="Efl.Object.FinalizeAdd"/>, which means at construction time of the object (inside <c>efl_add</c> in C).
+    /// (Since EFL 1.22)</summary>
+    /// <value>Name of the style to use. Refer to each widget&apos;s documentation for the available style names, or to the themes in use.</value>
     public System.String Style {
         get { return GetStyle(); }
         set { SetStyle(value); }
     }
     /// <summary>The ability for a widget to be focused.
-/// Unfocusable objects do nothing when programmatically focused. The nearest focusable parent object the one really getting focus. Also, when they receive mouse input, they will get the event, but not take away the focus from where it was previously.
-/// 
-/// Note: Objects which are meant to be interacted with by input events are created able to be focused, by default. All the others are not.
-/// 
-/// This property&apos;s default value depends on the widget (eg. a box is not focusable, but a button is).
-/// (Since EFL 1.22)</summary>
-/// <value>Whether the object is focusable.</value>
+    /// Unfocusable objects do nothing when programmatically focused. The nearest focusable parent object the one really getting focus. Also, when they receive mouse input, they will get the event, but not take away the focus from where it was previously.
+    /// 
+    /// Note: Objects which are meant to be interacted with by input events are created able to be focused, by default. All the others are not.
+    /// 
+    /// This property&apos;s default value depends on the widget (eg. a box is not focusable, but a button is).
+    /// (Since EFL 1.22)</summary>
+    /// <value>Whether the object is focusable.</value>
     public bool FocusAllow {
         get { return GetFocusAllow(); }
         set { SetFocusAllow(value); }
     }
     /// <summary>The internal parent of this widget.
-/// <see cref="Efl.Ui.Widget"/> objects have a parent hierarchy that may differ slightly from their <see cref="Efl.Object"/> or <see cref="Efl.Canvas.Object"/> hierarchy. This is meant for internal handling.
-/// (Since EFL 1.22)</summary>
-/// <value>Widget parent object</value>
+    /// <see cref="Efl.Ui.Widget"/> objects have a parent hierarchy that may differ slightly from their <see cref="Efl.Object"/> or <see cref="Efl.Canvas.Object"/> hierarchy. This is meant for internal handling.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Widget parent object</value>
     public Efl.Ui.Widget WidgetParent {
         get { return GetWidgetParent(); }
         set { SetWidgetParent(value); }
     }
     /// <summary>Accessibility information.
-/// This is a replacement string to be read by the accessibility text-to-speech engine, if accessibility is enabled by configuration. This will take precedence over the default text for this object, which means for instance that the label of a button won&apos;t be read out loud, instead <c>txt</c> will be read out.
-/// (Since EFL 1.22)</summary>
-/// <value>Accessibility text description.</value>
+    /// This is a replacement string to be read by the accessibility text-to-speech engine, if accessibility is enabled by configuration. This will take precedence over the default text for this object, which means for instance that the label of a button won&apos;t be read out loud, instead <c>txt</c> will be read out.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Accessibility text description.</value>
     public System.String AccessInfo {
         get { return GetAccessInfo(); }
         set { SetAccessInfo(value); }
     }
     /// <summary>Region of interest inside this widget, that should be given priority to be visible inside a scroller.
-/// When this widget or one of its subwidgets is given focus, this region should be shown, which means any parent scroller should attempt to display the given area of this widget. For instance, an entry given focus should scroll to show the text cursor if that cursor moves. In this example, this region defines the relative geometry of the cursor within the widget.
-/// 
-/// Note: The region is relative to the top-left corner of the widget, i.e. X,Y start from 0,0 to indicate the top-left corner of the widget. W,H must be greater or equal to 1 for this region to be taken into account, otherwise it is ignored.
-/// (Since EFL 1.22)</summary>
-/// <value>The relative region to show. If width or height is &lt;= 0 it will be ignored, and no action will be taken.</value>
+    /// When this widget or one of its subwidgets is given focus, this region should be shown, which means any parent scroller should attempt to display the given area of this widget. For instance, an entry given focus should scroll to show the text cursor if that cursor moves. In this example, this region defines the relative geometry of the cursor within the widget.
+    /// 
+    /// Note: The region is relative to the top-left corner of the widget, i.e. X,Y start from 0,0 to indicate the top-left corner of the widget. W,H must be greater or equal to 1 for this region to be taken into account, otherwise it is ignored.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The relative region to show. If width or height is &lt;= 0 it will be ignored, and no action will be taken.</value>
     public Eina.Rect InterestRegion {
         get { return GetInterestRegion(); }
     }
     /// <summary>The rectangle region to be highlighted on focus.
-/// This is a rectangle region where the focus highlight should be displayed.
-/// (Since EFL 1.22)</summary>
-/// <value>The rectangle area.</value>
+    /// This is a rectangle region where the focus highlight should be displayed.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The rectangle area.</value>
     public Eina.Rect FocusHighlightGeometry {
         get { return GetFocusHighlightGeometry(); }
     }
     /// <summary>Focus order property
-/// (Since EFL 1.22)</summary>
-/// <value>FIXME</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>FIXME</value>
     public uint FocusOrder {
         get { return GetFocusOrder(); }
     }
     /// <summary>A custom chain of objects to pass focus.
-/// Note: On focus cycle, only will be evaluated children of this container.
-/// (Since EFL 1.22)</summary>
-/// <value>Chain of objects to pass focus</value>
+    /// Note: On focus cycle, only will be evaluated children of this container.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Chain of objects to pass focus</value>
     public Eina.List<Efl.Canvas.Object> FocusCustomChain {
         get { return GetFocusCustomChain(); }
         set { SetFocusCustomChain(value); }
     }
     /// <summary>Current focused object in object tree.
-/// (Since EFL 1.22)</summary>
-/// <value>Current focused or <c>null</c>, if there is no focused object.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>Current focused or <c>null</c>, if there is no focused object.</value>
     public Efl.Canvas.Object FocusedObject {
         get { return GetFocusedObject(); }
     }
     /// <summary>The widget&apos;s focus move policy.
-/// (Since EFL 1.22)</summary>
-/// <value>Focus move policy</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>Focus move policy</value>
     public Efl.Ui.Focus.MovePolicy FocusMovePolicy {
         get { return GetFocusMovePolicy(); }
         set { SetFocusMovePolicy(value); }
     }
     /// <summary>Control the widget&apos;s focus_move_policy mode setting.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> to follow system focus move policy change, <c>false</c> otherwise</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> to follow system focus move policy change, <c>false</c> otherwise</value>
     public bool FocusMovePolicyAutomatic {
         get { return GetFocusMovePolicyAutomatic(); }
         set { SetFocusMovePolicyAutomatic(value); }
     }
     /// <summary>Get list of available widget actions</summary>
-/// <value>Contains statically allocated strings.</value>
+    /// <value>Contains statically allocated strings.</value>
     public Eina.List<Efl.Access.ActionData> Actions {
         get { return GetActions(); }
     }
     /// <summary>Gets the depth at which the component is shown in relation to other components in the same container.</summary>
-/// <value>Z order of component</value>
+    /// <value>Z order of component</value>
     public int ZOrder {
         get { return GetZOrder(); }
     }
     /// <summary>Gets an localized string describing accessible object role name.</summary>
-/// <value>Localized accessible object role name</value>
+    /// <value>Localized accessible object role name</value>
     public System.String LocalizedRoleName {
         get { return GetLocalizedRoleName(); }
     }
     /// <summary>Accessible name of the object.</summary>
-/// <value>Accessible name</value>
+    /// <value>Accessible name</value>
     public System.String I18nName {
         get { return GetI18nName(); }
         set { SetI18nName(value); }
     }
     /// <summary>Gets an all relations between accessible object and other accessible objects.</summary>
-/// <value>Accessible relation set</value>
+    /// <value>Accessible relation set</value>
     public Efl.Access.RelationSet RelationSet {
         get { return GetRelationSet(); }
     }
     /// <summary>The role of the object in accessibility domain.</summary>
-/// <value>Accessible role</value>
+    /// <value>Accessible role</value>
     public Efl.Access.Role Role {
         get { return GetRole(); }
         set { SetRole(value); }
     }
     /// <summary>Gets object&apos;s accessible parent.</summary>
-/// <value>Accessible parent</value>
+    /// <value>Accessible parent</value>
     public Efl.Access.IObject AccessParent {
         get { return GetAccessParent(); }
         set { SetAccessParent(value); }
     }
     /// <summary>Gets object&apos;s accessible children.</summary>
-/// <value>List of widget&apos;s children</value>
+    /// <value>List of widget&apos;s children</value>
     public Eina.List<Efl.Access.IObject> AccessChildren {
         get { return GetAccessChildren(); }
     }
     /// <summary>Gets human-readable string indentifying object accessibility role.</summary>
-/// <value>Accessible role name</value>
+    /// <value>Accessible role name</value>
     public System.String RoleName {
         get { return GetRoleName(); }
     }
     /// <summary>Gets key-value pairs indentifying object extra attributes. Must be free by a user.</summary>
-/// <value>List of object attributes, Must be freed by the user</value>
+    /// <value>List of object attributes, Must be freed by the user</value>
     public Eina.List<Efl.Access.Attribute> Attributes {
         get { return GetAttributes(); }
     }
     /// <summary>Gets reading information types of an accessible object. if no reading information is set, 0 is returned which means all four reading information types will be read on object highlight
-/// @if WEARABLE @since_tizen 3.0 @endif</summary>
-/// <value>Reading information types</value>
+    /// @if WEARABLE @since_tizen 3.0 @endif</summary>
+    /// <value>Reading information types</value>
     public Efl.Access.ReadingInfoTypeMask ReadingInfoType {
         get { return GetReadingInfoType(); }
         set { SetReadingInfoType(value); }
     }
     /// <summary>Gets index of the child in parent&apos;s children list.</summary>
-/// <value>Index in children list</value>
+    /// <value>Index in children list</value>
     public int IndexInParent {
         get { return GetIndexInParent(); }
     }
     /// <summary>Gets contextual information about object.</summary>
-/// <value>Accessible contextual information</value>
+    /// <value>Accessible contextual information</value>
     public System.String Description {
         get { return GetDescription(); }
         set { SetDescription(value); }
     }
     /// <summary>Gets set describing object accessible states.</summary>
-/// <value>Accessible state set</value>
+    /// <value>Accessible state set</value>
     public Efl.Access.StateSet StateSet {
         get { return GetStateSet(); }
     }
     /// <summary>Gets highlightable of given widget.
-/// @if WEARABLE @since_tizen 3.0 @endif</summary>
-/// <value>If @c true, the object is highlightable.</value>
+    /// @if WEARABLE @since_tizen 3.0 @endif</summary>
+    /// <value>If @c true, the object is highlightable.</value>
     public bool CanHighlight {
         get { return GetCanHighlight(); }
         set { SetCanHighlight(value); }
     }
     /// <summary>The translation domain of &quot;name&quot; and &quot;description&quot; properties.
-/// Translation domain should be set if the application wants to support i18n for accessibility &quot;name&quot; and &quot;description&quot; properties.
-/// 
-/// When translation domain is set, values of &quot;name&quot; and &quot;description&quot; properties will be translated with the dgettext function using the current translation domain as the &quot;domainname&quot; parameter.
-/// 
-/// It is the application developer&apos;s responsibility to ensure that translation files are loaded and bound to the translation domain when accessibility is enabled.</summary>
-/// <value>Translation domain</value>
+    /// Translation domain should be set if the application wants to support i18n for accessibility &quot;name&quot; and &quot;description&quot; properties.
+    /// 
+    /// When translation domain is set, values of &quot;name&quot; and &quot;description&quot; properties will be translated with the dgettext function using the current translation domain as the &quot;domainname&quot; parameter.
+    /// 
+    /// It is the application developer&apos;s responsibility to ensure that translation files are loaded and bound to the translation domain when accessibility is enabled.</summary>
+    /// <value>Translation domain</value>
     public System.String TranslationDomain {
         get { return GetTranslationDomain(); }
         set { SetTranslationDomain(value); }
     }
     /// <summary>Get root object of accessible object hierarchy</summary>
-/// <value>Root object</value>
+    /// <value>Root object</value>
     public static Efl.Object AccessRoot {
         get { return GetAccessRoot(); }
     }
     /// <summary>Elementary actions</summary>
-/// <value>NULL-terminated array of Efl.Access.Action_Data.</value>
+    /// <value>NULL-terminated array of Efl.Access.Action_Data.</value>
     public Efl.Access.ActionData ElmActions {
         get { return GetElmActions(); }
     }
     /// <summary>Model that is/will be</summary>
-/// <value>Efl model</value>
+    /// <value>Efl model</value>
     public Efl.IModel Model {
         get { return GetModel(); }
         set { SetModel(value); }
     }
     /// <summary>The geometry (that is, the bounding rectangle) used to calculate the relationship with other objects.
-/// (Since EFL 1.22)</summary>
-/// <value>The geometry to use.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The geometry to use.</value>
     public Eina.Rect FocusGeometry {
         get { return GetFocusGeometry(); }
     }
     /// <summary>Returns whether the widget is currently focused or not.
-/// (Since EFL 1.22)</summary>
-/// <value>The focused state of the object.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The focused state of the object.</value>
     public bool Focus {
         get { return GetFocus(); }
         set { SetFocus(value); }
     }
     /// <summary>This is the focus manager where this focus object is registered in. The element which is the <c>root</c> of a Efl.Ui.Focus.Manager will not have this focus manager as this object, but rather the second focus manager where it is registered in.
-/// (Since EFL 1.22)</summary>
-/// <value>The manager object</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The manager object</value>
     public Efl.Ui.Focus.IManager FocusManager {
         get { return GetFocusManager(); }
     }
     /// <summary>Describes which logical parent is used by this object.
-/// (Since EFL 1.22)</summary>
-/// <value>The focus parent.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The focus parent.</value>
     public Efl.Ui.Focus.IObject FocusParent {
         get { return GetFocusParent(); }
     }
     /// <summary>Indicates if a child of this object has focus set to true.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if a child has focus.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if a child has focus.</value>
     public bool ChildFocus {
         get { return GetChildFocus(); }
         set { SetChildFocus(value); }
@@ -4738,7 +4705,7 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
             return Efl.Ui.Widget.efl_ui_widget_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))]
         private delegate System.String efl_ui_widget_cursor_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -4751,13 +4718,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String cursor_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_cursor_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetCursor();
+                    _ret_var = ((Widget)ws.Target).GetCursor();
                 }
                 catch (Exception e)
                 {
@@ -4787,13 +4754,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool cursor_set(System.IntPtr obj, System.IntPtr pd, System.String cursor)
         {
             Eina.Log.Debug("function efl_ui_widget_cursor_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).SetCursor(cursor);
+                    _ret_var = ((Widget)ws.Target).SetCursor(cursor);
                 }
                 catch (Exception e)
                 {
@@ -4823,13 +4790,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String cursor_style_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_cursor_style_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetCursorStyle();
+                    _ret_var = ((Widget)ws.Target).GetCursorStyle();
                 }
                 catch (Exception e)
                 {
@@ -4859,13 +4826,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool cursor_style_set(System.IntPtr obj, System.IntPtr pd, System.String style)
         {
             Eina.Log.Debug("function efl_ui_widget_cursor_style_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).SetCursorStyle(style);
+                    _ret_var = ((Widget)ws.Target).SetCursorStyle(style);
                 }
                 catch (Exception e)
                 {
@@ -4895,13 +4862,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool cursor_theme_search_enabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_cursor_theme_search_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetCursorThemeSearchEnabled();
+                    _ret_var = ((Widget)ws.Target).GetCursorThemeSearchEnabled();
                 }
                 catch (Exception e)
                 {
@@ -4931,13 +4898,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool cursor_theme_search_enabled_set(System.IntPtr obj, System.IntPtr pd, bool allow)
         {
             Eina.Log.Debug("function efl_ui_widget_cursor_theme_search_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).SetCursorThemeSearchEnabled(allow);
+                    _ret_var = ((Widget)ws.Target).SetCursorThemeSearchEnabled(allow);
                 }
                 catch (Exception e)
                 {
@@ -4967,13 +4934,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void resize_object_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object sobj)
         {
             Eina.Log.Debug("function efl_ui_widget_resize_object_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetResizeObject(sobj);
+                    ((Widget)ws.Target).SetResizeObject(sobj);
                 }
                 catch (Exception e)
                 {
@@ -5002,13 +4969,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool disabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_disabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetDisabled();
+                    _ret_var = ((Widget)ws.Target).GetDisabled();
                 }
                 catch (Exception e)
                 {
@@ -5038,13 +5005,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void disabled_set(System.IntPtr obj, System.IntPtr pd, bool disabled)
         {
             Eina.Log.Debug("function efl_ui_widget_disabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetDisabled(disabled);
+                    ((Widget)ws.Target).SetDisabled(disabled);
                 }
                 catch (Exception e)
                 {
@@ -5073,13 +5040,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String style_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_style_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetStyle();
+                    _ret_var = ((Widget)ws.Target).GetStyle();
                 }
                 catch (Exception e)
                 {
@@ -5109,13 +5076,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Eina.Error style_set(System.IntPtr obj, System.IntPtr pd, System.String style)
         {
             Eina.Log.Debug("function efl_ui_widget_style_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).SetStyle(style);
+                    _ret_var = ((Widget)ws.Target).SetStyle(style);
                 }
                 catch (Exception e)
                 {
@@ -5145,13 +5112,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_allow_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_allow_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusAllow();
+                    _ret_var = ((Widget)ws.Target).GetFocusAllow();
                 }
                 catch (Exception e)
                 {
@@ -5181,13 +5148,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_allow_set(System.IntPtr obj, System.IntPtr pd, bool can_focus)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_allow_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetFocusAllow(can_focus);
+                    ((Widget)ws.Target).SetFocusAllow(can_focus);
                 }
                 catch (Exception e)
                 {
@@ -5216,13 +5183,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Ui.Widget widget_parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Widget _ret_var = default(Efl.Ui.Widget);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetWidgetParent();
+                    _ret_var = ((Widget)ws.Target).GetWidgetParent();
                 }
                 catch (Exception e)
                 {
@@ -5252,13 +5219,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void widget_parent_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Widget parent)
         {
             Eina.Log.Debug("function efl_ui_widget_parent_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetWidgetParent(parent);
+                    ((Widget)ws.Target).SetWidgetParent(parent);
                 }
                 catch (Exception e)
                 {
@@ -5287,13 +5254,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String access_info_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_access_info_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetAccessInfo();
+                    _ret_var = ((Widget)ws.Target).GetAccessInfo();
                 }
                 catch (Exception e)
                 {
@@ -5323,13 +5290,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void access_info_set(System.IntPtr obj, System.IntPtr pd, System.String txt)
         {
             Eina.Log.Debug("function efl_ui_widget_access_info_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetAccessInfo(txt);
+                    ((Widget)ws.Target).SetAccessInfo(txt);
                 }
                 catch (Exception e)
                 {
@@ -5358,13 +5325,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Eina.Rect.NativeStruct interest_region_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_interest_region_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetInterestRegion();
+                    _ret_var = ((Widget)ws.Target).GetInterestRegion();
                 }
                 catch (Exception e)
                 {
@@ -5394,13 +5361,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Eina.Rect.NativeStruct focus_highlight_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_highlight_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusHighlightGeometry();
+                    _ret_var = ((Widget)ws.Target).GetFocusHighlightGeometry();
                 }
                 catch (Exception e)
                 {
@@ -5430,13 +5397,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static uint focus_order_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_order_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             uint _ret_var = default(uint);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusOrder();
+                    _ret_var = ((Widget)ws.Target).GetFocusOrder();
                 }
                 catch (Exception e)
                 {
@@ -5466,13 +5433,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.IntPtr focus_custom_chain_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_custom_chain_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Canvas.Object> _ret_var = default(Eina.List<Efl.Canvas.Object>);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusCustomChain();
+                    _ret_var = ((Widget)ws.Target).GetFocusCustomChain();
                 }
                 catch (Exception e)
                 {
@@ -5502,14 +5469,14 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_custom_chain_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr objs)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_custom_chain_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_objs = new Eina.List<Efl.Canvas.Object>(objs, false, false);
                             
                 try
                 {
-                    ((Widget)wrapper).SetFocusCustomChain(_in_objs);
+                    ((Widget)ws.Target).SetFocusCustomChain(_in_objs);
                 }
                 catch (Exception e)
                 {
@@ -5538,13 +5505,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Canvas.Object focused_object_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focused_object_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusedObject();
+                    _ret_var = ((Widget)ws.Target).GetFocusedObject();
                 }
                 catch (Exception e)
                 {
@@ -5574,13 +5541,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Ui.Focus.MovePolicy focus_move_policy_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_move_policy_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.MovePolicy _ret_var = default(Efl.Ui.Focus.MovePolicy);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusMovePolicy();
+                    _ret_var = ((Widget)ws.Target).GetFocusMovePolicy();
                 }
                 catch (Exception e)
                 {
@@ -5610,13 +5577,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_move_policy_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.MovePolicy policy)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_move_policy_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetFocusMovePolicy(policy);
+                    ((Widget)ws.Target).SetFocusMovePolicy(policy);
                 }
                 catch (Exception e)
                 {
@@ -5645,13 +5612,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_move_policy_automatic_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_move_policy_automatic_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusMovePolicyAutomatic();
+                    _ret_var = ((Widget)ws.Target).GetFocusMovePolicyAutomatic();
                 }
                 catch (Exception e)
                 {
@@ -5681,13 +5648,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_move_policy_automatic_set(System.IntPtr obj, System.IntPtr pd, bool automatic)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_move_policy_automatic_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetFocusMovePolicyAutomatic(automatic);
+                    ((Widget)ws.Target).SetFocusMovePolicyAutomatic(automatic);
                 }
                 catch (Exception e)
                 {
@@ -5716,14 +5683,14 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool widget_input_event_handler(System.IntPtr obj, System.IntPtr pd, ref Efl.Event.NativeStruct eo_event, Efl.Canvas.Object source)
         {
             Eina.Log.Debug("function efl_ui_widget_input_event_handler was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Event _in_eo_event = eo_event;
                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).WidgetInputEventHandler(ref _in_eo_event, source);
+                    _ret_var = ((Widget)ws.Target).WidgetInputEventHandler(ref _in_eo_event, source);
                 }
                 catch (Exception e)
                 {
@@ -5754,13 +5721,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool on_access_activate(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Activate act)
         {
             Eina.Log.Debug("function efl_ui_widget_on_access_activate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).OnAccessActivate(act);
+                    _ret_var = ((Widget)ws.Target).OnAccessActivate(act);
                 }
                 catch (Exception e)
                 {
@@ -5790,13 +5757,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void on_access_update(System.IntPtr obj, System.IntPtr pd, bool enable)
         {
             Eina.Log.Debug("function efl_ui_widget_on_access_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).UpdateOnAccess(enable);
+                    ((Widget)ws.Target).UpdateOnAccess(enable);
                 }
                 catch (Exception e)
                 {
@@ -5825,13 +5792,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void screen_reader(System.IntPtr obj, System.IntPtr pd, bool is_screen_reader)
         {
             Eina.Log.Debug("function efl_ui_widget_screen_reader was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).ScreenReader(is_screen_reader);
+                    ((Widget)ws.Target).ScreenReader(is_screen_reader);
                 }
                 catch (Exception e)
                 {
@@ -5860,13 +5827,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void atspi(System.IntPtr obj, System.IntPtr pd, bool is_atspi)
         {
             Eina.Log.Debug("function efl_ui_widget_atspi was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).Atspi(is_atspi);
+                    ((Widget)ws.Target).Atspi(is_atspi);
                 }
                 catch (Exception e)
                 {
@@ -5895,13 +5862,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool widget_sub_object_add(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object sub_obj)
         {
             Eina.Log.Debug("function efl_ui_widget_sub_object_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).AddWidgetSubObject(sub_obj);
+                    _ret_var = ((Widget)ws.Target).AddWidgetSubObject(sub_obj);
                 }
                 catch (Exception e)
                 {
@@ -5931,13 +5898,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool widget_sub_object_del(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object sub_obj)
         {
             Eina.Log.Debug("function efl_ui_widget_sub_object_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).DelWidgetSubObject(sub_obj);
+                    _ret_var = ((Widget)ws.Target).DelWidgetSubObject(sub_obj);
                 }
                 catch (Exception e)
                 {
@@ -5967,13 +5934,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Eina.Error theme_apply(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_theme_apply was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).ThemeApply();
+                    _ret_var = ((Widget)ws.Target).ThemeApply();
                 }
                 catch (Exception e)
                 {
@@ -6003,13 +5970,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void scroll_hold_push(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_scroll_hold_push was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).PushScrollHold();
+                    ((Widget)ws.Target).PushScrollHold();
                 }
                 catch (Exception e)
                 {
@@ -6038,13 +6005,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void scroll_hold_pop(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_scroll_hold_pop was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).PopScrollHold();
+                    ((Widget)ws.Target).PopScrollHold();
                 }
                 catch (Exception e)
                 {
@@ -6073,13 +6040,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void scroll_freeze_push(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_scroll_freeze_push was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).PushScrollFreeze();
+                    ((Widget)ws.Target).PushScrollFreeze();
                 }
                 catch (Exception e)
                 {
@@ -6108,13 +6075,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void scroll_freeze_pop(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_scroll_freeze_pop was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).PopScrollFreeze();
+                    ((Widget)ws.Target).PopScrollFreeze();
                 }
                 catch (Exception e)
                 {
@@ -6143,13 +6110,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Canvas.Object part_access_object_get(System.IntPtr obj, System.IntPtr pd, System.String part)
         {
             Eina.Log.Debug("function efl_ui_widget_part_access_object_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetPartAccessObject(part);
+                    _ret_var = ((Widget)ws.Target).GetPartAccessObject(part);
                 }
                 catch (Exception e)
                 {
@@ -6179,13 +6146,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Canvas.Object newest_focus_order_get(System.IntPtr obj, System.IntPtr pd, out uint newest_focus_order, bool can_focus_only)
         {
             Eina.Log.Debug("function efl_ui_widget_newest_focus_order_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         newest_focus_order = default(uint);                                    Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetNewestFocusOrder(out newest_focus_order, can_focus_only);
+                    _ret_var = ((Widget)ws.Target).GetNewestFocusOrder(out newest_focus_order, can_focus_only);
                 }
                 catch (Exception e)
                 {
@@ -6215,13 +6182,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_next_object_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object next, Efl.Ui.Focus.Direction dir)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_next_object_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).SetFocusNextObject(next, dir);
+                    ((Widget)ws.Target).SetFocusNextObject(next, dir);
                 }
                 catch (Exception e)
                 {
@@ -6250,13 +6217,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Canvas.Object focus_next_object_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction dir)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_next_object_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusNextObject(dir);
+                    _ret_var = ((Widget)ws.Target).GetFocusNextObject(dir);
                 }
                 catch (Exception e)
                 {
@@ -6286,13 +6253,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_next_item_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Widget next_item, Efl.Ui.Focus.Direction dir)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_next_item_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).SetFocusNextItem(next_item, dir);
+                    ((Widget)ws.Target).SetFocusNextItem(next_item, dir);
                 }
                 catch (Exception e)
                 {
@@ -6321,13 +6288,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Ui.Widget focus_next_item_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction dir)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_next_item_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Widget _ret_var = default(Efl.Ui.Widget);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusNextItem(dir);
+                    _ret_var = ((Widget)ws.Target).GetFocusNextItem(dir);
                 }
                 catch (Exception e)
                 {
@@ -6357,13 +6324,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_tree_unfocusable_handle(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_tree_unfocusable_handle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).FocusTreeUnfocusableHandle();
+                    ((Widget)ws.Target).FocusTreeUnfocusableHandle();
                 }
                 catch (Exception e)
                 {
@@ -6392,13 +6359,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_custom_chain_prepend(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object child, Efl.Canvas.Object relative_child)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_custom_chain_prepend was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).FocusCustomChainPrepend(child, relative_child);
+                    ((Widget)ws.Target).FocusCustomChainPrepend(child, relative_child);
                 }
                 catch (Exception e)
                 {
@@ -6427,13 +6394,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_cycle(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction dir)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_cycle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).FocusCycle(dir);
+                    ((Widget)ws.Target).FocusCycle(dir);
                 }
                 catch (Exception e)
                 {
@@ -6462,13 +6429,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_direction(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object kw_base, double degree, out Efl.Canvas.Object direction, out Efl.Ui.Widget direction_item, out double weight)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_direction was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                 direction = default(Efl.Canvas.Object);        direction_item = default(Efl.Ui.Widget);        weight = default(double);                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).FocusDirection(kw_base, degree, out direction, out direction_item, out weight);
+                    _ret_var = ((Widget)ws.Target).FocusDirection(kw_base, degree, out direction, out direction_item, out weight);
                 }
                 catch (Exception e)
                 {
@@ -6498,13 +6465,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_next_manager_is(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_next_manager_is was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).IsFocusNextManager();
+                    _ret_var = ((Widget)ws.Target).IsFocusNextManager();
                 }
                 catch (Exception e)
                 {
@@ -6534,14 +6501,14 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_list_direction_get(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object kw_base, System.IntPtr items, System.IntPtr list_data_get, double degree, out Efl.Canvas.Object direction, out Efl.Ui.Widget direction_item, out double weight)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_list_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 var _in_items = new Eina.List<Efl.Object>(items, false, false);
                                                                                 direction = default(Efl.Canvas.Object);        direction_item = default(Efl.Ui.Widget);        weight = default(double);                                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusListDirection(kw_base, _in_items, list_data_get, degree, out direction, out direction_item, out weight);
+                    _ret_var = ((Widget)ws.Target).GetFocusListDirection(kw_base, _in_items, list_data_get, degree, out direction, out direction_item, out weight);
                 }
                 catch (Exception e)
                 {
@@ -6571,13 +6538,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focused_object_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focused_object_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).ClearFocusedObject();
+                    ((Widget)ws.Target).ClearFocusedObject();
                 }
                 catch (Exception e)
                 {
@@ -6606,13 +6573,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_direction_go(System.IntPtr obj, System.IntPtr pd, double degree)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_direction_go was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).FocusDirectionGo(degree);
+                    _ret_var = ((Widget)ws.Target).FocusDirectionGo(degree);
                 }
                 catch (Exception e)
                 {
@@ -6642,13 +6609,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_next_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction dir, out Efl.Canvas.Object next, out Efl.Ui.Widget next_item)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_next_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         next = default(Efl.Canvas.Object);        next_item = default(Efl.Ui.Widget);                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusNext(dir, out next, out next_item);
+                    _ret_var = ((Widget)ws.Target).GetFocusNext(dir, out next, out next_item);
                 }
                 catch (Exception e)
                 {
@@ -6678,13 +6645,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_restore(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_restore was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).FocusRestore();
+                    ((Widget)ws.Target).FocusRestore();
                 }
                 catch (Exception e)
                 {
@@ -6713,13 +6680,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_custom_chain_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_custom_chain_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).UnsetFocusCustomChain();
+                    ((Widget)ws.Target).UnsetFocusCustomChain();
                 }
                 catch (Exception e)
                 {
@@ -6748,13 +6715,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_steal(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Widget item)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_steal was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).FocusSteal(item);
+                    ((Widget)ws.Target).FocusSteal(item);
                 }
                 catch (Exception e)
                 {
@@ -6783,13 +6750,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_hide_handle(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_hide_handle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).FocusHideHandle();
+                    ((Widget)ws.Target).FocusHideHandle();
                 }
                 catch (Exception e)
                 {
@@ -6818,13 +6785,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_next(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction dir, out Efl.Canvas.Object next, out Efl.Ui.Widget next_item)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_next was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         next = default(Efl.Canvas.Object);        next_item = default(Efl.Ui.Widget);                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).FocusNext(dir, out next, out next_item);
+                    _ret_var = ((Widget)ws.Target).FocusNext(dir, out next, out next_item);
                 }
                 catch (Exception e)
                 {
@@ -6854,14 +6821,14 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_list_next_get(System.IntPtr obj, System.IntPtr pd, System.IntPtr items, System.IntPtr list_data_get, Efl.Ui.Focus.Direction dir, out Efl.Canvas.Object next, out Efl.Ui.Widget next_item)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_list_next_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_items = new Eina.List<Efl.Object>(items, false, false);
                                                                 next = default(Efl.Canvas.Object);        next_item = default(Efl.Ui.Widget);                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusListNext(_in_items, list_data_get, dir, out next, out next_item);
+                    _ret_var = ((Widget)ws.Target).GetFocusListNext(_in_items, list_data_get, dir, out next, out next_item);
                 }
                 catch (Exception e)
                 {
@@ -6891,13 +6858,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_mouse_up_handle(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_mouse_up_handle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).FocusMouseUpHandle();
+                    ((Widget)ws.Target).FocusMouseUpHandle();
                 }
                 catch (Exception e)
                 {
@@ -6926,13 +6893,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_direction_get(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object kw_base, double degree, out Efl.Canvas.Object direction, out Efl.Ui.Widget direction_item, out double weight)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                 direction = default(Efl.Canvas.Object);        direction_item = default(Efl.Ui.Widget);        weight = default(double);                                                    bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusDirection(kw_base, degree, out direction, out direction_item, out weight);
+                    _ret_var = ((Widget)ws.Target).GetFocusDirection(kw_base, degree, out direction, out direction_item, out weight);
                 }
                 catch (Exception e)
                 {
@@ -6962,13 +6929,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_disabled_handle(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_disabled_handle was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).FocusDisabledHandle();
+                    ((Widget)ws.Target).FocusDisabledHandle();
                 }
                 catch (Exception e)
                 {
@@ -6997,13 +6964,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_custom_chain_append(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object child, Efl.Canvas.Object relative_child)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_custom_chain_append was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).AppendFocusCustomChain(child, relative_child);
+                    ((Widget)ws.Target).AppendFocusCustomChain(child, relative_child);
                 }
                 catch (Exception e)
                 {
@@ -7032,13 +6999,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_reconfigure(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_reconfigure was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).FocusReconfigure();
+                    ((Widget)ws.Target).FocusReconfigure();
                 }
                 catch (Exception e)
                 {
@@ -7067,13 +7034,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_direction_manager_is(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_direction_manager_is was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).IsFocusDirectionManager();
+                    _ret_var = ((Widget)ws.Target).IsFocusDirectionManager();
                 }
                 catch (Exception e)
                 {
@@ -7103,15 +7070,15 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_state_apply(System.IntPtr obj, System.IntPtr pd, Efl.Ui.WidgetFocusState.NativeStruct current_state, ref Efl.Ui.WidgetFocusState.NativeStruct configured_state, Efl.Ui.Widget redirect)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_state_apply was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Ui.WidgetFocusState _in_current_state = current_state;
                                 Efl.Ui.WidgetFocusState _out_configured_state = default(Efl.Ui.WidgetFocusState);
                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).FocusStateApply(_in_current_state, ref _out_configured_state, redirect);
+                    _ret_var = ((Widget)ws.Target).FocusStateApply(_in_current_state, ref _out_configured_state, redirect);
                 }
                 catch (Exception e)
                 {
@@ -7142,13 +7109,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Object part_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_part_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetPart(name);
+                    _ret_var = ((Widget)ws.Target).GetPart(name);
                 }
                 catch (Exception e)
                 {
@@ -7178,13 +7145,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String action_name_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetActionName(id);
+                    _ret_var = ((Widget)ws.Target).GetActionName(id);
                 }
                 catch (Exception e)
                 {
@@ -7214,13 +7181,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String action_localized_name_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_localized_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetActionLocalizedName(id);
+                    _ret_var = ((Widget)ws.Target).GetActionLocalizedName(id);
                 }
                 catch (Exception e)
                 {
@@ -7250,13 +7217,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.IntPtr actions_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_action_actions_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Access.ActionData> _ret_var = default(Eina.List<Efl.Access.ActionData>);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetActions();
+                    _ret_var = ((Widget)ws.Target).GetActions();
                 }
                 catch (Exception e)
                 {
@@ -7286,13 +7253,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool action_do(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_do was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).ActionDo(id);
+                    _ret_var = ((Widget)ws.Target).ActionDo(id);
                 }
                 catch (Exception e)
                 {
@@ -7322,13 +7289,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String action_keybinding_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_access_action_keybinding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetActionKeybinding(id);
+                    _ret_var = ((Widget)ws.Target).GetActionKeybinding(id);
                 }
                 catch (Exception e)
                 {
@@ -7358,13 +7325,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static int z_order_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_component_z_order_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetZOrder();
+                    _ret_var = ((Widget)ws.Target).GetZOrder();
                 }
                 catch (Exception e)
                 {
@@ -7394,13 +7361,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Eina.Rect.NativeStruct extents_get(System.IntPtr obj, System.IntPtr pd, bool screen_coords)
         {
             Eina.Log.Debug("function efl_access_component_extents_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetExtents(screen_coords);
+                    _ret_var = ((Widget)ws.Target).GetExtents(screen_coords);
                 }
                 catch (Exception e)
                 {
@@ -7430,14 +7397,14 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool extents_set(System.IntPtr obj, System.IntPtr pd, bool screen_coords, Eina.Rect.NativeStruct rect)
         {
             Eina.Log.Debug("function efl_access_component_extents_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Rect _in_rect = rect;
                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).SetExtents(screen_coords, _in_rect);
+                    _ret_var = ((Widget)ws.Target).SetExtents(screen_coords, _in_rect);
                 }
                 catch (Exception e)
                 {
@@ -7467,13 +7434,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void screen_position_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y)
         {
             Eina.Log.Debug("function efl_access_component_screen_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(int);        y = default(int);                            
                 try
                 {
-                    ((Widget)wrapper).GetScreenPosition(out x, out y);
+                    ((Widget)ws.Target).GetScreenPosition(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -7502,13 +7469,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool screen_position_set(System.IntPtr obj, System.IntPtr pd, int x, int y)
         {
             Eina.Log.Debug("function efl_access_component_screen_position_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).SetScreenPosition(x, y);
+                    _ret_var = ((Widget)ws.Target).SetScreenPosition(x, y);
                 }
                 catch (Exception e)
                 {
@@ -7538,13 +7505,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void socket_offset_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y)
         {
             Eina.Log.Debug("function efl_access_component_socket_offset_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(int);        y = default(int);                            
                 try
                 {
-                    ((Widget)wrapper).GetSocketOffset(out x, out y);
+                    ((Widget)ws.Target).GetSocketOffset(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -7573,13 +7540,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void socket_offset_set(System.IntPtr obj, System.IntPtr pd, int x, int y)
         {
             Eina.Log.Debug("function efl_access_component_socket_offset_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).SetSocketOffset(x, y);
+                    ((Widget)ws.Target).SetSocketOffset(x, y);
                 }
                 catch (Exception e)
                 {
@@ -7608,13 +7575,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool contains(System.IntPtr obj, System.IntPtr pd, bool screen_coords, int x, int y)
         {
             Eina.Log.Debug("function efl_access_component_contains was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).Contains(screen_coords, x, y);
+                    _ret_var = ((Widget)ws.Target).Contains(screen_coords, x, y);
                 }
                 catch (Exception e)
                 {
@@ -7644,13 +7611,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_grab(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_component_focus_grab was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GrabFocus();
+                    _ret_var = ((Widget)ws.Target).GrabFocus();
                 }
                 catch (Exception e)
                 {
@@ -7680,13 +7647,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Object accessible_at_point_get(System.IntPtr obj, System.IntPtr pd, bool screen_coords, int x, int y)
         {
             Eina.Log.Debug("function efl_access_component_accessible_at_point_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Object _ret_var = default(Efl.Object);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetAccessibleAtPoint(screen_coords, x, y);
+                    _ret_var = ((Widget)ws.Target).GetAccessibleAtPoint(screen_coords, x, y);
                 }
                 catch (Exception e)
                 {
@@ -7716,13 +7683,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool highlight_grab(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_component_highlight_grab was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GrabHighlight();
+                    _ret_var = ((Widget)ws.Target).GrabHighlight();
                 }
                 catch (Exception e)
                 {
@@ -7752,13 +7719,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool highlight_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_component_highlight_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).ClearHighlight();
+                    _ret_var = ((Widget)ws.Target).ClearHighlight();
                 }
                 catch (Exception e)
                 {
@@ -7788,13 +7755,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String localized_role_name_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_localized_role_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetLocalizedRoleName();
+                    _ret_var = ((Widget)ws.Target).GetLocalizedRoleName();
                 }
                 catch (Exception e)
                 {
@@ -7824,13 +7791,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String i18n_name_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_i18n_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetI18nName();
+                    _ret_var = ((Widget)ws.Target).GetI18nName();
                 }
                 catch (Exception e)
                 {
@@ -7860,13 +7827,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void i18n_name_set(System.IntPtr obj, System.IntPtr pd, System.String i18n_name)
         {
             Eina.Log.Debug("function efl_access_object_i18n_name_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetI18nName(i18n_name);
+                    ((Widget)ws.Target).SetI18nName(i18n_name);
                 }
                 catch (Exception e)
                 {
@@ -7895,13 +7862,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void name_cb_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.ReadingInfoCb name_cb, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_access_object_name_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).SetNameCb(name_cb, data);
+                    ((Widget)ws.Target).SetNameCb(name_cb, data);
                 }
                 catch (Exception e)
                 {
@@ -7930,13 +7897,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Access.RelationSet relation_set_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_relation_set_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.RelationSet _ret_var = default(Efl.Access.RelationSet);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetRelationSet();
+                    _ret_var = ((Widget)ws.Target).GetRelationSet();
                 }
                 catch (Exception e)
                 {
@@ -7966,13 +7933,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Access.Role role_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_role_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.Role _ret_var = default(Efl.Access.Role);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetRole();
+                    _ret_var = ((Widget)ws.Target).GetRole();
                 }
                 catch (Exception e)
                 {
@@ -8002,13 +7969,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void role_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.Role role)
         {
             Eina.Log.Debug("function efl_access_object_role_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetRole(role);
+                    ((Widget)ws.Target).SetRole(role);
                 }
                 catch (Exception e)
                 {
@@ -8037,13 +8004,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Access.IObject access_parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_access_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.IObject _ret_var = default(Efl.Access.IObject);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetAccessParent();
+                    _ret_var = ((Widget)ws.Target).GetAccessParent();
                 }
                 catch (Exception e)
                 {
@@ -8073,13 +8040,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void access_parent_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.IObject parent)
         {
             Eina.Log.Debug("function efl_access_object_access_parent_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetAccessParent(parent);
+                    ((Widget)ws.Target).SetAccessParent(parent);
                 }
                 catch (Exception e)
                 {
@@ -8108,13 +8075,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void description_cb_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.ReadingInfoCb description_cb, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_access_object_description_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).SetDescriptionCb(description_cb, data);
+                    ((Widget)ws.Target).SetDescriptionCb(description_cb, data);
                 }
                 catch (Exception e)
                 {
@@ -8143,13 +8110,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void gesture_cb_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.GestureCb gesture_cb, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_access_object_gesture_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).SetGestureCb(gesture_cb, data);
+                    ((Widget)ws.Target).SetGestureCb(gesture_cb, data);
                 }
                 catch (Exception e)
                 {
@@ -8178,13 +8145,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.IntPtr access_children_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_access_children_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Access.IObject> _ret_var = default(Eina.List<Efl.Access.IObject>);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetAccessChildren();
+                    _ret_var = ((Widget)ws.Target).GetAccessChildren();
                 }
                 catch (Exception e)
                 {
@@ -8214,13 +8181,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String role_name_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_role_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetRoleName();
+                    _ret_var = ((Widget)ws.Target).GetRoleName();
                 }
                 catch (Exception e)
                 {
@@ -8250,13 +8217,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.IntPtr attributes_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_attributes_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.List<Efl.Access.Attribute> _ret_var = default(Eina.List<Efl.Access.Attribute>);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetAttributes();
+                    _ret_var = ((Widget)ws.Target).GetAttributes();
                 }
                 catch (Exception e)
                 {
@@ -8286,13 +8253,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Access.ReadingInfoTypeMask reading_info_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_reading_info_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.ReadingInfoTypeMask _ret_var = default(Efl.Access.ReadingInfoTypeMask);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetReadingInfoType();
+                    _ret_var = ((Widget)ws.Target).GetReadingInfoType();
                 }
                 catch (Exception e)
                 {
@@ -8322,13 +8289,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void reading_info_type_set(System.IntPtr obj, System.IntPtr pd, Efl.Access.ReadingInfoTypeMask reading_info)
         {
             Eina.Log.Debug("function efl_access_object_reading_info_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetReadingInfoType(reading_info);
+                    ((Widget)ws.Target).SetReadingInfoType(reading_info);
                 }
                 catch (Exception e)
                 {
@@ -8357,13 +8324,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static int index_in_parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_index_in_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetIndexInParent();
+                    _ret_var = ((Widget)ws.Target).GetIndexInParent();
                 }
                 catch (Exception e)
                 {
@@ -8393,13 +8360,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String description_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_description_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetDescription();
+                    _ret_var = ((Widget)ws.Target).GetDescription();
                 }
                 catch (Exception e)
                 {
@@ -8429,13 +8396,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void description_set(System.IntPtr obj, System.IntPtr pd, System.String description)
         {
             Eina.Log.Debug("function efl_access_object_description_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetDescription(description);
+                    ((Widget)ws.Target).SetDescription(description);
                 }
                 catch (Exception e)
                 {
@@ -8464,13 +8431,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Access.StateSet state_set_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_state_set_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.StateSet _ret_var = default(Efl.Access.StateSet);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetStateSet();
+                    _ret_var = ((Widget)ws.Target).GetStateSet();
                 }
                 catch (Exception e)
                 {
@@ -8500,13 +8467,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool can_highlight_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_can_highlight_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetCanHighlight();
+                    _ret_var = ((Widget)ws.Target).GetCanHighlight();
                 }
                 catch (Exception e)
                 {
@@ -8536,13 +8503,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void can_highlight_set(System.IntPtr obj, System.IntPtr pd, bool can_highlight)
         {
             Eina.Log.Debug("function efl_access_object_can_highlight_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetCanHighlight(can_highlight);
+                    ((Widget)ws.Target).SetCanHighlight(can_highlight);
                 }
                 catch (Exception e)
                 {
@@ -8571,13 +8538,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String translation_domain_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_translation_domain_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetTranslationDomain();
+                    _ret_var = ((Widget)ws.Target).GetTranslationDomain();
                 }
                 catch (Exception e)
                 {
@@ -8607,13 +8574,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void translation_domain_set(System.IntPtr obj, System.IntPtr pd, System.String domain)
         {
             Eina.Log.Debug("function efl_access_object_translation_domain_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetTranslationDomain(domain);
+                    ((Widget)ws.Target).SetTranslationDomain(domain);
                 }
                 catch (Exception e)
                 {
@@ -8642,8 +8609,8 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Object access_root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_access_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Object _ret_var = default(Efl.Object);
                 try
@@ -8676,14 +8643,14 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool gesture_do(System.IntPtr obj, System.IntPtr pd, Efl.Access.GestureInfo.NativeStruct gesture_info)
         {
             Eina.Log.Debug("function efl_access_object_gesture_do was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Efl.Access.GestureInfo _in_gesture_info = gesture_info;
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GestureDo(_in_gesture_info);
+                    _ret_var = ((Widget)ws.Target).GestureDo(_in_gesture_info);
                 }
                 catch (Exception e)
                 {
@@ -8713,13 +8680,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void attribute_append(System.IntPtr obj, System.IntPtr pd, System.String key, System.String value)
         {
             Eina.Log.Debug("function efl_access_object_attribute_append was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).AppendAttribute(key, value);
+                    ((Widget)ws.Target).AppendAttribute(key, value);
                 }
                 catch (Exception e)
                 {
@@ -8748,13 +8715,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void attribute_del(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_access_object_attribute_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).DelAttribute(key);
+                    ((Widget)ws.Target).DelAttribute(key);
                 }
                 catch (Exception e)
                 {
@@ -8783,13 +8750,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void attributes_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_attributes_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).ClearAttributes();
+                    ((Widget)ws.Target).ClearAttributes();
                 }
                 catch (Exception e)
                 {
@@ -8818,8 +8785,8 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Access.Event.Handler event_handler_add(System.IntPtr obj, System.IntPtr pd, Efl.EventCb cb, System.IntPtr data)
         {
             Eina.Log.Debug("function efl_access_object_event_handler_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Efl.Access.Event.Handler _ret_var = default(Efl.Access.Event.Handler);
                 try
@@ -8852,8 +8819,8 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void event_handler_del(System.IntPtr obj, System.IntPtr pd, Efl.Access.Event.Handler handler)
         {
             Eina.Log.Debug("function efl_access_object_event_handler_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
@@ -8885,8 +8852,8 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void event_emit(System.IntPtr obj, System.IntPtr pd, Efl.Access.IObject accessible, System.IntPtr kw_event, System.IntPtr event_info)
         {
             Eina.Log.Debug("function efl_access_object_event_emit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 var _in_kw_event = Eina.PrimitiveConversion.PointerToManaged<Efl.EventDescription>(kw_event);
                                                                     
@@ -8919,13 +8886,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool relationship_append(System.IntPtr obj, System.IntPtr pd, Efl.Access.RelationType type, Efl.Access.IObject relation_object)
         {
             Eina.Log.Debug("function efl_access_object_relationship_append was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).AppendRelationship(type, relation_object);
+                    _ret_var = ((Widget)ws.Target).AppendRelationship(type, relation_object);
                 }
                 catch (Exception e)
                 {
@@ -8955,13 +8922,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void relationship_remove(System.IntPtr obj, System.IntPtr pd, Efl.Access.RelationType type, Efl.Access.IObject relation_object)
         {
             Eina.Log.Debug("function efl_access_object_relationship_remove was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).RelationshipRemove(type, relation_object);
+                    ((Widget)ws.Target).RelationshipRemove(type, relation_object);
                 }
                 catch (Exception e)
                 {
@@ -8990,13 +8957,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void relationships_clear(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_object_relationships_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).ClearRelationships();
+                    ((Widget)ws.Target).ClearRelationships();
                 }
                 catch (Exception e)
                 {
@@ -9025,13 +8992,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void state_notify(System.IntPtr obj, System.IntPtr pd, Efl.Access.StateSet state_types_mask, bool recursive)
         {
             Eina.Log.Debug("function efl_access_object_state_notify was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).StateNotify(state_types_mask, recursive);
+                    ((Widget)ws.Target).StateNotify(state_types_mask, recursive);
                 }
                 catch (Exception e)
                 {
@@ -9060,13 +9027,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Access.ActionData elm_actions_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_access_widget_action_elm_actions_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Access.ActionData _ret_var = default(Efl.Access.ActionData);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetElmActions();
+                    _ret_var = ((Widget)ws.Target).GetElmActions();
                 }
                 catch (Exception e)
                 {
@@ -9096,14 +9063,14 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void drag_start(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, Eina.Slice data, Efl.Ui.SelectionAction action, IntPtr icon_func_data, Efl.Dnd.DragIconCreateInternal icon_func, EinaFreeCb icon_func_free_cb, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_drag_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                     Efl.Dnd.DragIconCreateWrapper icon_func_wrapper = new Efl.Dnd.DragIconCreateWrapper(icon_func, icon_func_data, icon_func_free_cb);
                     
                 try
                 {
-                    ((Widget)wrapper).DragStart(format, data, action, icon_func_wrapper.ManagedCb, seat);
+                    ((Widget)ws.Target).DragStart(format, data, action, icon_func_wrapper.ManagedCb, seat);
                 }
                 catch (Exception e)
                 {
@@ -9132,13 +9099,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void drag_action_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionAction action, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_drag_action_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).SetDragAction(action, seat);
+                    ((Widget)ws.Target).SetDragAction(action, seat);
                 }
                 catch (Exception e)
                 {
@@ -9167,13 +9134,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void drag_cancel(System.IntPtr obj, System.IntPtr pd, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_drag_cancel was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).DragCancel(seat);
+                    ((Widget)ws.Target).DragCancel(seat);
                 }
                 catch (Exception e)
                 {
@@ -9202,13 +9169,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void drop_target_add(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_drop_target_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).AddDropTarget(format, seat);
+                    ((Widget)ws.Target).AddDropTarget(format, seat);
                 }
                 catch (Exception e)
                 {
@@ -9237,13 +9204,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void drop_target_del(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, uint seat)
         {
             Eina.Log.Debug("function efl_ui_dnd_drop_target_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).DelDropTarget(format, seat);
+                    ((Widget)ws.Target).DelDropTarget(format, seat);
                 }
                 catch (Exception e)
                 {
@@ -9272,14 +9239,14 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static System.String l10n_text_get(System.IntPtr obj, System.IntPtr pd, out System.String domain)
         {
             Eina.Log.Debug("function efl_ui_l10n_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 System.String _out_domain = default(System.String);
                     System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetL10nText(out _out_domain);
+                    _ret_var = ((Widget)ws.Target).GetL10nText(out _out_domain);
                 }
                 catch (Exception e)
                 {
@@ -9310,13 +9277,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void l10n_text_set(System.IntPtr obj, System.IntPtr pd, System.String label, System.String domain)
         {
             Eina.Log.Debug("function efl_ui_l10n_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).SetL10nText(label, domain);
+                    ((Widget)ws.Target).SetL10nText(label, domain);
                 }
                 catch (Exception e)
                 {
@@ -9345,13 +9312,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void translation_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_l10n_translation_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).UpdateTranslation();
+                    ((Widget)ws.Target).UpdateTranslation();
                 }
                 catch (Exception e)
                 {
@@ -9380,13 +9347,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Eina.Error property_bind(System.IntPtr obj, System.IntPtr pd, System.String key, System.String property)
         {
             Eina.Log.Debug("function efl_ui_property_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).PropertyBind(key, property);
+                    _ret_var = ((Widget)ws.Target).PropertyBind(key, property);
                 }
                 catch (Exception e)
                 {
@@ -9416,13 +9383,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static  Eina.Future selection_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionType type, Efl.Ui.SelectionFormat format, Eina.Slice data, uint seat)
         {
             Eina.Log.Debug("function efl_ui_selection_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).SetSelection(type, format, data, seat);
+                    _ret_var = ((Widget)ws.Target).SetSelection(type, format, data, seat);
                 }
                 catch (Exception e)
                 {
@@ -9452,14 +9419,14 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void selection_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionType type, Efl.Ui.SelectionFormat format, IntPtr data_func_data, Efl.Ui.SelectionDataReadyInternal data_func, EinaFreeCb data_func_free_cb, uint seat)
         {
             Eina.Log.Debug("function efl_ui_selection_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                             Efl.Ui.SelectionDataReadyWrapper data_func_wrapper = new Efl.Ui.SelectionDataReadyWrapper(data_func, data_func_data, data_func_free_cb);
                     
                 try
                 {
-                    ((Widget)wrapper).GetSelection(type, format, data_func_wrapper.ManagedCb, seat);
+                    ((Widget)ws.Target).GetSelection(type, format, data_func_wrapper.ManagedCb, seat);
                 }
                 catch (Exception e)
                 {
@@ -9488,13 +9455,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void selection_clear(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionType type, uint seat)
         {
             Eina.Log.Debug("function efl_ui_selection_clear was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Widget)wrapper).ClearSelection(type, seat);
+                    ((Widget)ws.Target).ClearSelection(type, seat);
                 }
                 catch (Exception e)
                 {
@@ -9523,13 +9490,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool has_owner(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionType type, uint seat)
         {
             Eina.Log.Debug("function efl_ui_selection_has_owner was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).HasOwner(type, seat);
+                    _ret_var = ((Widget)ws.Target).HasOwner(type, seat);
                 }
                 catch (Exception e)
                 {
@@ -9559,13 +9526,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.IModel model_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_view_model_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.IModel _ret_var = default(Efl.IModel);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetModel();
+                    _ret_var = ((Widget)ws.Target).GetModel();
                 }
                 catch (Exception e)
                 {
@@ -9595,13 +9562,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void model_set(System.IntPtr obj, System.IntPtr pd, Efl.IModel model)
         {
             Eina.Log.Debug("function efl_ui_view_model_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetModel(model);
+                    ((Widget)ws.Target).SetModel(model);
                 }
                 catch (Exception e)
                 {
@@ -9630,13 +9597,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Eina.Rect.NativeStruct focus_geometry_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Rect _ret_var = default(Eina.Rect);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusGeometry();
+                    _ret_var = ((Widget)ws.Target).GetFocusGeometry();
                 }
                 catch (Exception e)
                 {
@@ -9666,13 +9633,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocus();
+                    _ret_var = ((Widget)ws.Target).GetFocus();
                 }
                 catch (Exception e)
                 {
@@ -9702,13 +9669,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void focus_set(System.IntPtr obj, System.IntPtr pd, bool focus)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetFocus(focus);
+                    ((Widget)ws.Target).SetFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -9737,13 +9704,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Ui.Focus.IManager focus_manager_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_manager_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusManager();
+                    _ret_var = ((Widget)ws.Target).GetFocusManager();
                 }
                 catch (Exception e)
                 {
@@ -9773,13 +9740,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static Efl.Ui.Focus.IObject focus_parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_focus_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetFocusParent();
+                    _ret_var = ((Widget)ws.Target).GetFocusParent();
                 }
                 catch (Exception e)
                 {
@@ -9809,13 +9776,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool child_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_child_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).GetChildFocus();
+                    _ret_var = ((Widget)ws.Target).GetChildFocus();
                 }
                 catch (Exception e)
                 {
@@ -9845,13 +9812,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void child_focus_set(System.IntPtr obj, System.IntPtr pd, bool child_focus)
         {
             Eina.Log.Debug("function efl_ui_focus_object_child_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Widget)wrapper).SetChildFocus(child_focus);
+                    ((Widget)ws.Target).SetChildFocus(child_focus);
                 }
                 catch (Exception e)
                 {
@@ -9880,13 +9847,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void setup_order(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_setup_order was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).SetupOrder();
+                    ((Widget)ws.Target).SetupOrder();
                 }
                 catch (Exception e)
                 {
@@ -9915,13 +9882,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static void setup_order_non_recursive(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_setup_order_non_recursive was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Widget)wrapper).SetupOrderNonRecursive();
+                    ((Widget)ws.Target).SetupOrderNonRecursive();
                 }
                 catch (Exception e)
                 {
@@ -9950,13 +9917,13 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
         private static bool on_focus_update(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_object_on_focus_update was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Widget)wrapper).UpdateOnFocus();
+                    _ret_var = ((Widget)ws.Target).UpdateOnFocus();
                 }
                 catch (Exception e)
                 {
@@ -9975,7 +9942,7 @@ public abstract class Widget : Efl.Canvas.Group, Efl.Eo.IWrapper,Efl.IPart,Efl.A
 
         private static efl_ui_focus_object_on_focus_update_delegate efl_ui_focus_object_on_focus_update_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
@@ -10009,12 +9976,16 @@ public struct WidgetFocusState
         this.Logical = Logical;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator WidgetFocusState(IntPtr ptr)
     {
         var tmp = (WidgetFocusState.NativeStruct)Marshal.PtrToStructure(ptr, typeof(WidgetFocusState.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct WidgetFocusState.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -10049,6 +10020,8 @@ public struct WidgetFocusState
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index 9f8d169..0b2322c 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>Efl Ui Factory that provides <see cref="Efl.Ui.Widget"/>.
 /// This factory is designed to build <see cref="Efl.Ui.Widget"/> and optionally set their <see cref="Efl.Ui.Widget.Style"/> if it was connected with <see cref="Efl.Ui.IPropertyBind.PropertyBind"/> &quot;<c>style</c>&quot;.</summary>
 [Efl.Ui.WidgetFactory.NativeMethods]
-public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,Efl.Ui.IFactoryBind,Efl.Ui.IPropertyBind
+public class WidgetFactory : Efl.LoopConsumer, Efl.Ui.IFactory, Efl.Ui.IFactoryBind, Efl.Ui.IPropertyBind
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected WidgetFactory(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="WidgetFactory"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Event triggered when an item has been successfully created.</summary>
     public event EventHandler<Efl.Ui.IFactoryCreatedEvt_Args> CreatedEvt
     {
@@ -96,13 +69,12 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IFactoryCreatedEvt_Args args = new Efl.Ui.IFactoryCreatedEvt_Args();
+                        Efl.Ui.IFactoryCreatedEvt_Args args = new Efl.Ui.IFactoryCreatedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -159,13 +131,12 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IPropertyBindPropertiesChangedEvt_Args args = new Efl.Ui.IPropertyBindPropertiesChangedEvt_Args();
+                        Efl.Ui.IPropertyBindPropertiesChangedEvt_Args args = new Efl.Ui.IPropertyBindPropertiesChangedEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -222,13 +193,12 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.IPropertyBindPropertyBoundEvt_Args args = new Efl.Ui.IPropertyBindPropertyBoundEvt_Args();
+                        Efl.Ui.IPropertyBindPropertyBoundEvt_Args args = new Efl.Ui.IPropertyBindPropertyBoundEvt_Args();
                         args.arg = Eina.StringConversion.NativeUtf8ToManagedString(evt.Info);
                         try
                         {
@@ -321,13 +291,19 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
         Eina.Error.RaiseIfUnhandledException();
                                         return _ret_var;
  }
+    /// <summary>Async wrapper for <see cref="Create" />.</summary>
+    /// <param name="model">Efl model</param>
+    /// <param name="parent">Efl canvas</param>
+    /// <param name="token">Token to notify the async operation of external request to cancel.</param>
+    /// <returns>An async task wrapping the result of the operation.</returns>
     public System.Threading.Tasks.Task<Eina.Value> CreateAsync(Efl.IModel model,Efl.Gfx.IEntity parent, System.Threading.CancellationToken token = default(System.Threading.CancellationToken))
     {
         Eina.Future future = Create( model, parent);
         return Efl.Eo.Globals.WrapAsync(future, token);
     }
+
     /// <summary>Define the class of the item returned by this factory.</summary>
-/// <value>The class identifier to create item from.</value>
+    /// <value>The class identifier to create item from.</value>
     public Type ItemClass {
         get { return GetItemClass(); }
         set { SetItemClass(value); }
@@ -418,7 +394,7 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
             return Efl.Ui.WidgetFactory.efl_ui_widget_factory_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEflClass))]
         private delegate Type efl_ui_widget_factory_item_class_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -431,13 +407,13 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
         private static Type item_class_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_widget_factory_item_class_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Type _ret_var = default(Type);
                 try
                 {
-                    _ret_var = ((WidgetFactory)wrapper).GetItemClass();
+                    _ret_var = ((WidgetFactory)ws.Target).GetItemClass();
                 }
                 catch (Exception e)
                 {
@@ -467,13 +443,13 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
         private static void item_class_set(System.IntPtr obj, System.IntPtr pd, Type klass)
         {
             Eina.Log.Debug("function efl_ui_widget_factory_item_class_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetFactory)wrapper).SetItemClass(klass);
+                    ((WidgetFactory)ws.Target).SetItemClass(klass);
                 }
                 catch (Exception e)
                 {
@@ -502,13 +478,13 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
         private static  Eina.Future create(System.IntPtr obj, System.IntPtr pd, Efl.IModel model, Efl.Gfx.IEntity parent)
         {
             Eina.Log.Debug("function efl_ui_factory_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                              Eina.Future _ret_var = default( Eina.Future);
                 try
                 {
-                    _ret_var = ((WidgetFactory)wrapper).Create(model, parent);
+                    _ret_var = ((WidgetFactory)ws.Target).Create(model, parent);
                 }
                 catch (Exception e)
                 {
@@ -538,13 +514,13 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
         private static void release(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity ui_view)
         {
             Eina.Log.Debug("function efl_ui_factory_release was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetFactory)wrapper).Release(ui_view);
+                    ((WidgetFactory)ws.Target).Release(ui_view);
                 }
                 catch (Exception e)
                 {
@@ -573,13 +549,13 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
         private static void factory_bind(System.IntPtr obj, System.IntPtr pd, System.String key, Efl.Ui.IFactory factory)
         {
             Eina.Log.Debug("function efl_ui_factory_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((WidgetFactory)wrapper).FactoryBind(key, factory);
+                    ((WidgetFactory)ws.Target).FactoryBind(key, factory);
                 }
                 catch (Exception e)
                 {
@@ -608,13 +584,13 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
         private static Eina.Error property_bind(System.IntPtr obj, System.IntPtr pd, System.String key, System.String property)
         {
             Eina.Log.Debug("function efl_ui_property_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((WidgetFactory)wrapper).PropertyBind(key, property);
+                    _ret_var = ((WidgetFactory)ws.Target).PropertyBind(key, property);
                 }
                 catch (Exception e)
                 {
@@ -633,7 +609,7 @@ public class WidgetFactory : Efl.LoopConsumer, Efl.Eo.IWrapper,Efl.Ui.IFactory,E
 
         private static efl_ui_property_bind_delegate efl_ui_property_bind_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index b71d3f8..3275915 100644 (file)
@@ -25,13 +25,13 @@ Efl.Ui.Focus.IManager FocusManagerCreate(Efl.Ui.Focus.IObject root);
     }
 /// <summary>No description supplied.
 /// (Since EFL 1.22)</summary>
-sealed public class IWidgetFocusManagerConcrete : 
-
-IWidgetFocusManager
+sealed public class IWidgetFocusManagerConcrete :
+    Efl.Eo.EoWrapper
+    , IWidgetFocusManager
     , Efl.Ui.Focus.IManager
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -46,155 +46,12 @@ IWidgetFocusManager
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         efl_ui_widget_focus_manager_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IWidgetFocusManager"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IWidgetFocusManagerConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IWidgetFocusManagerConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IWidgetFocusManagerConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Redirect object has changed, the old manager is passed as an event argument.
@@ -205,13 +62,12 @@ IWidgetFocusManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -261,10 +117,9 @@ IWidgetFocusManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -315,10 +170,9 @@ IWidgetFocusManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -369,13 +223,12 @@ IWidgetFocusManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -425,14 +278,13 @@ IWidgetFocusManager
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -653,32 +505,32 @@ IWidgetFocusManager
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
@@ -898,7 +750,7 @@ IWidgetFocusManager
             return Efl.Ui.IWidgetFocusManagerConcrete.efl_ui_widget_focus_manager_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Ui.Focus.IManager efl_ui_widget_focus_manager_create_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Ui.Focus.IObject root);
@@ -911,13 +763,13 @@ IWidgetFocusManager
         private static Efl.Ui.Focus.IManager focus_manager_create(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_manager_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).FocusManagerCreate(root);
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).FocusManagerCreate(root);
                 }
                 catch (Exception e)
                 {
@@ -947,13 +799,13 @@ IWidgetFocusManager
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).GetManagerFocus();
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -983,13 +835,13 @@ IWidgetFocusManager
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IWidgetFocusManagerConcrete)wrapper).SetManagerFocus(focus);
+                    ((IWidgetFocusManagerConcrete)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -1018,13 +870,13 @@ IWidgetFocusManager
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).GetRedirect();
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -1054,13 +906,13 @@ IWidgetFocusManager
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IWidgetFocusManagerConcrete)wrapper).SetRedirect(redirect);
+                    ((IWidgetFocusManagerConcrete)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -1089,13 +941,13 @@ IWidgetFocusManager
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).GetBorderElements();
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -1125,14 +977,14 @@ IWidgetFocusManager
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -1162,13 +1014,13 @@ IWidgetFocusManager
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).GetRoot();
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -1198,13 +1050,13 @@ IWidgetFocusManager
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).SetRoot(root);
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -1234,13 +1086,13 @@ IWidgetFocusManager
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).Move(direction);
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -1270,13 +1122,13 @@ IWidgetFocusManager
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -1306,13 +1158,13 @@ IWidgetFocusManager
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).RequestSubchild(root);
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -1342,13 +1194,13 @@ IWidgetFocusManager
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).Fetch(child);
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -1378,13 +1230,13 @@ IWidgetFocusManager
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((IWidgetFocusManagerConcrete)wrapper).LogicalEnd();
+                    _ret_var = ((IWidgetFocusManagerConcrete)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -1414,13 +1266,13 @@ IWidgetFocusManager
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IWidgetFocusManagerConcrete)wrapper).ResetHistory();
+                    ((IWidgetFocusManagerConcrete)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -1449,13 +1301,13 @@ IWidgetFocusManager
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IWidgetFocusManagerConcrete)wrapper).PopHistoryStack();
+                    ((IWidgetFocusManagerConcrete)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -1484,13 +1336,13 @@ IWidgetFocusManager
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IWidgetFocusManagerConcrete)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((IWidgetFocusManagerConcrete)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -1519,13 +1371,13 @@ IWidgetFocusManager
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IWidgetFocusManagerConcrete)wrapper).FreezeDirtyLogic();
+                    ((IWidgetFocusManagerConcrete)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -1554,13 +1406,13 @@ IWidgetFocusManager
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IWidgetFocusManagerConcrete)wrapper).DirtyLogicUnfreeze();
+                    ((IWidgetFocusManagerConcrete)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -1578,7 +1430,7 @@ IWidgetFocusManager
 
         private static efl_ui_focus_manager_dirty_logic_unfreeze_delegate efl_ui_focus_manager_dirty_logic_unfreeze_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 731382a..66ab299 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>This is the base class for all &quot;Part&quot; handles in Efl.Ui widgets.
 /// Since objects of this type are returned by <see cref="Efl.IPart.GetPart"/>, their lifetime is limited to exactly one function call only. Each widget class should expose more specific types for their API-defined parts.</summary>
 [Efl.Ui.WidgetPart.NativeMethods]
-public class WidgetPart : Efl.Object, Efl.Eo.IWrapper
+public class WidgetPart : Efl.Object
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -45,7 +45,7 @@ public class WidgetPart : Efl.Object, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected WidgetPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="WidgetPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -56,33 +56,6 @@ public class WidgetPart : Efl.Object, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     private static IntPtr GetEflClassStatic()
     {
         return Efl.Ui.WidgetPart.efl_ui_widget_part_class_get();
@@ -106,9 +79,9 @@ public class WidgetPart : Efl.Object, Efl.Eo.IWrapper
             return Efl.Ui.WidgetPart.efl_ui_widget_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 3897f3c..5e45e5d 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Elementary widget internal part background class</summary>
 [Efl.Ui.WidgetPartBg.NativeMethods]
-public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx.IColor,Efl.Gfx.IImage
+public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.IFile, Efl.Gfx.IColor, Efl.Gfx.IImage
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected WidgetPartBg(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="WidgetPartBg"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Image data has been preloaded.</summary>
     public event EventHandler ImagePreloadEvt
     {
@@ -89,10 +62,9 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -142,10 +114,9 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -195,10 +166,9 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -523,105 +493,105 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         return _ret_var;
  }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
     /// <summary>Get hex color code of given Evas object. This returns a short lived hex color code string.
-/// (Since EFL 1.22)</summary>
-/// <value>the hex color code.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>the hex color code.</value>
     public System.String ColorCode {
         get { return GetColorCode(); }
         set { SetColorCode(value); }
     }
     /// <summary>Whether to use high-quality image scaling algorithm for this image.
-/// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
-/// 
-/// <c>true</c> by default</summary>
-/// <value>Whether to use smooth scale or not.</value>
+    /// When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image&apos;s original one. This gives better results but is more computationally expensive.
+    /// 
+    /// <c>true</c> by default</summary>
+    /// <value>Whether to use smooth scale or not.</value>
     public bool SmoothScale {
         get { return GetSmoothScale(); }
         set { SetSmoothScale(value); }
     }
     /// <summary>Control how the image is scaled.</summary>
-/// <value>Image scale type</value>
+    /// <value>Image scale type</value>
     public Efl.Gfx.ImageScaleType ScaleType {
         get { return GetScaleType(); }
         set { SetScaleType(value); }
     }
     /// <summary>The native width/height ratio of the image.</summary>
-/// <value>The image&apos;s ratio.</value>
+    /// <value>The image&apos;s ratio.</value>
     public double Ratio {
         get { return GetRatio(); }
     }
     /// <summary>Scaling factor applied to the image borders.
-/// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
-/// 
-/// Default value is 1.0 (no scaling).</summary>
-/// <value>The scale factor.</value>
+    /// This value multiplies the size of the <see cref="Efl.Gfx.IImage.GetBorder"/> when scaling an object.
+    /// 
+    /// Default value is 1.0 (no scaling).</summary>
+    /// <value>The scale factor.</value>
     public double BorderScale {
         get { return GetBorderScale(); }
         set { SetBorderScale(value); }
     }
     /// <summary>Specifies how the center part of the object (not the borders) should be drawn when EFL is rendering it.
-/// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
-/// 
-/// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
-/// <value>Fill mode of the center region.</value>
+    /// This function sets how the center part of the image object&apos;s source image is to be drawn, which must be one of the values in <see cref="Efl.Gfx.BorderFillMode"/>. By center we mean the complementary part of that defined by <see cref="Efl.Gfx.IImage.GetBorder"/>. This is very useful for making frames and decorations. You would most probably also be using a filled image (as in <see cref="Efl.Gfx.IFill.FillAuto"/>) to use as a frame.
+    /// 
+    /// The default value is <see cref="Efl.Gfx.BorderFillMode.Default"/>, ie. render and scale the center area, respecting its transparency.</summary>
+    /// <value>Fill mode of the center region.</value>
     public Efl.Gfx.BorderFillMode BorderCenterFill {
         get { return GetBorderCenterFill(); }
         set { SetBorderCenterFill(value); }
     }
     /// <summary>This represents the size of the original image in pixels.
-/// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
-/// 
-/// This is a read-only property, and may return 0x0.</summary>
-/// <value>The size in pixels.</value>
+    /// This may be different from the actual geometry on screen or even the size of the loaded pixel buffer. This is the size of the image as stored in the original file.
+    /// 
+    /// This is a read-only property, and may return 0x0.</summary>
+    /// <value>The size in pixels.</value>
     public Eina.Size2D ImageSize {
         get { return GetImageSize(); }
     }
     /// <summary>Get the content hint setting of a given image object of the canvas.
-/// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
-/// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
+    /// This returns #EVAS_IMAGE_CONTENT_HINT_NONE on error.</summary>
+    /// <value>Dynamic or static content hint, see <see cref="Efl.Gfx.ImageContentHint"/></value>
     public Efl.Gfx.ImageContentHint ContentHint {
         get { return GetContentHint(); }
         set { SetContentHint(value); }
     }
     /// <summary>Get the scale hint of a given image of the canvas.
-/// This function returns the scale hint value of the given image object of the canvas.</summary>
-/// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
+    /// This function returns the scale hint value of the given image object of the canvas.</summary>
+    /// <value>Scalable or static size hint, see <see cref="Efl.Gfx.ImageScaleHint"/></value>
     public Efl.Gfx.ImageScaleHint ScaleHint {
         get { return GetScaleHint(); }
         set { SetScaleHint(value); }
     }
     /// <summary>Gets the (last) file loading error for a given object.</summary>
-/// <value>The load error code.</value>
+    /// <value>The load error code.</value>
     public Eina.Error ImageLoadError {
         get { return GetImageLoadError(); }
     }
@@ -951,7 +921,7 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
             return Efl.Ui.WidgetPartBg.efl_ui_widget_part_bg_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Eina.File efl_file_mmap_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -964,13 +934,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetMmap();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -1000,13 +970,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).SetMmap(f);
+                    _ret_var = ((WidgetPartBg)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -1036,13 +1006,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetFile();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -1072,13 +1042,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).SetFile(file);
+                    _ret_var = ((WidgetPartBg)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -1108,13 +1078,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetKey();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -1144,13 +1114,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetPartBg)wrapper).SetKey(key);
+                    ((WidgetPartBg)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -1179,13 +1149,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetLoaded();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -1215,13 +1185,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).Load();
+                    _ret_var = ((WidgetPartBg)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -1251,13 +1221,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((WidgetPartBg)wrapper).Unload();
+                    ((WidgetPartBg)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -1286,13 +1256,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void color_get(System.IntPtr obj, System.IntPtr pd, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                            
                 try
                 {
-                    ((WidgetPartBg)wrapper).GetColor(out r, out g, out b, out a);
+                    ((WidgetPartBg)ws.Target).GetColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -1321,13 +1291,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void color_set(System.IntPtr obj, System.IntPtr pd, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((WidgetPartBg)wrapper).SetColor(r, g, b, a);
+                    ((WidgetPartBg)ws.Target).SetColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1356,13 +1326,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static System.String color_code_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_color_code_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetColorCode();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetColorCode();
                 }
                 catch (Exception e)
                 {
@@ -1392,13 +1362,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void color_code_set(System.IntPtr obj, System.IntPtr pd, System.String colorcode)
         {
             Eina.Log.Debug("function efl_gfx_color_code_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetPartBg)wrapper).SetColorCode(colorcode);
+                    ((WidgetPartBg)ws.Target).SetColorCode(colorcode);
                 }
                 catch (Exception e)
                 {
@@ -1427,13 +1397,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static bool smooth_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_smooth_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetSmoothScale();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetSmoothScale();
                 }
                 catch (Exception e)
                 {
@@ -1463,13 +1433,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void smooth_scale_set(System.IntPtr obj, System.IntPtr pd, bool smooth_scale)
         {
             Eina.Log.Debug("function efl_gfx_image_smooth_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetPartBg)wrapper).SetSmoothScale(smooth_scale);
+                    ((WidgetPartBg)ws.Target).SetSmoothScale(smooth_scale);
                 }
                 catch (Exception e)
                 {
@@ -1498,13 +1468,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Efl.Gfx.ImageScaleType scale_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageScaleType _ret_var = default(Efl.Gfx.ImageScaleType);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetScaleType();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetScaleType();
                 }
                 catch (Exception e)
                 {
@@ -1534,13 +1504,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void scale_type_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageScaleType scale_type)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetPartBg)wrapper).SetScaleType(scale_type);
+                    ((WidgetPartBg)ws.Target).SetScaleType(scale_type);
                 }
                 catch (Exception e)
                 {
@@ -1569,13 +1539,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static double ratio_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_ratio_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetRatio();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetRatio();
                 }
                 catch (Exception e)
                 {
@@ -1605,13 +1575,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void border_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_image_border_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((WidgetPartBg)wrapper).GetBorder(out l, out r, out t, out b);
+                    ((WidgetPartBg)ws.Target).GetBorder(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -1640,13 +1610,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void border_set(System.IntPtr obj, System.IntPtr pd, int l, int r, int t, int b)
         {
             Eina.Log.Debug("function efl_gfx_image_border_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((WidgetPartBg)wrapper).SetBorder(l, r, t, b);
+                    ((WidgetPartBg)ws.Target).SetBorder(l, r, t, b);
                 }
                 catch (Exception e)
                 {
@@ -1675,13 +1645,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static double border_scale_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_border_scale_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetBorderScale();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetBorderScale();
                 }
                 catch (Exception e)
                 {
@@ -1711,13 +1681,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void border_scale_set(System.IntPtr obj, System.IntPtr pd, double scale)
         {
             Eina.Log.Debug("function efl_gfx_image_border_scale_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetPartBg)wrapper).SetBorderScale(scale);
+                    ((WidgetPartBg)ws.Target).SetBorderScale(scale);
                 }
                 catch (Exception e)
                 {
@@ -1746,13 +1716,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Efl.Gfx.BorderFillMode border_center_fill_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_border_center_fill_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.BorderFillMode _ret_var = default(Efl.Gfx.BorderFillMode);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetBorderCenterFill();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetBorderCenterFill();
                 }
                 catch (Exception e)
                 {
@@ -1782,13 +1752,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void border_center_fill_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.BorderFillMode fill)
         {
             Eina.Log.Debug("function efl_gfx_image_border_center_fill_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetPartBg)wrapper).SetBorderCenterFill(fill);
+                    ((WidgetPartBg)ws.Target).SetBorderCenterFill(fill);
                 }
                 catch (Exception e)
                 {
@@ -1817,13 +1787,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.Size2D.NativeStruct image_size_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetImageSize();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetImageSize();
                 }
                 catch (Exception e)
                 {
@@ -1853,13 +1823,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Efl.Gfx.ImageContentHint content_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_content_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageContentHint _ret_var = default(Efl.Gfx.ImageContentHint);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetContentHint();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetContentHint();
                 }
                 catch (Exception e)
                 {
@@ -1889,13 +1859,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void content_hint_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageContentHint hint)
         {
             Eina.Log.Debug("function efl_gfx_image_content_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetPartBg)wrapper).SetContentHint(hint);
+                    ((WidgetPartBg)ws.Target).SetContentHint(hint);
                 }
                 catch (Exception e)
                 {
@@ -1924,13 +1894,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Efl.Gfx.ImageScaleHint scale_hint_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_hint_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.ImageScaleHint _ret_var = default(Efl.Gfx.ImageScaleHint);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetScaleHint();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetScaleHint();
                 }
                 catch (Exception e)
                 {
@@ -1960,13 +1930,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static void scale_hint_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.ImageScaleHint hint)
         {
             Eina.Log.Debug("function efl_gfx_image_scale_hint_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetPartBg)wrapper).SetScaleHint(hint);
+                    ((WidgetPartBg)ws.Target).SetScaleHint(hint);
                 }
                 catch (Exception e)
                 {
@@ -1995,13 +1965,13 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
         private static Eina.Error image_load_error_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_image_load_error_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((WidgetPartBg)wrapper).GetImageLoadError();
+                    _ret_var = ((WidgetPartBg)ws.Target).GetImageLoadError();
                 }
                 catch (Exception e)
                 {
@@ -2020,7 +1990,7 @@ public class WidgetPartBg : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IFile,Efl.Gfx
 
         private static efl_gfx_image_load_error_get_delegate efl_gfx_image_load_error_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index e51e97b..cf93be6 100644 (file)
@@ -18,7 +18,7 @@ namespace Ui {
 /// 
 /// It is also possible to manually specify which <see cref="Efl.Gfx.IFilter"/> program to use.</summary>
 [Efl.Ui.WidgetPartShadow.NativeMethods]
-public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur,Efl.Gfx.IColor,Efl.Gfx.IFilter
+public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Gfx.IBlur, Efl.Gfx.IColor, Efl.Gfx.IFilter
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -51,7 +51,7 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected WidgetPartShadow(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="WidgetPartShadow"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -62,33 +62,6 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>The blur radius in pixels.</summary>
     /// <param name="rx">The horizontal blur radius.</param>
     /// <param name="ry">The vertical blur radius.</param>
@@ -269,17 +242,17 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         Eina.Error.RaiseIfUnhandledException();
                                                          }
     /// <summary>How much the original image should be &quot;grown&quot; before blurring.
-/// Growing is a combination of blur &amp; color levels adjustment. If the value of grow is positive, the pixels will appear more &quot;fat&quot; or &quot;bold&quot; than the original. If the value is negative, a shrink effect happens instead.
-/// 
-/// This is can be used efficiently to create glow effects.</summary>
-/// <value>How much to grow the original pixel data.</value>
+    /// Growing is a combination of blur &amp; color levels adjustment. If the value of grow is positive, the pixels will appear more &quot;fat&quot; or &quot;bold&quot; than the original. If the value is negative, a shrink effect happens instead.
+    /// 
+    /// This is can be used efficiently to create glow effects.</summary>
+    /// <value>How much to grow the original pixel data.</value>
     public double Grow {
         get { return GetGrow(); }
         set { SetGrow(value); }
     }
     /// <summary>Get hex color code of given Evas object. This returns a short lived hex color code string.
-/// (Since EFL 1.22)</summary>
-/// <value>the hex color code.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>the hex color code.</value>
     public System.String ColorCode {
         get { return GetColorCode(); }
         set { SetColorCode(value); }
@@ -500,7 +473,7 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
             return Efl.Ui.WidgetPartShadow.efl_ui_widget_part_shadow_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void efl_gfx_blur_radius_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double rx,  out double ry);
@@ -513,13 +486,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void radius_get(System.IntPtr obj, System.IntPtr pd, out double rx, out double ry)
         {
             Eina.Log.Debug("function efl_gfx_blur_radius_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         rx = default(double);        ry = default(double);                            
                 try
                 {
-                    ((WidgetPartShadow)wrapper).GetRadius(out rx, out ry);
+                    ((WidgetPartShadow)ws.Target).GetRadius(out rx, out ry);
                 }
                 catch (Exception e)
                 {
@@ -548,13 +521,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void radius_set(System.IntPtr obj, System.IntPtr pd, double rx, double ry)
         {
             Eina.Log.Debug("function efl_gfx_blur_radius_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((WidgetPartShadow)wrapper).SetRadius(rx, ry);
+                    ((WidgetPartShadow)ws.Target).SetRadius(rx, ry);
                 }
                 catch (Exception e)
                 {
@@ -583,13 +556,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void offset_get(System.IntPtr obj, System.IntPtr pd, out double ox, out double oy)
         {
             Eina.Log.Debug("function efl_gfx_blur_offset_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         ox = default(double);        oy = default(double);                            
                 try
                 {
-                    ((WidgetPartShadow)wrapper).GetOffset(out ox, out oy);
+                    ((WidgetPartShadow)ws.Target).GetOffset(out ox, out oy);
                 }
                 catch (Exception e)
                 {
@@ -618,13 +591,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void offset_set(System.IntPtr obj, System.IntPtr pd, double ox, double oy)
         {
             Eina.Log.Debug("function efl_gfx_blur_offset_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((WidgetPartShadow)wrapper).SetOffset(ox, oy);
+                    ((WidgetPartShadow)ws.Target).SetOffset(ox, oy);
                 }
                 catch (Exception e)
                 {
@@ -653,13 +626,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static double grow_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_blur_grow_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((WidgetPartShadow)wrapper).GetGrow();
+                    _ret_var = ((WidgetPartShadow)ws.Target).GetGrow();
                 }
                 catch (Exception e)
                 {
@@ -689,13 +662,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void grow_set(System.IntPtr obj, System.IntPtr pd, double radius)
         {
             Eina.Log.Debug("function efl_gfx_blur_grow_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetPartShadow)wrapper).SetGrow(radius);
+                    ((WidgetPartShadow)ws.Target).SetGrow(radius);
                 }
                 catch (Exception e)
                 {
@@ -724,13 +697,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void color_get(System.IntPtr obj, System.IntPtr pd, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                            
                 try
                 {
-                    ((WidgetPartShadow)wrapper).GetColor(out r, out g, out b, out a);
+                    ((WidgetPartShadow)ws.Target).GetColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -759,13 +732,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void color_set(System.IntPtr obj, System.IntPtr pd, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((WidgetPartShadow)wrapper).SetColor(r, g, b, a);
+                    ((WidgetPartShadow)ws.Target).SetColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -794,13 +767,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static System.String color_code_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_color_code_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((WidgetPartShadow)wrapper).GetColorCode();
+                    _ret_var = ((WidgetPartShadow)ws.Target).GetColorCode();
                 }
                 catch (Exception e)
                 {
@@ -830,13 +803,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void color_code_set(System.IntPtr obj, System.IntPtr pd, System.String colorcode)
         {
             Eina.Log.Debug("function efl_gfx_color_code_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WidgetPartShadow)wrapper).SetColorCode(colorcode);
+                    ((WidgetPartShadow)ws.Target).SetColorCode(colorcode);
                 }
                 catch (Exception e)
                 {
@@ -865,15 +838,15 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void filter_program_get(System.IntPtr obj, System.IntPtr pd, out System.String code, out System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_program_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         System.String _out_code = default(System.String);
         System.String _out_name = default(System.String);
                             
                 try
                 {
-                    ((WidgetPartShadow)wrapper).GetFilterProgram(out _out_code, out _out_name);
+                    ((WidgetPartShadow)ws.Target).GetFilterProgram(out _out_code, out _out_name);
                 }
                 catch (Exception e)
                 {
@@ -904,13 +877,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void filter_program_set(System.IntPtr obj, System.IntPtr pd, System.String code, System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_program_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((WidgetPartShadow)wrapper).SetFilterProgram(code, name);
+                    ((WidgetPartShadow)ws.Target).SetFilterProgram(code, name);
                 }
                 catch (Exception e)
                 {
@@ -939,15 +912,15 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void filter_state_get(System.IntPtr obj, System.IntPtr pd, out System.String cur_state, out double cur_val, out System.String next_state, out double next_val, out double pos)
         {
             Eina.Log.Debug("function efl_gfx_filter_state_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                 System.String _out_cur_state = default(System.String);
         cur_val = default(double);        System.String _out_next_state = default(System.String);
         next_val = default(double);        pos = default(double);                                                    
                 try
                 {
-                    ((WidgetPartShadow)wrapper).GetFilterState(out _out_cur_state, out cur_val, out _out_next_state, out next_val, out pos);
+                    ((WidgetPartShadow)ws.Target).GetFilterState(out _out_cur_state, out cur_val, out _out_next_state, out next_val, out pos);
                 }
                 catch (Exception e)
                 {
@@ -978,13 +951,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void filter_state_set(System.IntPtr obj, System.IntPtr pd, System.String cur_state, double cur_val, System.String next_state, double next_val, double pos)
         {
             Eina.Log.Debug("function efl_gfx_filter_state_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                                                     
                 try
                 {
-                    ((WidgetPartShadow)wrapper).SetFilterState(cur_state, cur_val, next_state, next_val, pos);
+                    ((WidgetPartShadow)ws.Target).SetFilterState(cur_state, cur_val, next_state, next_val, pos);
                 }
                 catch (Exception e)
                 {
@@ -1013,13 +986,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void filter_padding_get(System.IntPtr obj, System.IntPtr pd, out int l, out int r, out int t, out int b)
         {
             Eina.Log.Debug("function efl_gfx_filter_padding_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         l = default(int);        r = default(int);        t = default(int);        b = default(int);                                            
                 try
                 {
-                    ((WidgetPartShadow)wrapper).GetFilterPadding(out l, out r, out t, out b);
+                    ((WidgetPartShadow)ws.Target).GetFilterPadding(out l, out r, out t, out b);
                 }
                 catch (Exception e)
                 {
@@ -1048,13 +1021,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static Efl.Gfx.IEntity filter_source_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_gfx_filter_source_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((WidgetPartShadow)wrapper).GetFilterSource(name);
+                    _ret_var = ((WidgetPartShadow)ws.Target).GetFilterSource(name);
                 }
                 catch (Exception e)
                 {
@@ -1084,13 +1057,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void filter_source_set(System.IntPtr obj, System.IntPtr pd, System.String name, Efl.Gfx.IEntity source)
         {
             Eina.Log.Debug("function efl_gfx_filter_source_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((WidgetPartShadow)wrapper).SetFilterSource(name, source);
+                    ((WidgetPartShadow)ws.Target).SetFilterSource(name, source);
                 }
                 catch (Exception e)
                 {
@@ -1119,14 +1092,14 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void filter_data_get(System.IntPtr obj, System.IntPtr pd, System.String name, out System.String value, out bool execute)
         {
             Eina.Log.Debug("function efl_gfx_filter_data_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         System.String _out_value = default(System.String);
         execute = default(bool);                                    
                 try
                 {
-                    ((WidgetPartShadow)wrapper).GetFilterData(name, out _out_value, out execute);
+                    ((WidgetPartShadow)ws.Target).GetFilterData(name, out _out_value, out execute);
                 }
                 catch (Exception e)
                 {
@@ -1156,13 +1129,13 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
         private static void filter_data_set(System.IntPtr obj, System.IntPtr pd, System.String name, System.String value, bool execute)
         {
             Eina.Log.Debug("function efl_gfx_filter_data_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((WidgetPartShadow)wrapper).SetFilterData(name, value, execute);
+                    ((WidgetPartShadow)ws.Target).SetFilterData(name, value, execute);
                 }
                 catch (Exception e)
                 {
@@ -1180,7 +1153,7 @@ public class WidgetPartShadow : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.Gfx.IBlur
 
         private static efl_gfx_filter_data_set_delegate efl_gfx_filter_data_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 0bc2db0..9a059fb 100644 (file)
@@ -27,7 +27,7 @@ public class WinWinRotationChangedEvt_Args : EventArgs {
 /// <summary>Efl UI window class
 /// (Since EFL 1.22)</summary>
 [Efl.Ui.Win.NativeMethods]
-public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.IScreen,Efl.IText,Efl.Access.IWindow,Efl.Canvas.IScene,Efl.Input.IState,Efl.Ui.IWidgetFocusManager,Efl.Ui.Focus.IManager,Efl.Ui.Focus.IManagerWindowRoot
+public class Win : Efl.Ui.Widget, Efl.IConfig, Efl.IContent, Efl.IScreen, Efl.IText, Efl.Access.IWindow, Efl.Canvas.IScene, Efl.Input.IState, Efl.Ui.IWidgetFocusManager, Efl.Ui.Focus.IManager, Efl.Ui.Focus.IManagerWindowRoot
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -84,7 +84,7 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected Win(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="Win"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -95,33 +95,6 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Called when the window receives a delete request
     /// (Since EFL 1.22)</summary>
     public event EventHandler DeleteRequestEvt
@@ -130,10 +103,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -184,10 +156,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -238,10 +209,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -292,10 +262,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -346,10 +315,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -400,10 +368,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -454,14 +421,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.WinFullscreenChangedEvt_Args args = new Efl.Ui.WinFullscreenChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.WinFullscreenChangedEvt_Args args = new Efl.Ui.WinFullscreenChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -517,14 +483,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.WinMaximizedChangedEvt_Args args = new Efl.Ui.WinMaximizedChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.WinMaximizedChangedEvt_Args args = new Efl.Ui.WinMaximizedChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -580,10 +545,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -634,14 +598,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.WinWinRotationChangedEvt_Args args = new Efl.Ui.WinWinRotationChangedEvt_Args();
-                        args.arg = evt.Info.ToInt32();
+                        Efl.Ui.WinWinRotationChangedEvt_Args args = new Efl.Ui.WinWinRotationChangedEvt_Args();
+                        args.arg = Marshal.ReadInt32(evt.Info);
                         try
                         {
                             value?.Invoke(obj, args);
@@ -697,10 +660,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -751,10 +713,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -805,10 +766,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -859,10 +819,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -913,10 +872,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -967,10 +925,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1021,13 +978,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -1076,10 +1032,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1129,10 +1084,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1182,10 +1136,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1235,10 +1188,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1288,10 +1240,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1341,10 +1292,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1394,10 +1344,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1448,13 +1397,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneSceneFocusInEvt_Args args = new Efl.Canvas.ISceneSceneFocusInEvt_Args();
+                        Efl.Canvas.ISceneSceneFocusInEvt_Args args = new Efl.Canvas.ISceneSceneFocusInEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -1504,13 +1452,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneSceneFocusOutEvt_Args args = new Efl.Canvas.ISceneSceneFocusOutEvt_Args();
+                        Efl.Canvas.ISceneSceneFocusOutEvt_Args args = new Efl.Canvas.ISceneSceneFocusOutEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -1560,13 +1507,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneObjectFocusInEvt_Args args = new Efl.Canvas.ISceneObjectFocusInEvt_Args();
+                        Efl.Canvas.ISceneObjectFocusInEvt_Args args = new Efl.Canvas.ISceneObjectFocusInEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -1616,13 +1562,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneObjectFocusOutEvt_Args args = new Efl.Canvas.ISceneObjectFocusOutEvt_Args();
+                        Efl.Canvas.ISceneObjectFocusOutEvt_Args args = new Efl.Canvas.ISceneObjectFocusOutEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
                         try
                         {
@@ -1672,10 +1617,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1726,13 +1670,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneRenderPostEvt_Args args = new Efl.Canvas.ISceneRenderPostEvt_Args();
+                        Efl.Canvas.ISceneRenderPostEvt_Args args = new Efl.Canvas.ISceneRenderPostEvt_Args();
                         args.arg =  evt.Info;
                         try
                         {
@@ -1790,13 +1733,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneDeviceChangedEvt_Args args = new Efl.Canvas.ISceneDeviceChangedEvt_Args();
+                        Efl.Canvas.ISceneDeviceChangedEvt_Args args = new Efl.Canvas.ISceneDeviceChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Device);
                         try
                         {
@@ -1846,13 +1788,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneDeviceAddedEvt_Args args = new Efl.Canvas.ISceneDeviceAddedEvt_Args();
+                        Efl.Canvas.ISceneDeviceAddedEvt_Args args = new Efl.Canvas.ISceneDeviceAddedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Device);
                         try
                         {
@@ -1902,13 +1843,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Canvas.ISceneDeviceRemovedEvt_Args args = new Efl.Canvas.ISceneDeviceRemovedEvt_Args();
+                        Efl.Canvas.ISceneDeviceRemovedEvt_Args args = new Efl.Canvas.ISceneDeviceRemovedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Device);
                         try
                         {
@@ -1958,13 +1898,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -2014,10 +1953,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2068,10 +2006,9 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -2122,13 +2059,12 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -2178,14 +2114,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -3302,361 +3237,361 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>In some environments you may have an indicator that shows battery status, reception, time etc. This is the indicator.
-/// Sometimes you don&apos;t want this because you provide the same functionality inside your app, so this will request that the indicator is disabled in such circumstances. The default settings depends on the environment. For example, on phones, the default is to enable the indicator. The indicator is disabled on devices like televisions however.
-/// (Since EFL 1.22)</summary>
-/// <value>The type, one of <see cref="Efl.Ui.WinIndicatorMode"/>.</value>
+    /// Sometimes you don&apos;t want this because you provide the same functionality inside your app, so this will request that the indicator is disabled in such circumstances. The default settings depends on the environment. For example, on phones, the default is to enable the indicator. The indicator is disabled on devices like televisions however.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The type, one of <see cref="Efl.Ui.WinIndicatorMode"/>.</value>
     public Efl.Ui.WinIndicatorMode IndicatorMode {
         get { return GetIndicatorMode(); }
         set { SetIndicatorMode(value); }
     }
     /// <summary>Get the keyboard mode of the window.
-/// (Since EFL 1.22)</summary>
-/// <value>The mode, one of <see cref="Efl.Ui.WinKeyboardMode"/>.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The mode, one of <see cref="Efl.Ui.WinKeyboardMode"/>.</value>
     public Efl.Ui.WinKeyboardMode KeyboardMode {
         get { return GetKeyboardMode(); }
         set { SetKeyboardMode(value); }
     }
     /// <summary>Available profiles on a window.
-/// (Since EFL 1.22)</summary>
-/// <value>A list of profiles.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>A list of profiles.</value>
     public Eina.Array<System.String> WmAvailableProfiles {
         get { return GetWmAvailableProfiles(); }
         set { SetWmAvailableProfiles(value); }
     }
     /// <summary>Get the constraints on the maximum width and height of a window relative to the width and height of the screen.
-/// When this function returns <c>true</c>, <c>obj</c> will never resize larger than the screen.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> to restrict the window&apos;s maximum size.</value>
+    /// When this function returns <c>true</c>, <c>obj</c> will never resize larger than the screen.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> to restrict the window&apos;s maximum size.</value>
     public bool ScreenConstrain {
         get { return GetScreenConstrain(); }
         set { SetScreenConstrain(value); }
     }
     /// <summary>Set the window to be skipped by keyboard focus.
-/// This sets the window to be skipped by normal keyboard input. This means a window manager will be asked not to focus this window as well as omit it from things like the taskbar, pager, &quot;alt-tab&quot; list etc. etc.
-/// 
-/// Call this and enable it on a window BEFORE you show it for the first time, otherwise it may have no effect.
-/// 
-/// Use this for windows that have only output information or might only be interacted with by the mouse or touchscreen, never for typing. This may have side-effects like making the window non-accessible in some cases unless the window is specially handled. Use this with care.
-/// (Since EFL 1.22)</summary>
-/// <value>The skip flag state (<c>true</c> if it is to be skipped).</value>
+    /// This sets the window to be skipped by normal keyboard input. This means a window manager will be asked not to focus this window as well as omit it from things like the taskbar, pager, &quot;alt-tab&quot; list etc. etc.
+    /// 
+    /// Call this and enable it on a window BEFORE you show it for the first time, otherwise it may have no effect.
+    /// 
+    /// Use this for windows that have only output information or might only be interacted with by the mouse or touchscreen, never for typing. This may have side-effects like making the window non-accessible in some cases unless the window is specially handled. Use this with care.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The skip flag state (<c>true</c> if it is to be skipped).</value>
     public bool PropFocusSkip {
         set { SetPropFocusSkip(value); }
     }
     /// <summary>Window&apos;s autohide state.
-/// When closing the window in any way outside of the program control, like pressing the X button in the titlebar or using a command from the Window Manager, a &quot;delete,request&quot; signal is emitted to indicate that this event occurred and the developer can take any action, which may include, or not, destroying the window object.
-/// 
-/// When this property is set to <c>true</c>, the window will be automatically hidden when this event occurs, after the signal is emitted. If this property is <c>false</c> nothing will happen, beyond the event emission.
-/// 
-/// C applications can use this option along with the quit policy <c>ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN</c> which allows exiting EFL&apos;s main loop when all the windows are hidden.
-/// 
-/// Note: <c>autodel</c> and <c>autohide</c> are not mutually exclusive. The window will be deleted if both are set to <c>true</c>.
-/// (Since EFL 1.22)</summary>
-/// <value>If <c>true</c>, the window will automatically hide itself when closed.</value>
+    /// When closing the window in any way outside of the program control, like pressing the X button in the titlebar or using a command from the Window Manager, a &quot;delete,request&quot; signal is emitted to indicate that this event occurred and the developer can take any action, which may include, or not, destroying the window object.
+    /// 
+    /// When this property is set to <c>true</c>, the window will be automatically hidden when this event occurs, after the signal is emitted. If this property is <c>false</c> nothing will happen, beyond the event emission.
+    /// 
+    /// C applications can use this option along with the quit policy <c>ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN</c> which allows exiting EFL&apos;s main loop when all the windows are hidden.
+    /// 
+    /// Note: <c>autodel</c> and <c>autohide</c> are not mutually exclusive. The window will be deleted if both are set to <c>true</c>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>If <c>true</c>, the window will automatically hide itself when closed.</value>
     public bool Autohide {
         get { return GetAutohide(); }
         set { SetAutohide(value); }
     }
     /// <summary>Enable quitting the main loop when this window is closed.
-/// When set, the window&apos;s loop object will exit using the passed exit code if the window is closed.
-/// 
-/// The <see cref="Eina.Value"/> passed should be <c>EMPTY</c> to unset this state or an int value to be used as the exit code.
-/// 
-/// Note this is different from <see cref="Efl.Ui.Win.ExitOnAllWindowsClosed"/> which exits when ALL windows are closed.
-/// (Since EFL 1.22)</summary>
-/// <value>The exit code to use when exiting</value>
+    /// When set, the window&apos;s loop object will exit using the passed exit code if the window is closed.
+    /// 
+    /// The <see cref="Eina.Value"/> passed should be <c>EMPTY</c> to unset this state or an int value to be used as the exit code.
+    /// 
+    /// Note this is different from <see cref="Efl.Ui.Win.ExitOnAllWindowsClosed"/> which exits when ALL windows are closed.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The exit code to use when exiting</value>
     public Eina.Value ExitOnClose {
         get { return GetExitOnClose(); }
         set { SetExitOnClose(value); }
     }
     /// <summary>Get the icon object used for the window.
-/// The object returns is the one marked by <see cref="Efl.Ui.Win.SetIconObject"/> as the object to use for the window icon.
-/// (Since EFL 1.22)</summary>
-/// <value>The image object to use for an icon.</value>
+    /// The object returns is the one marked by <see cref="Efl.Ui.Win.SetIconObject"/> as the object to use for the window icon.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The image object to use for an icon.</value>
     public Efl.Canvas.Object IconObject {
         get { return GetIconObject(); }
         set { SetIconObject(value); }
     }
     /// <summary>Get the minimized state of a window.
-/// (Since EFL 1.22)</summary>
-/// <value>If <c>true</c>, the window is minimized.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>If <c>true</c>, the window is minimized.</value>
     public bool Minimized {
         get { return GetMinimized(); }
         set { SetMinimized(value); }
     }
     /// <summary>Get the maximized state of a window.
-/// (Since EFL 1.22)</summary>
-/// <value>If <c>true</c>, the window is maximized.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>If <c>true</c>, the window is maximized.</value>
     public bool Maximized {
         get { return GetMaximized(); }
         set { SetMaximized(value); }
     }
     /// <summary>Get the fullscreen state of a window.
-/// (Since EFL 1.22)</summary>
-/// <value>If <c>true</c>, the window is fullscreen.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>If <c>true</c>, the window is fullscreen.</value>
     public bool Fullscreen {
         get { return GetFullscreen(); }
         set { SetFullscreen(value); }
     }
     /// <summary>Get the sticky state of the window.
-/// (Since EFL 1.22)</summary>
-/// <value>If <c>true</c>, the window&apos;s sticky state is enabled.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>If <c>true</c>, the window&apos;s sticky state is enabled.</value>
     public bool Sticky {
         get { return GetSticky(); }
         set { SetSticky(value); }
     }
     /// <summary>Get the urgent state of a window.
-/// (Since EFL 1.22)</summary>
-/// <value>The mode of a urgent window, one of <see cref="Efl.Ui.WinUrgentMode"/>.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The mode of a urgent window, one of <see cref="Efl.Ui.WinUrgentMode"/>.</value>
     public Efl.Ui.WinUrgentMode Urgent {
         get { return GetUrgent(); }
         set { SetUrgent(value); }
     }
     /// <summary>Get the modal state of a window.
-/// (Since EFL 1.22)</summary>
-/// <value>The mode of a window, one of <see cref="Efl.Ui.WinModalMode"/>.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The mode of a window, one of <see cref="Efl.Ui.WinModalMode"/>.</value>
     public Efl.Ui.WinModalMode Modal {
         get { return GetModal(); }
         set { SetModal(value); }
     }
     /// <summary>Get the borderless state of a window.
-/// (Since EFL 1.22)</summary>
-/// <value>If <c>true</c>, the window is borderless.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>If <c>true</c>, the window is borderless.</value>
     public bool Borderless {
         get { return GetBorderless(); }
         set { SetBorderless(value); }
     }
     /// <summary>The role of the window.
-/// It is a hint of how the Window Manager should handle it. Unlike <see cref="Efl.Ui.Win.WinType"/> and <see cref="Efl.Ui.Win.WinName"/> this can be changed at runtime.
-/// (Since EFL 1.22)</summary>
-/// <value>The role to set.</value>
+    /// It is a hint of how the Window Manager should handle it. Unlike <see cref="Efl.Ui.Win.WinType"/> and <see cref="Efl.Ui.Win.WinName"/> this can be changed at runtime.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The role to set.</value>
     public System.String WinRole {
         get { return GetWinRole(); }
         set { SetWinRole(value); }
     }
     /// <summary>The window name.
-/// The meaning of name depends on the underlying windowing system.
-/// 
-/// The window name is a construction property that can only be set at creation time, before finalize. In C this means inside <c>efl_add</c>().
-/// 
-/// Note: Once set, it cannot be modified afterwards.
-/// (Since EFL 1.22)</summary>
-/// <value>Window name</value>
+    /// The meaning of name depends on the underlying windowing system.
+    /// 
+    /// The window name is a construction property that can only be set at creation time, before finalize. In C this means inside <c>efl_add</c>().
+    /// 
+    /// Note: Once set, it cannot be modified afterwards.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Window name</value>
     public System.String WinName {
         get { return GetWinName(); }
         set { SetWinName(value); }
     }
     /// <summary>The type of the window.
-/// It is a hint of how the Window Manager should handle it.
-/// 
-/// The window type is a construction property that can only be set at creation time, before finalize. In C this means inside <c>efl_add</c>().
-/// 
-/// Note: Once set, it cannot be modified afterward.
-/// (Since EFL 1.22)</summary>
-/// <value>Window type</value>
+    /// It is a hint of how the Window Manager should handle it.
+    /// 
+    /// The window type is a construction property that can only be set at creation time, before finalize. In C this means inside <c>efl_add</c>().
+    /// 
+    /// Note: Once set, it cannot be modified afterward.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Window type</value>
     public Efl.Ui.WinType WinType {
         get { return GetWinType(); }
         set { SetWinType(value); }
     }
     /// <summary>The hardware acceleration preference for this window.
-/// This is a constructor function and can only be called before <see cref="Efl.Object.FinalizeAdd"/>.
-/// 
-/// This property overrides the global EFL configuration option &quot;accel_preference&quot; for this single window, and accepts the same syntax.
-/// 
-/// The <c>accel</c> string is a freeform C string that indicates what kind of acceleration is preferred. Here &quot;acceleration&quot; generally refers to rendering and the hardware with which the unit application renders GUIs. This may or may not be honored but a best attempt will be made. Known strings are as follows:
-/// 
-/// &quot;gl&quot;, &quot;opengl&quot; - try use OpenGL. &quot;3d&quot; - try to use a 3d acceleration unit. &quot;hw&quot;, &quot;hardware&quot;, &quot;accel&quot; - try any acceleration unit (best possible) &quot;none&quot; - use no acceleration but software instead (since 1.16)
-/// 
-/// Since 1.14, it is also possible to specify some GL properties for the GL window surface. This allows applications to use GLView with depth, stencil and MSAA buffers with direct rendering. The new accel preference string format is thus &quot;{HW Accel}[:depth{value}[:stencil{value}[:msaa{str}$]$]$]&quot;.
-/// 
-/// Accepted values for depth are for instance &quot;depth&quot;, &quot;depth16&quot;, &quot;depth24&quot;. Accepted values for stencil are &quot;stencil&quot;, &quot;stencil1&quot;, &quot;stencil8&quot;. For MSAA, only predefined strings are accepted: &quot;msaa&quot;, &quot;msaa_low&quot;, &quot;msaa_mid&quot; and &quot;msaa_high&quot;. The selected configuration is not guaranteed and is only valid in case of GL acceleration. Only the base acceleration string will be saved (e.g. &quot;gl&quot; or &quot;hw&quot;).
-/// 
-/// Full examples include:
-/// 
-/// &quot;gl&quot;, - try to use OpenGL &quot;hw:depth:stencil&quot;, - use HW acceleration with default depth and stencil buffers &quot;opengl:depth24:stencil8:msaa_mid&quot; - use OpenGL with 24-bit depth, 8-bit stencil and a medium number of MSAA samples in the backbuffer.
-/// 
-/// Note that this option may be overriden by environment variables or the configuration option &quot;accel_preference_override&quot;.
-/// (Since EFL 1.22)</summary>
-/// <value>Acceleration</value>
+    /// This is a constructor function and can only be called before <see cref="Efl.Object.FinalizeAdd"/>.
+    /// 
+    /// This property overrides the global EFL configuration option &quot;accel_preference&quot; for this single window, and accepts the same syntax.
+    /// 
+    /// The <c>accel</c> string is a freeform C string that indicates what kind of acceleration is preferred. Here &quot;acceleration&quot; generally refers to rendering and the hardware with which the unit application renders GUIs. This may or may not be honored but a best attempt will be made. Known strings are as follows:
+    /// 
+    /// &quot;gl&quot;, &quot;opengl&quot; - try use OpenGL. &quot;3d&quot; - try to use a 3d acceleration unit. &quot;hw&quot;, &quot;hardware&quot;, &quot;accel&quot; - try any acceleration unit (best possible) &quot;none&quot; - use no acceleration but software instead (since 1.16)
+    /// 
+    /// Since 1.14, it is also possible to specify some GL properties for the GL window surface. This allows applications to use GLView with depth, stencil and MSAA buffers with direct rendering. The new accel preference string format is thus &quot;{HW Accel}[:depth{value}[:stencil{value}[:msaa{str}$]$]$]&quot;.
+    /// 
+    /// Accepted values for depth are for instance &quot;depth&quot;, &quot;depth16&quot;, &quot;depth24&quot;. Accepted values for stencil are &quot;stencil&quot;, &quot;stencil1&quot;, &quot;stencil8&quot;. For MSAA, only predefined strings are accepted: &quot;msaa&quot;, &quot;msaa_low&quot;, &quot;msaa_mid&quot; and &quot;msaa_high&quot;. The selected configuration is not guaranteed and is only valid in case of GL acceleration. Only the base acceleration string will be saved (e.g. &quot;gl&quot; or &quot;hw&quot;).
+    /// 
+    /// Full examples include:
+    /// 
+    /// &quot;gl&quot;, - try to use OpenGL &quot;hw:depth:stencil&quot;, - use HW acceleration with default depth and stencil buffers &quot;opengl:depth24:stencil8:msaa_mid&quot; - use OpenGL with 24-bit depth, 8-bit stencil and a medium number of MSAA samples in the backbuffer.
+    /// 
+    /// Note that this option may be overriden by environment variables or the configuration option &quot;accel_preference_override&quot;.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Acceleration</value>
     public System.String AccelPreference {
         get { return GetAccelPreference(); }
         set { SetAccelPreference(value); }
     }
     /// <summary>Get the alpha channel state of a window.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the window alpha channel is enabled, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the window alpha channel is enabled, <c>false</c> otherwise.</value>
     public bool Alpha {
         get { return GetAlpha(); }
         set { SetAlpha(value); }
     }
     /// <summary>Get the stack ID string of the window as an opaque string.
-/// This ID is immutable and can never be modified. It will be an opaque string that has no specific defined format or content other than being a string (no character with a value of 0).
-/// 
-/// This string is intended for use as a stack master ID to be use by other windows to make this window part of a stack of windows to be placed on top of each other as if they are a series of dialogs or questions one after the other, allowing you to go back through history.
-/// (Since EFL 1.22)</summary>
-/// <value>An opaque string that has no specific format but identifies a specific unique window on the display.</value>
+    /// This ID is immutable and can never be modified. It will be an opaque string that has no specific defined format or content other than being a string (no character with a value of 0).
+    /// 
+    /// This string is intended for use as a stack master ID to be use by other windows to make this window part of a stack of windows to be placed on top of each other as if they are a series of dialogs or questions one after the other, allowing you to go back through history.
+    /// (Since EFL 1.22)</summary>
+    /// <value>An opaque string that has no specific format but identifies a specific unique window on the display.</value>
     public System.String StackId {
         get { return GetStackId(); }
     }
     /// <summary>Get the stack master Id that has been set.
-/// (Since EFL 1.22)</summary>
-/// <value>An opaque string that has no specific format, but identifies a specific unique window on the display.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An opaque string that has no specific format, but identifies a specific unique window on the display.</value>
     public System.String StackMasterId {
         get { return GetStackMasterId(); }
         set { SetStackMasterId(value); }
     }
     /// <summary>The stack base state of this window
-/// This is a boolean flag that determines if this window will become the base of a stack at all. You must enable this on a base (the bottom of a window stack) for things to work correctly.
-/// 
-/// This state should be set before a window is shown for the first time and never changed afterwards.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if this is a stack base window, <c>false</c> otherwise.</value>
+    /// This is a boolean flag that determines if this window will become the base of a stack at all. You must enable this on a base (the bottom of a window stack) for things to work correctly.
+    /// 
+    /// This state should be set before a window is shown for the first time and never changed afterwards.
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if this is a stack base window, <c>false</c> otherwise.</value>
     public bool StackBase {
         get { return GetStackBase(); }
         set { SetStackBase(value); }
     }
     /// <summary>Enable quitting the main loop when all windows are closed.
-/// When set, the main loop will quit with the passed exit code once all windows have been closed.
-/// 
-/// The <see cref="Eina.Value"/> passed should be <c>EMPTY</c> to unset this state or an int value to be used as the exit code.
-/// 
-/// Note this is different from <see cref="Efl.Ui.Win.ExitOnClose"/> which exits when a given window is closed.
-/// (Since EFL 1.22)</summary>
-/// <value>The exit code to use when exiting.</value>
+    /// When set, the main loop will quit with the passed exit code once all windows have been closed.
+    /// 
+    /// The <see cref="Eina.Value"/> passed should be <c>EMPTY</c> to unset this state or an int value to be used as the exit code.
+    /// 
+    /// Note this is different from <see cref="Efl.Ui.Win.ExitOnClose"/> which exits when a given window is closed.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The exit code to use when exiting.</value>
     public static Eina.Value ExitOnAllWindowsClosed {
         get { return GetExitOnAllWindowsClosed(); }
         set { SetExitOnAllWindowsClosed(value); }
     }
     /// <summary>Base size for objects with sizing restrictions.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
-/// 
-/// <see cref="Efl.Ui.Win.HintBase"/> + N x <see cref="Efl.Ui.Win.HintStep"/> is what is calculated for object sizing restrictions.
-/// 
-/// See also <see cref="Efl.Ui.Win.HintStep"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>Base size (hint) in pixels.</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
+    /// 
+    /// <see cref="Efl.Ui.Win.HintBase"/> + N x <see cref="Efl.Ui.Win.HintStep"/> is what is calculated for object sizing restrictions.
+    /// 
+    /// See also <see cref="Efl.Ui.Win.HintStep"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Base size (hint) in pixels.</value>
     public Eina.Size2D HintBase {
         get { return GetHintBase(); }
         set { SetHintBase(value); }
     }
     /// <summary>Step size for objects with sizing restrictions.
-/// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
-/// 
-/// Set this to for an object to scale up by steps and not continuously.
-/// 
-/// <see cref="Efl.Ui.Win.HintBase"/> + N x <see cref="Efl.Ui.Win.HintStep"/> is what is calculated for object sizing restrictions.
-/// (Since EFL 1.22)</summary>
-/// <value>Step size (hint) in pixels.</value>
+    /// This is not a size enforcement in any way, it&apos;s just a hint that should be used whenever appropriate.
+    /// 
+    /// Set this to for an object to scale up by steps and not continuously.
+    /// 
+    /// <see cref="Efl.Ui.Win.HintBase"/> + N x <see cref="Efl.Ui.Win.HintStep"/> is what is calculated for object sizing restrictions.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Step size (hint) in pixels.</value>
     public Eina.Size2D HintStep {
         get { return GetHintStep(); }
         set { SetHintStep(value); }
     }
     /// <summary>The rotation of this window
-/// The value will automatically change when the WM of this window changes its rotation. This rotation is automatically applied to all <see cref="Efl.Ui.Layout"/> objects.
-/// (Since EFL 1.22)</summary>
-/// <value>The rotation of the window</value>
+    /// The value will automatically change when the WM of this window changes its rotation. This rotation is automatically applied to all <see cref="Efl.Ui.Layout"/> objects.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The rotation of the window</value>
     public int WinRotation {
         get { return GetWinRotation(); }
         set { SetWinRotation(value); }
     }
     /// <summary>Whether focus highlight is enabled or not.
-/// See also <see cref="Efl.Ui.Win.FocusHighlightStyle"/>. See also <see cref="Efl.Ui.Win.FocusHighlightAnimate"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The enabled value for the highlight.</value>
+    /// See also <see cref="Efl.Ui.Win.FocusHighlightStyle"/>. See also <see cref="Efl.Ui.Win.FocusHighlightAnimate"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The enabled value for the highlight.</value>
     public bool FocusHighlightEnabled {
         get { return GetFocusHighlightEnabled(); }
         set { SetFocusHighlightEnabled(value); }
     }
     /// <summary>Control the widget focus highlight style.
-/// If <c>style</c> is <c>null</c>, the default will be used.
-/// 
-/// See also <see cref="Efl.Ui.Win.FocusHighlightEnabled"/>. See also <see cref="Efl.Ui.Win.FocusHighlightAnimate"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The name of the focus highlight style.</value>
+    /// If <c>style</c> is <c>null</c>, the default will be used.
+    /// 
+    /// See also <see cref="Efl.Ui.Win.FocusHighlightEnabled"/>. See also <see cref="Efl.Ui.Win.FocusHighlightAnimate"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The name of the focus highlight style.</value>
     public System.String FocusHighlightStyle {
         get { return GetFocusHighlightStyle(); }
         set { SetFocusHighlightStyle(value); }
     }
     /// <summary>Whether focus highlight should animate or not.
-/// See also <see cref="Efl.Ui.Win.FocusHighlightStyle"/>. See also <see cref="Efl.Ui.Win.FocusHighlightEnabled"/>.
-/// (Since EFL 1.22)</summary>
-/// <value>The enabled value for the highlight animation.</value>
+    /// See also <see cref="Efl.Ui.Win.FocusHighlightStyle"/>. See also <see cref="Efl.Ui.Win.FocusHighlightEnabled"/>.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The enabled value for the highlight animation.</value>
     public bool FocusHighlightAnimate {
         get { return GetFocusHighlightAnimate(); }
         set { SetFocusHighlightAnimate(value); }
     }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>Get screen size (in pixels) for the screen.
-/// Note that on some display systems this information is not available and a value of 0x0 will be returned.
-/// (Since EFL 1.22)</summary>
-/// <value>The screen size in pixels.</value>
+    /// Note that on some display systems this information is not available and a value of 0x0 will be returned.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The screen size in pixels.</value>
     public Eina.Size2D ScreenSizeInPixels {
         get { return GetScreenSizeInPixels(); }
     }
     /// <summary>Get screen scaling factor.
-/// This is the factor by which window contents will be scaled on the screen.
-/// 
-/// Note that on some display systems this information is not available and a value of 1.0 will be returned.
-/// (Since EFL 1.22)</summary>
-/// <value>The screen scaling factor.</value>
+    /// This is the factor by which window contents will be scaled on the screen.
+    /// 
+    /// Note that on some display systems this information is not available and a value of 1.0 will be returned.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The screen scaling factor.</value>
     public float ScreenScaleFactor {
         get { return GetScreenScaleFactor(); }
     }
     /// <summary>Get the rotation of the screen.
-/// Most engines only return multiples of 90.
-/// (Since EFL 1.22)</summary>
-/// <value>Screen rotation in degrees.</value>
+    /// Most engines only return multiples of 90.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Screen rotation in degrees.</value>
     public int ScreenRotation {
         get { return GetScreenRotation(); }
     }
     /// <summary>Get if the canvas is currently calculating group objects.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if currently calculating group objects.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if currently calculating group objects.</value>
     public bool GroupObjectsCalculating {
         get { return GetGroupObjectsCalculating(); }
     }
     /// <summary>Get the default seat attached to this canvas.
-/// A canvas may have exactly one default seat.
-/// 
-/// See also <see cref="Efl.Canvas.IScene.GetDevice"/> to find a seat by name. See also <see cref="Efl.Canvas.IScene.GetSeat"/> to find a seat by id.
-/// (Since EFL 1.22)</summary>
-/// <value>The default seat or <c>null</c> if one does not exist.</value>
+    /// A canvas may have exactly one default seat.
+    /// 
+    /// See also <see cref="Efl.Canvas.IScene.GetDevice"/> to find a seat by name. See also <see cref="Efl.Canvas.IScene.GetSeat"/> to find a seat by id.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The default seat or <c>null</c> if one does not exist.</value>
     public Efl.Input.Device SeatDefault {
         get { return GetSeatDefault(); }
     }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
@@ -4757,7 +4692,7 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
             return Efl.Ui.Win.efl_ui_win_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate Efl.Ui.WinIndicatorMode efl_ui_win_indicator_mode_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -4770,13 +4705,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.WinIndicatorMode indicator_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_indicator_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.WinIndicatorMode _ret_var = default(Efl.Ui.WinIndicatorMode);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetIndicatorMode();
+                    _ret_var = ((Win)ws.Target).GetIndicatorMode();
                 }
                 catch (Exception e)
                 {
@@ -4806,13 +4741,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void indicator_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.WinIndicatorMode type)
         {
             Eina.Log.Debug("function efl_ui_win_indicator_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetIndicatorMode(type);
+                    ((Win)ws.Target).SetIndicatorMode(type);
                 }
                 catch (Exception e)
                 {
@@ -4841,13 +4776,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.WinKeyboardMode keyboard_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_keyboard_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.WinKeyboardMode _ret_var = default(Efl.Ui.WinKeyboardMode);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetKeyboardMode();
+                    _ret_var = ((Win)ws.Target).GetKeyboardMode();
                 }
                 catch (Exception e)
                 {
@@ -4877,13 +4812,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void keyboard_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.WinKeyboardMode mode)
         {
             Eina.Log.Debug("function efl_ui_win_keyboard_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetKeyboardMode(mode);
+                    ((Win)ws.Target).SetKeyboardMode(mode);
                 }
                 catch (Exception e)
                 {
@@ -4912,13 +4847,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool wm_available_rotations_get(System.IntPtr obj, System.IntPtr pd, out bool allow_0, out bool allow_90, out bool allow_180, out bool allow_270)
         {
             Eina.Log.Debug("function efl_ui_win_wm_available_rotations_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         allow_0 = default(bool);        allow_90 = default(bool);        allow_180 = default(bool);        allow_270 = default(bool);                                            bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetWmAvailableRotations(out allow_0, out allow_90, out allow_180, out allow_270);
+                    _ret_var = ((Win)ws.Target).GetWmAvailableRotations(out allow_0, out allow_90, out allow_180, out allow_270);
                 }
                 catch (Exception e)
                 {
@@ -4948,13 +4883,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void wm_available_rotations_set(System.IntPtr obj, System.IntPtr pd, bool allow_0, bool allow_90, bool allow_180, bool allow_270)
         {
             Eina.Log.Debug("function efl_ui_win_wm_available_rotations_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((Win)wrapper).SetWmAvailableRotations(allow_0, allow_90, allow_180, allow_270);
+                    ((Win)ws.Target).SetWmAvailableRotations(allow_0, allow_90, allow_180, allow_270);
                 }
                 catch (Exception e)
                 {
@@ -4983,13 +4918,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.IntPtr wm_available_profiles_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_wm_available_profiles_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Array<System.String> _ret_var = default(Eina.Array<System.String>);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetWmAvailableProfiles();
+                    _ret_var = ((Win)ws.Target).GetWmAvailableProfiles();
                 }
                 catch (Exception e)
                 {
@@ -5019,14 +4954,14 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void wm_available_profiles_set(System.IntPtr obj, System.IntPtr pd, System.IntPtr profiles)
         {
             Eina.Log.Debug("function efl_ui_win_wm_available_profiles_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_profiles = new Eina.Array<System.String>(profiles, false, false);
                             
                 try
                 {
-                    ((Win)wrapper).SetWmAvailableProfiles(_in_profiles);
+                    ((Win)ws.Target).SetWmAvailableProfiles(_in_profiles);
                 }
                 catch (Exception e)
                 {
@@ -5055,13 +4990,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool screen_constrain_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_screen_constrain_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetScreenConstrain();
+                    _ret_var = ((Win)ws.Target).GetScreenConstrain();
                 }
                 catch (Exception e)
                 {
@@ -5091,13 +5026,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void screen_constrain_set(System.IntPtr obj, System.IntPtr pd, bool constrain)
         {
             Eina.Log.Debug("function efl_ui_win_screen_constrain_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetScreenConstrain(constrain);
+                    ((Win)ws.Target).SetScreenConstrain(constrain);
                 }
                 catch (Exception e)
                 {
@@ -5126,13 +5061,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void prop_focus_skip_set(System.IntPtr obj, System.IntPtr pd, bool skip)
         {
             Eina.Log.Debug("function efl_ui_win_prop_focus_skip_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetPropFocusSkip(skip);
+                    ((Win)ws.Target).SetPropFocusSkip(skip);
                 }
                 catch (Exception e)
                 {
@@ -5161,13 +5096,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool autohide_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_autohide_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetAutohide();
+                    _ret_var = ((Win)ws.Target).GetAutohide();
                 }
                 catch (Exception e)
                 {
@@ -5197,13 +5132,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void autohide_set(System.IntPtr obj, System.IntPtr pd, bool autohide)
         {
             Eina.Log.Debug("function efl_ui_win_autohide_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetAutohide(autohide);
+                    ((Win)ws.Target).SetAutohide(autohide);
                 }
                 catch (Exception e)
                 {
@@ -5232,13 +5167,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Eina.Value exit_on_close_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_exit_on_close_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Value _ret_var = default(Eina.Value);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetExitOnClose();
+                    _ret_var = ((Win)ws.Target).GetExitOnClose();
                 }
                 catch (Exception e)
                 {
@@ -5268,13 +5203,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void exit_on_close_set(System.IntPtr obj, System.IntPtr pd, Eina.Value exit_code)
         {
             Eina.Log.Debug("function efl_ui_win_exit_on_close_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetExitOnClose(exit_code);
+                    ((Win)ws.Target).SetExitOnClose(exit_code);
                 }
                 catch (Exception e)
                 {
@@ -5303,13 +5238,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Canvas.Object icon_object_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_icon_object_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetIconObject();
+                    _ret_var = ((Win)ws.Target).GetIconObject();
                 }
                 catch (Exception e)
                 {
@@ -5339,13 +5274,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void icon_object_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object icon)
         {
             Eina.Log.Debug("function efl_ui_win_icon_object_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetIconObject(icon);
+                    ((Win)ws.Target).SetIconObject(icon);
                 }
                 catch (Exception e)
                 {
@@ -5374,13 +5309,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool minimized_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_minimized_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetMinimized();
+                    _ret_var = ((Win)ws.Target).GetMinimized();
                 }
                 catch (Exception e)
                 {
@@ -5410,13 +5345,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void minimized_set(System.IntPtr obj, System.IntPtr pd, bool state)
         {
             Eina.Log.Debug("function efl_ui_win_minimized_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetMinimized(state);
+                    ((Win)ws.Target).SetMinimized(state);
                 }
                 catch (Exception e)
                 {
@@ -5445,13 +5380,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool maximized_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_maximized_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetMaximized();
+                    _ret_var = ((Win)ws.Target).GetMaximized();
                 }
                 catch (Exception e)
                 {
@@ -5481,13 +5416,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void maximized_set(System.IntPtr obj, System.IntPtr pd, bool maximized)
         {
             Eina.Log.Debug("function efl_ui_win_maximized_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetMaximized(maximized);
+                    ((Win)ws.Target).SetMaximized(maximized);
                 }
                 catch (Exception e)
                 {
@@ -5516,13 +5451,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool fullscreen_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_fullscreen_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetFullscreen();
+                    _ret_var = ((Win)ws.Target).GetFullscreen();
                 }
                 catch (Exception e)
                 {
@@ -5552,13 +5487,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void fullscreen_set(System.IntPtr obj, System.IntPtr pd, bool fullscreen)
         {
             Eina.Log.Debug("function efl_ui_win_fullscreen_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetFullscreen(fullscreen);
+                    ((Win)ws.Target).SetFullscreen(fullscreen);
                 }
                 catch (Exception e)
                 {
@@ -5587,13 +5522,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool sticky_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_sticky_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetSticky();
+                    _ret_var = ((Win)ws.Target).GetSticky();
                 }
                 catch (Exception e)
                 {
@@ -5623,13 +5558,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void sticky_set(System.IntPtr obj, System.IntPtr pd, bool sticky)
         {
             Eina.Log.Debug("function efl_ui_win_sticky_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetSticky(sticky);
+                    ((Win)ws.Target).SetSticky(sticky);
                 }
                 catch (Exception e)
                 {
@@ -5658,13 +5593,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.WinUrgentMode urgent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_urgent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.WinUrgentMode _ret_var = default(Efl.Ui.WinUrgentMode);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetUrgent();
+                    _ret_var = ((Win)ws.Target).GetUrgent();
                 }
                 catch (Exception e)
                 {
@@ -5694,13 +5629,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void urgent_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.WinUrgentMode urgent)
         {
             Eina.Log.Debug("function efl_ui_win_urgent_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetUrgent(urgent);
+                    ((Win)ws.Target).SetUrgent(urgent);
                 }
                 catch (Exception e)
                 {
@@ -5729,13 +5664,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.WinModalMode modal_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_modal_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.WinModalMode _ret_var = default(Efl.Ui.WinModalMode);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetModal();
+                    _ret_var = ((Win)ws.Target).GetModal();
                 }
                 catch (Exception e)
                 {
@@ -5765,13 +5700,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void modal_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.WinModalMode modal)
         {
             Eina.Log.Debug("function efl_ui_win_modal_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetModal(modal);
+                    ((Win)ws.Target).SetModal(modal);
                 }
                 catch (Exception e)
                 {
@@ -5800,13 +5735,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool borderless_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_borderless_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetBorderless();
+                    _ret_var = ((Win)ws.Target).GetBorderless();
                 }
                 catch (Exception e)
                 {
@@ -5836,13 +5771,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void borderless_set(System.IntPtr obj, System.IntPtr pd, bool borderless)
         {
             Eina.Log.Debug("function efl_ui_win_borderless_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetBorderless(borderless);
+                    ((Win)ws.Target).SetBorderless(borderless);
                 }
                 catch (Exception e)
                 {
@@ -5871,13 +5806,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.String win_role_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_role_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetWinRole();
+                    _ret_var = ((Win)ws.Target).GetWinRole();
                 }
                 catch (Exception e)
                 {
@@ -5907,13 +5842,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void win_role_set(System.IntPtr obj, System.IntPtr pd, System.String role)
         {
             Eina.Log.Debug("function efl_ui_win_role_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetWinRole(role);
+                    ((Win)ws.Target).SetWinRole(role);
                 }
                 catch (Exception e)
                 {
@@ -5942,13 +5877,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.String win_name_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_name_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetWinName();
+                    _ret_var = ((Win)ws.Target).GetWinName();
                 }
                 catch (Exception e)
                 {
@@ -5978,13 +5913,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void win_name_set(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_ui_win_name_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetWinName(name);
+                    ((Win)ws.Target).SetWinName(name);
                 }
                 catch (Exception e)
                 {
@@ -6013,13 +5948,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.WinType win_type_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_type_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.WinType _ret_var = default(Efl.Ui.WinType);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetWinType();
+                    _ret_var = ((Win)ws.Target).GetWinType();
                 }
                 catch (Exception e)
                 {
@@ -6049,13 +5984,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void win_type_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.WinType type)
         {
             Eina.Log.Debug("function efl_ui_win_type_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetWinType(type);
+                    ((Win)ws.Target).SetWinType(type);
                 }
                 catch (Exception e)
                 {
@@ -6084,13 +6019,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.String accel_preference_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_accel_preference_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetAccelPreference();
+                    _ret_var = ((Win)ws.Target).GetAccelPreference();
                 }
                 catch (Exception e)
                 {
@@ -6120,13 +6055,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void accel_preference_set(System.IntPtr obj, System.IntPtr pd, System.String accel)
         {
             Eina.Log.Debug("function efl_ui_win_accel_preference_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetAccelPreference(accel);
+                    ((Win)ws.Target).SetAccelPreference(accel);
                 }
                 catch (Exception e)
                 {
@@ -6155,13 +6090,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool alpha_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_alpha_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetAlpha();
+                    _ret_var = ((Win)ws.Target).GetAlpha();
                 }
                 catch (Exception e)
                 {
@@ -6191,13 +6126,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void alpha_set(System.IntPtr obj, System.IntPtr pd, bool alpha)
         {
             Eina.Log.Debug("function efl_ui_win_alpha_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetAlpha(alpha);
+                    ((Win)ws.Target).SetAlpha(alpha);
                 }
                 catch (Exception e)
                 {
@@ -6226,13 +6161,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.String stack_id_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_stack_id_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetStackId();
+                    _ret_var = ((Win)ws.Target).GetStackId();
                 }
                 catch (Exception e)
                 {
@@ -6262,13 +6197,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.String stack_master_id_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_stack_master_id_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetStackMasterId();
+                    _ret_var = ((Win)ws.Target).GetStackMasterId();
                 }
                 catch (Exception e)
                 {
@@ -6298,13 +6233,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void stack_master_id_set(System.IntPtr obj, System.IntPtr pd, System.String id)
         {
             Eina.Log.Debug("function efl_ui_win_stack_master_id_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetStackMasterId(id);
+                    ((Win)ws.Target).SetStackMasterId(id);
                 }
                 catch (Exception e)
                 {
@@ -6333,13 +6268,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool stack_base_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_stack_base_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetStackBase();
+                    _ret_var = ((Win)ws.Target).GetStackBase();
                 }
                 catch (Exception e)
                 {
@@ -6369,13 +6304,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void stack_base_set(System.IntPtr obj, System.IntPtr pd, bool kw_base)
         {
             Eina.Log.Debug("function efl_ui_win_stack_base_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetStackBase(kw_base);
+                    ((Win)ws.Target).SetStackBase(kw_base);
                 }
                 catch (Exception e)
                 {
@@ -6404,8 +6339,8 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Eina.Value exit_on_all_windows_closed_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_exit_on_all_windows_closed_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Value _ret_var = default(Eina.Value);
                 try
@@ -6438,8 +6373,8 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void exit_on_all_windows_closed_set(System.IntPtr obj, System.IntPtr pd, Eina.Value exit_code)
         {
             Eina.Log.Debug("function efl_ui_win_exit_on_all_windows_closed_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
@@ -6471,13 +6406,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Eina.Size2D.NativeStruct hint_base_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_hint_base_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetHintBase();
+                    _ret_var = ((Win)ws.Target).GetHintBase();
                 }
                 catch (Exception e)
                 {
@@ -6507,14 +6442,14 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void hint_base_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_ui_win_hint_base_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_sz = sz;
                             
                 try
                 {
-                    ((Win)wrapper).SetHintBase(_in_sz);
+                    ((Win)ws.Target).SetHintBase(_in_sz);
                 }
                 catch (Exception e)
                 {
@@ -6543,13 +6478,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Eina.Size2D.NativeStruct hint_step_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_hint_step_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetHintStep();
+                    _ret_var = ((Win)ws.Target).GetHintStep();
                 }
                 catch (Exception e)
                 {
@@ -6579,14 +6514,14 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void hint_step_set(System.IntPtr obj, System.IntPtr pd, Eina.Size2D.NativeStruct sz)
         {
             Eina.Log.Debug("function efl_ui_win_hint_step_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Size2D _in_sz = sz;
                             
                 try
                 {
-                    ((Win)wrapper).SetHintStep(_in_sz);
+                    ((Win)ws.Target).SetHintStep(_in_sz);
                 }
                 catch (Exception e)
                 {
@@ -6615,13 +6550,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static int win_rotation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_rotation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetWinRotation();
+                    _ret_var = ((Win)ws.Target).GetWinRotation();
                 }
                 catch (Exception e)
                 {
@@ -6651,13 +6586,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void win_rotation_set(System.IntPtr obj, System.IntPtr pd, int rotation)
         {
             Eina.Log.Debug("function efl_ui_win_rotation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetWinRotation(rotation);
+                    ((Win)ws.Target).SetWinRotation(rotation);
                 }
                 catch (Exception e)
                 {
@@ -6686,13 +6621,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool focus_highlight_enabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_focus_highlight_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetFocusHighlightEnabled();
+                    _ret_var = ((Win)ws.Target).GetFocusHighlightEnabled();
                 }
                 catch (Exception e)
                 {
@@ -6722,13 +6657,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void focus_highlight_enabled_set(System.IntPtr obj, System.IntPtr pd, bool enabled)
         {
             Eina.Log.Debug("function efl_ui_win_focus_highlight_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetFocusHighlightEnabled(enabled);
+                    ((Win)ws.Target).SetFocusHighlightEnabled(enabled);
                 }
                 catch (Exception e)
                 {
@@ -6757,13 +6692,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.String focus_highlight_style_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_focus_highlight_style_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetFocusHighlightStyle();
+                    _ret_var = ((Win)ws.Target).GetFocusHighlightStyle();
                 }
                 catch (Exception e)
                 {
@@ -6793,13 +6728,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool focus_highlight_style_set(System.IntPtr obj, System.IntPtr pd, System.String style)
         {
             Eina.Log.Debug("function efl_ui_win_focus_highlight_style_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).SetFocusHighlightStyle(style);
+                    _ret_var = ((Win)ws.Target).SetFocusHighlightStyle(style);
                 }
                 catch (Exception e)
                 {
@@ -6829,13 +6764,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool focus_highlight_animate_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_focus_highlight_animate_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetFocusHighlightAnimate();
+                    _ret_var = ((Win)ws.Target).GetFocusHighlightAnimate();
                 }
                 catch (Exception e)
                 {
@@ -6865,13 +6800,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void focus_highlight_animate_set(System.IntPtr obj, System.IntPtr pd, bool animate)
         {
             Eina.Log.Debug("function efl_ui_win_focus_highlight_animate_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetFocusHighlightAnimate(animate);
+                    ((Win)ws.Target).SetFocusHighlightAnimate(animate);
                 }
                 catch (Exception e)
                 {
@@ -6900,13 +6835,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void stack_pop_to(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_stack_pop_to was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Win)wrapper).StackPopTo();
+                    ((Win)ws.Target).StackPopTo();
                 }
                 catch (Exception e)
                 {
@@ -6935,13 +6870,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void activate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_activate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Win)wrapper).Activate();
+                    ((Win)ws.Target).Activate();
                 }
                 catch (Exception e)
                 {
@@ -6970,13 +6905,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void center(System.IntPtr obj, System.IntPtr pd, bool h, bool v)
         {
             Eina.Log.Debug("function efl_ui_win_center was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Win)wrapper).Center(h, v);
+                    ((Win)ws.Target).Center(h, v);
                 }
                 catch (Exception e)
                 {
@@ -7005,13 +6940,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool move_resize_start(System.IntPtr obj, System.IntPtr pd, Efl.Ui.WinMoveResizeMode mode)
         {
             Eina.Log.Debug("function efl_ui_win_move_resize_start was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).MoveResizeStart(mode);
+                    _ret_var = ((Win)ws.Target).MoveResizeStart(mode);
                 }
                 catch (Exception e)
                 {
@@ -7041,13 +6976,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.IntPtr pointer_iterate(System.IntPtr obj, System.IntPtr pd, bool hover)
         {
             Eina.Log.Debug("function efl_ui_win_pointer_iterate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Iterator<Efl.Input.Pointer> _ret_var = default(Eina.Iterator<Efl.Input.Pointer>);
                 try
                 {
-                    _ret_var = ((Win)wrapper).PointerIterate(hover);
+                    _ret_var = ((Win)ws.Target).PointerIterate(hover);
                 }
                 catch (Exception e)
                 {
@@ -7077,13 +7012,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Eina.Value config_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_config_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Value _ret_var = default(Eina.Value);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetConfig(name);
+                    _ret_var = ((Win)ws.Target).GetConfig(name);
                 }
                 catch (Exception e)
                 {
@@ -7113,13 +7048,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool config_set(System.IntPtr obj, System.IntPtr pd, System.String name, Eina.Value value)
         {
             Eina.Log.Debug("function efl_config_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).SetConfig(name, value);
+                    _ret_var = ((Win)ws.Target).SetConfig(name, value);
                 }
                 catch (Exception e)
                 {
@@ -7149,13 +7084,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetContent();
+                    _ret_var = ((Win)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -7185,13 +7120,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).SetContent(content);
+                    _ret_var = ((Win)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -7221,13 +7156,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Win)wrapper).UnsetContent();
+                    _ret_var = ((Win)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -7257,13 +7192,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Eina.Size2D.NativeStruct screen_size_in_pixels_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_screen_size_in_pixels_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Size2D _ret_var = default(Eina.Size2D);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetScreenSizeInPixels();
+                    _ret_var = ((Win)ws.Target).GetScreenSizeInPixels();
                 }
                 catch (Exception e)
                 {
@@ -7293,13 +7228,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static float screen_scale_factor_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_screen_scale_factor_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             float _ret_var = default(float);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetScreenScaleFactor();
+                    _ret_var = ((Win)ws.Target).GetScreenScaleFactor();
                 }
                 catch (Exception e)
                 {
@@ -7329,13 +7264,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static int screen_rotation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_screen_rotation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             int _ret_var = default(int);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetScreenRotation();
+                    _ret_var = ((Win)ws.Target).GetScreenRotation();
                 }
                 catch (Exception e)
                 {
@@ -7365,13 +7300,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void screen_dpi_get(System.IntPtr obj, System.IntPtr pd, out int xdpi, out int ydpi)
         {
             Eina.Log.Debug("function efl_screen_dpi_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         xdpi = default(int);        ydpi = default(int);                            
                 try
                 {
-                    ((Win)wrapper).GetScreenDpi(out xdpi, out ydpi);
+                    ((Win)ws.Target).GetScreenDpi(out xdpi, out ydpi);
                 }
                 catch (Exception e)
                 {
@@ -7400,13 +7335,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.String text_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_text_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetText();
+                    _ret_var = ((Win)ws.Target).GetText();
                 }
                 catch (Exception e)
                 {
@@ -7436,13 +7371,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void text_set(System.IntPtr obj, System.IntPtr pd, System.String text)
         {
             Eina.Log.Debug("function efl_text_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetText(text);
+                    ((Win)ws.Target).SetText(text);
                 }
                 catch (Exception e)
                 {
@@ -7471,14 +7406,14 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool image_max_size_get(System.IntPtr obj, System.IntPtr pd, out Eina.Size2D.NativeStruct max)
         {
             Eina.Log.Debug("function efl_canvas_scene_image_max_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                 Eina.Size2D _out_max = default(Eina.Size2D);
                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetImageMaxSize(out _out_max);
+                    _ret_var = ((Win)ws.Target).GetImageMaxSize(out _out_max);
                 }
                 catch (Exception e)
                 {
@@ -7509,13 +7444,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool group_objects_calculating_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_scene_group_objects_calculating_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetGroupObjectsCalculating();
+                    _ret_var = ((Win)ws.Target).GetGroupObjectsCalculating();
                 }
                 catch (Exception e)
                 {
@@ -7545,13 +7480,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Input.Device device_get(System.IntPtr obj, System.IntPtr pd, System.String name)
         {
             Eina.Log.Debug("function efl_canvas_scene_device_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetDevice(name);
+                    _ret_var = ((Win)ws.Target).GetDevice(name);
                 }
                 catch (Exception e)
                 {
@@ -7581,13 +7516,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Input.Device seat_get(System.IntPtr obj, System.IntPtr pd, int id)
         {
             Eina.Log.Debug("function efl_canvas_scene_seat_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetSeat(id);
+                    _ret_var = ((Win)ws.Target).GetSeat(id);
                 }
                 catch (Exception e)
                 {
@@ -7617,13 +7552,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Input.Device seat_default_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_scene_seat_default_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Input.Device _ret_var = default(Efl.Input.Device);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetSeatDefault();
+                    _ret_var = ((Win)ws.Target).GetSeatDefault();
                 }
                 catch (Exception e)
                 {
@@ -7653,14 +7588,14 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool pointer_position_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat, out Eina.Position2D.NativeStruct pos)
         {
             Eina.Log.Debug("function efl_canvas_scene_pointer_position_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 Eina.Position2D _out_pos = default(Eina.Position2D);
                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetPointerPosition(seat, out _out_pos);
+                    _ret_var = ((Win)ws.Target).GetPointerPosition(seat, out _out_pos);
                 }
                 catch (Exception e)
                 {
@@ -7691,13 +7626,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void group_objects_calculate(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_scene_group_objects_calculate was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Win)wrapper).CalculateGroupObjects();
+                    ((Win)ws.Target).CalculateGroupObjects();
                 }
                 catch (Exception e)
                 {
@@ -7726,14 +7661,14 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.IntPtr objects_at_xy_get(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos, bool include_pass_events_objects, bool include_hidden_objects)
         {
             Eina.Log.Debug("function efl_canvas_scene_objects_at_xy_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                                                                             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetObjectsAtXy(_in_pos, include_pass_events_objects, include_hidden_objects);
+                    _ret_var = ((Win)ws.Target).GetObjectsAtXy(_in_pos, include_pass_events_objects, include_hidden_objects);
                 }
                 catch (Exception e)
                 {
@@ -7763,14 +7698,14 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Gfx.IEntity object_top_at_xy_get(System.IntPtr obj, System.IntPtr pd, Eina.Position2D.NativeStruct pos, bool include_pass_events_objects, bool include_hidden_objects)
         {
             Eina.Log.Debug("function efl_canvas_scene_object_top_at_xy_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Position2D _in_pos = pos;
                                                                             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetObjectTopAtXy(_in_pos, include_pass_events_objects, include_hidden_objects);
+                    _ret_var = ((Win)ws.Target).GetObjectTopAtXy(_in_pos, include_pass_events_objects, include_hidden_objects);
                 }
                 catch (Exception e)
                 {
@@ -7800,14 +7735,14 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.IntPtr objects_in_rectangle_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool include_pass_events_objects, bool include_hidden_objects)
         {
             Eina.Log.Debug("function efl_canvas_scene_objects_in_rectangle_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                                             Eina.Iterator<Efl.Gfx.IEntity> _ret_var = default(Eina.Iterator<Efl.Gfx.IEntity>);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetObjectsInRectangle(_in_rect, include_pass_events_objects, include_hidden_objects);
+                    _ret_var = ((Win)ws.Target).GetObjectsInRectangle(_in_rect, include_pass_events_objects, include_hidden_objects);
                 }
                 catch (Exception e)
                 {
@@ -7837,14 +7772,14 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Gfx.IEntity object_top_in_rectangle_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct rect, bool include_pass_events_objects, bool include_hidden_objects)
         {
             Eina.Log.Debug("function efl_canvas_scene_object_top_in_rectangle_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_rect = rect;
                                                                             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetObjectTopInRectangle(_in_rect, include_pass_events_objects, include_hidden_objects);
+                    _ret_var = ((Win)ws.Target).GetObjectTopInRectangle(_in_rect, include_pass_events_objects, include_hidden_objects);
                 }
                 catch (Exception e)
                 {
@@ -7874,13 +7809,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.IntPtr seats(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_canvas_scene_seats was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Input.Device> _ret_var = default(Eina.Iterator<Efl.Input.Device>);
                 try
                 {
-                    _ret_var = ((Win)wrapper).Seats();
+                    _ret_var = ((Win)ws.Target).Seats();
                 }
                 catch (Exception e)
                 {
@@ -7910,13 +7845,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool modifier_enabled_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Modifier mod, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_input_modifier_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetModifierEnabled(mod, seat);
+                    _ret_var = ((Win)ws.Target).GetModifierEnabled(mod, seat);
                 }
                 catch (Exception e)
                 {
@@ -7946,13 +7881,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool lock_enabled_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Lock kw_lock, Efl.Input.Device seat)
         {
             Eina.Log.Debug("function efl_input_lock_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetLockEnabled(kw_lock, seat);
+                    _ret_var = ((Win)ws.Target).GetLockEnabled(kw_lock, seat);
                 }
                 catch (Exception e)
                 {
@@ -7982,13 +7917,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.Focus.IManager focus_manager_create(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_manager_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((Win)wrapper).FocusManagerCreate(root);
+                    _ret_var = ((Win)ws.Target).FocusManagerCreate(root);
                 }
                 catch (Exception e)
                 {
@@ -8018,13 +7953,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetManagerFocus();
+                    _ret_var = ((Win)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -8054,13 +7989,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetManagerFocus(focus);
+                    ((Win)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -8089,13 +8024,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetRedirect();
+                    _ret_var = ((Win)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -8125,13 +8060,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((Win)wrapper).SetRedirect(redirect);
+                    ((Win)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -8160,13 +8095,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetBorderElements();
+                    _ret_var = ((Win)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -8196,14 +8131,14 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((Win)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -8233,13 +8168,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Win)wrapper).GetRoot();
+                    _ret_var = ((Win)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -8269,13 +8204,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((Win)wrapper).SetRoot(root);
+                    _ret_var = ((Win)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -8305,13 +8240,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Win)wrapper).Move(direction);
+                    _ret_var = ((Win)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -8341,13 +8276,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Win)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((Win)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -8377,13 +8312,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((Win)wrapper).RequestSubchild(root);
+                    _ret_var = ((Win)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -8413,13 +8348,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((Win)wrapper).Fetch(child);
+                    _ret_var = ((Win)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -8449,13 +8384,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((Win)wrapper).LogicalEnd();
+                    _ret_var = ((Win)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -8485,13 +8420,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Win)wrapper).ResetHistory();
+                    ((Win)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -8520,13 +8455,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Win)wrapper).PopHistoryStack();
+                    ((Win)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -8555,13 +8490,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((Win)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((Win)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -8590,13 +8525,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Win)wrapper).FreezeDirtyLogic();
+                    ((Win)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -8625,13 +8560,13 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((Win)wrapper).DirtyLogicUnfreeze();
+                    ((Win)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -8649,7 +8584,7 @@ public class Win : Efl.Ui.Widget, Efl.Eo.IWrapper,Efl.IConfig,Efl.IContent,Efl.I
 
         private static efl_ui_focus_manager_dirty_logic_unfreeze_delegate efl_ui_focus_manager_dirty_logic_unfreeze_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 249f89c..9e0a4ef 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>An inlined window.
 /// The window is rendered onto an image buffer. No actual window is created, instead the window and all of its contents will be rendered to an image buffer. This allows child windows inside a parent just like any other object.  You can also do other things like apply map effects. This window must have a valid <see cref="Efl.Canvas.Object"/> parent.</summary>
 [Efl.Ui.WinInlined.NativeMethods]
-public class WinInlined : Efl.Ui.Win, Efl.Eo.IWrapper
+public class WinInlined : Efl.Ui.Win
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -69,7 +69,7 @@ public class WinInlined : Efl.Ui.Win, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected WinInlined(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="WinInlined"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -80,33 +80,6 @@ public class WinInlined : Efl.Ui.Win, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>This property holds the parent object in the parent canvas.</summary>
     /// <returns>An object in the parent canvas.</returns>
     virtual public Efl.Canvas.Object GetInlinedParent() {
@@ -115,7 +88,7 @@ public class WinInlined : Efl.Ui.Win, Efl.Eo.IWrapper
         return _ret_var;
  }
     /// <summary>This property holds the parent object in the parent canvas.</summary>
-/// <value>An object in the parent canvas.</value>
+    /// <value>An object in the parent canvas.</value>
     public Efl.Canvas.Object InlinedParent {
         get { return GetInlinedParent(); }
     }
@@ -155,7 +128,7 @@ public class WinInlined : Efl.Ui.Win, Efl.Eo.IWrapper
             return Efl.Ui.WinInlined.efl_ui_win_inlined_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Canvas.Object efl_ui_win_inlined_parent_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -168,13 +141,13 @@ public class WinInlined : Efl.Ui.Win, Efl.Eo.IWrapper
         private static Efl.Canvas.Object inlined_parent_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_win_inlined_parent_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Canvas.Object _ret_var = default(Efl.Canvas.Object);
                 try
                 {
-                    _ret_var = ((WinInlined)wrapper).GetInlinedParent();
+                    _ret_var = ((WinInlined)ws.Target).GetInlinedParent();
                 }
                 catch (Exception e)
                 {
@@ -193,7 +166,7 @@ public class WinInlined : Efl.Ui.Win, Efl.Eo.IWrapper
 
         private static efl_ui_win_inlined_parent_get_delegate efl_ui_win_inlined_parent_get_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 635b1e8..90ed1cf 100644 (file)
@@ -11,7 +11,7 @@ namespace Ui {
 
 /// <summary>Efl UI window interal part class</summary>
 [Efl.Ui.WinPart.NativeMethods]
-public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile,Efl.Gfx.IColor
+public class WinPart : Efl.Ui.WidgetPart, Efl.IContent, Efl.IFile, Efl.Gfx.IColor
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -44,7 +44,7 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected WinPart(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="WinPart"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -55,33 +55,6 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Sent after the content is set or unset using the current content object.
     /// (Since EFL 1.22)</summary>
     public event EventHandler<Efl.IContentContentChangedEvt_Args> ContentChangedEvt
@@ -90,13 +63,12 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
+                        Efl.IContentContentChangedEvt_Args args = new Efl.IContentContentChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Gfx.IEntityConcrete);
                         try
                         {
@@ -287,47 +259,47 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>Sub-object currently set as this object&apos;s single content.
-/// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
-/// (Since EFL 1.22)</summary>
-/// <value>The sub-object.</value>
+    /// If it is set multiple times, previous sub-objects are removed first. Therefore, if an invalid <c>content</c> is set the object will become empty (it will have no sub-object).
+    /// (Since EFL 1.22)</summary>
+    /// <value>The sub-object.</value>
     public Efl.Gfx.IEntity Content {
         get { return GetContent(); }
         set { SetContent(value); }
     }
     /// <summary>Get the mmaped file from where an object will fetch the real data (it must be an <see cref="Eina.File"/>).
-/// (Since EFL 1.22)</summary>
-/// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>The handle to the <see cref="Eina.File"/> that will be used</value>
     public Eina.File Mmap {
         get { return GetMmap(); }
         set { SetMmap(value); }
     }
     /// <summary>Retrieve the file path from where an object is to fetch the data.
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The file path.</value>
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The file path.</value>
     public System.String File {
         get { return GetFile(); }
         set { SetFile(value); }
     }
     /// <summary>Get the previously-set key which corresponds to the target data within a file.
-/// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
-/// 
-/// You must not modify the strings on the returned pointers.
-/// (Since EFL 1.22)</summary>
-/// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
+    /// Some filetypes can contain multiple data streams which are indexed by a key. Use this property for such cases (See for example <see cref="Efl.Ui.Image"/> or <see cref="Efl.Ui.Layout"/>).
+    /// 
+    /// You must not modify the strings on the returned pointers.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The group that the data belongs to. See the class documentation for particular implementations of this interface to see how this property is used.</value>
     public System.String Key {
         get { return GetKey(); }
         set { SetKey(value); }
     }
     /// <summary>Get the load state of the object.
-/// (Since EFL 1.22)</summary>
-/// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value><c>true</c> if the object is loaded, <c>false</c> otherwise.</value>
     public bool Loaded {
         get { return GetLoaded(); }
     }
     /// <summary>Get hex color code of given Evas object. This returns a short lived hex color code string.
-/// (Since EFL 1.22)</summary>
-/// <value>the hex color code.</value>
+    /// (Since EFL 1.22)</summary>
+    /// <value>the hex color code.</value>
     public System.String ColorCode {
         get { return GetColorCode(); }
         set { SetColorCode(value); }
@@ -518,7 +490,7 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
             return Efl.Ui.WinPart.efl_ui_win_part_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return:MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))]
         private delegate Efl.Gfx.IEntity efl_content_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -531,13 +503,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static Efl.Gfx.IEntity content_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).GetContent();
+                    _ret_var = ((WinPart)ws.Target).GetContent();
                 }
                 catch (Exception e)
                 {
@@ -567,13 +539,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static bool content_set(System.IntPtr obj, System.IntPtr pd, Efl.Gfx.IEntity content)
         {
             Eina.Log.Debug("function efl_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).SetContent(content);
+                    _ret_var = ((WinPart)ws.Target).SetContent(content);
                 }
                 catch (Exception e)
                 {
@@ -603,13 +575,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static Efl.Gfx.IEntity content_unset(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_content_unset was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Gfx.IEntity _ret_var = default(Efl.Gfx.IEntity);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).UnsetContent();
+                    _ret_var = ((WinPart)ws.Target).UnsetContent();
                 }
                 catch (Exception e)
                 {
@@ -639,13 +611,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static Eina.File mmap_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_mmap_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.File _ret_var = default(Eina.File);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).GetMmap();
+                    _ret_var = ((WinPart)ws.Target).GetMmap();
                 }
                 catch (Exception e)
                 {
@@ -675,13 +647,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static Eina.Error mmap_set(System.IntPtr obj, System.IntPtr pd, Eina.File f)
         {
             Eina.Log.Debug("function efl_file_mmap_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).SetMmap(f);
+                    _ret_var = ((WinPart)ws.Target).SetMmap(f);
                 }
                 catch (Exception e)
                 {
@@ -711,13 +683,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static System.String file_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).GetFile();
+                    _ret_var = ((WinPart)ws.Target).GetFile();
                 }
                 catch (Exception e)
                 {
@@ -747,13 +719,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static Eina.Error file_set(System.IntPtr obj, System.IntPtr pd, System.String file)
         {
             Eina.Log.Debug("function efl_file_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).SetFile(file);
+                    _ret_var = ((WinPart)ws.Target).SetFile(file);
                 }
                 catch (Exception e)
                 {
@@ -783,13 +755,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static System.String key_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_key_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).GetKey();
+                    _ret_var = ((WinPart)ws.Target).GetKey();
                 }
                 catch (Exception e)
                 {
@@ -819,13 +791,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static void key_set(System.IntPtr obj, System.IntPtr pd, System.String key)
         {
             Eina.Log.Debug("function efl_file_key_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WinPart)wrapper).SetKey(key);
+                    ((WinPart)ws.Target).SetKey(key);
                 }
                 catch (Exception e)
                 {
@@ -854,13 +826,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static bool loaded_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_loaded_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).GetLoaded();
+                    _ret_var = ((WinPart)ws.Target).GetLoaded();
                 }
                 catch (Exception e)
                 {
@@ -890,13 +862,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static Eina.Error load(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_load was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).Load();
+                    _ret_var = ((WinPart)ws.Target).Load();
                 }
                 catch (Exception e)
                 {
@@ -926,13 +898,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static void unload(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_file_unload was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((WinPart)wrapper).Unload();
+                    ((WinPart)ws.Target).Unload();
                 }
                 catch (Exception e)
                 {
@@ -961,13 +933,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static void color_get(System.IntPtr obj, System.IntPtr pd, out int r, out int g, out int b, out int a)
         {
             Eina.Log.Debug("function efl_gfx_color_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         r = default(int);        g = default(int);        b = default(int);        a = default(int);                                            
                 try
                 {
-                    ((WinPart)wrapper).GetColor(out r, out g, out b, out a);
+                    ((WinPart)ws.Target).GetColor(out r, out g, out b, out a);
                 }
                 catch (Exception e)
                 {
@@ -996,13 +968,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static void color_set(System.IntPtr obj, System.IntPtr pd, int r, int g, int b, int a)
         {
             Eina.Log.Debug("function efl_gfx_color_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((WinPart)wrapper).SetColor(r, g, b, a);
+                    ((WinPart)ws.Target).SetColor(r, g, b, a);
                 }
                 catch (Exception e)
                 {
@@ -1031,13 +1003,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static System.String color_code_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_gfx_color_code_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             System.String _ret_var = default(System.String);
                 try
                 {
-                    _ret_var = ((WinPart)wrapper).GetColorCode();
+                    _ret_var = ((WinPart)ws.Target).GetColorCode();
                 }
                 catch (Exception e)
                 {
@@ -1067,13 +1039,13 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
         private static void color_code_set(System.IntPtr obj, System.IntPtr pd, System.String colorcode)
         {
             Eina.Log.Debug("function efl_gfx_color_code_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((WinPart)wrapper).SetColorCode(colorcode);
+                    ((WinPart)ws.Target).SetColorCode(colorcode);
                 }
                 catch (Exception e)
                 {
@@ -1091,7 +1063,7 @@ public class WinPart : Efl.Ui.WidgetPart, Efl.Eo.IWrapper,Efl.IContent,Efl.IFile
 
         private static efl_gfx_color_code_set_delegate efl_gfx_color_code_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 7e54d46..7aedf9d 100644 (file)
@@ -12,7 +12,7 @@ namespace Ui {
 /// <summary>An off-screen window to be displayed in a remote process.
 /// The window is rendered onto an image buffer to be displayed in another process&apos; plug image object. No actual window is created for this type. The window contents can then be sent over a socket so that another process displays it inside a plug image.</summary>
 [Efl.Ui.WinSocket.NativeMethods]
-public class WinSocket : Efl.Ui.Win, Efl.Eo.IWrapper
+public class WinSocket : Efl.Ui.Win
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -69,7 +69,7 @@ public class WinSocket : Efl.Ui.Win, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected WinSocket(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="WinSocket"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -80,33 +80,6 @@ public class WinSocket : Efl.Ui.Win, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Create a socket to provide the service for Plug widget.</summary>
     /// <param name="svcname">The name of the service to be advertised. Ensure that it is unique (when combined with <c>svcnum</c>) otherwise creation may fail.</param>
     /// <param name="svcnum">A number (any value, 0 being the common default) to differentiate multiple instances of services with the same name.</param>
@@ -153,7 +126,7 @@ public class WinSocket : Efl.Ui.Win, Efl.Eo.IWrapper
             return Efl.Ui.WinSocket.efl_ui_win_socket_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_win_socket_listen_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String svcname,  int svcnum, [MarshalAs(UnmanagedType.U1)] bool svcsys);
@@ -166,13 +139,13 @@ public class WinSocket : Efl.Ui.Win, Efl.Eo.IWrapper
         private static bool socket_listen(System.IntPtr obj, System.IntPtr pd, System.String svcname, int svcnum, bool svcsys)
         {
             Eina.Log.Debug("function efl_ui_win_socket_listen was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((WinSocket)wrapper).SocketListen(svcname, svcnum, svcsys);
+                    _ret_var = ((WinSocket)ws.Target).SocketListen(svcname, svcnum, svcsys);
                 }
                 catch (Exception e)
                 {
@@ -191,7 +164,7 @@ public class WinSocket : Efl.Ui.Win, Efl.Eo.IWrapper
 
         private static efl_ui_win_socket_listen_delegate efl_ui_win_socket_listen_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 504ec19..9455b41 100644 (file)
@@ -45,34 +45,34 @@ void SetZoomMode(Efl.Ui.ZoomMode mode);
     /// <summary>Called when zooming changed</summary>
     event EventHandler ZoomChangeEvt;
     /// <summary>This sets the zoom animation state to on or off for zoomable. The default is off. When <c>paused</c> is <c>true</c>, it will stop zooming using animation on zoom level changes and change instantly, stopping any existing animations that are running.</summary>
-/// <value>The paused state.</value>
+    /// <value>The paused state.</value>
     bool ZoomAnimation {
         get ;
         set ;
     }
     /// <summary>Get the zoom level of the photo
-/// This returns the current zoom level of the zoomable object. Note that if you set the fill mode to other than #EFL_UI_ZOOM_MODE_MANUAL (which is the default), the zoom level may be changed at any time by the  zoomable object itself to account for photo size and zoomable viewport size.</summary>
-/// <value>The zoom level to set</value>
+    /// This returns the current zoom level of the zoomable object. Note that if you set the fill mode to other than #EFL_UI_ZOOM_MODE_MANUAL (which is the default), the zoom level may be changed at any time by the  zoomable object itself to account for photo size and zoomable viewport size.</summary>
+    /// <value>The zoom level to set</value>
     double ZoomLevel {
         get ;
         set ;
     }
     /// <summary>Get the zoom mode
-/// This gets the current zoom mode of the zoomable object.</summary>
-/// <value>The zoom mode.</value>
+    /// This gets the current zoom mode of the zoomable object.</summary>
+    /// <value>The zoom mode.</value>
     Efl.Ui.ZoomMode ZoomMode {
         get ;
         set ;
     }
 }
 /// <summary>Efl UI zoom interface</summary>
-sealed public class IZoomConcrete : 
-
-IZoom
+sealed public class IZoomConcrete :
+    Efl.Eo.EoWrapper
+    , IZoom
     
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -87,155 +87,12 @@ IZoom
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr
         efl_ui_zoom_interface_get();
     /// <summary>Initializes a new instance of the <see cref="IZoom"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IZoomConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IZoomConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
-    {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
+    private IZoomConcrete(System.IntPtr raw) : base(raw)
     {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when zooming started</summary>
@@ -245,10 +102,9 @@ IZoom
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -298,10 +154,9 @@ IZoom
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -351,10 +206,9 @@ IZoom
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -443,21 +297,21 @@ IZoom
         Eina.Error.RaiseIfUnhandledException();
                          }
     /// <summary>This sets the zoom animation state to on or off for zoomable. The default is off. When <c>paused</c> is <c>true</c>, it will stop zooming using animation on zoom level changes and change instantly, stopping any existing animations that are running.</summary>
-/// <value>The paused state.</value>
+    /// <value>The paused state.</value>
     public bool ZoomAnimation {
         get { return GetZoomAnimation(); }
         set { SetZoomAnimation(value); }
     }
     /// <summary>Get the zoom level of the photo
-/// This returns the current zoom level of the zoomable object. Note that if you set the fill mode to other than #EFL_UI_ZOOM_MODE_MANUAL (which is the default), the zoom level may be changed at any time by the  zoomable object itself to account for photo size and zoomable viewport size.</summary>
-/// <value>The zoom level to set</value>
+    /// This returns the current zoom level of the zoomable object. Note that if you set the fill mode to other than #EFL_UI_ZOOM_MODE_MANUAL (which is the default), the zoom level may be changed at any time by the  zoomable object itself to account for photo size and zoomable viewport size.</summary>
+    /// <value>The zoom level to set</value>
     public double ZoomLevel {
         get { return GetZoomLevel(); }
         set { SetZoomLevel(value); }
     }
     /// <summary>Get the zoom mode
-/// This gets the current zoom mode of the zoomable object.</summary>
-/// <value>The zoom mode.</value>
+    /// This gets the current zoom mode of the zoomable object.</summary>
+    /// <value>The zoom mode.</value>
     public Efl.Ui.ZoomMode ZoomMode {
         get { return GetZoomMode(); }
         set { SetZoomMode(value); }
@@ -547,7 +401,7 @@ IZoom
             return Efl.Ui.IZoomConcrete.efl_ui_zoom_interface_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_ui_zoom_animation_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -560,13 +414,13 @@ IZoom
         private static bool zoom_animation_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_zoom_animation_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IZoom)wrapper).GetZoomAnimation();
+                    _ret_var = ((IZoom)ws.Target).GetZoomAnimation();
                 }
                 catch (Exception e)
                 {
@@ -596,13 +450,13 @@ IZoom
         private static void zoom_animation_set(System.IntPtr obj, System.IntPtr pd, bool paused)
         {
             Eina.Log.Debug("function efl_ui_zoom_animation_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IZoom)wrapper).SetZoomAnimation(paused);
+                    ((IZoom)ws.Target).SetZoomAnimation(paused);
                 }
                 catch (Exception e)
                 {
@@ -631,13 +485,13 @@ IZoom
         private static double zoom_level_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_zoom_level_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             double _ret_var = default(double);
                 try
                 {
-                    _ret_var = ((IZoom)wrapper).GetZoomLevel();
+                    _ret_var = ((IZoom)ws.Target).GetZoomLevel();
                 }
                 catch (Exception e)
                 {
@@ -667,13 +521,13 @@ IZoom
         private static void zoom_level_set(System.IntPtr obj, System.IntPtr pd, double zoom)
         {
             Eina.Log.Debug("function efl_ui_zoom_level_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IZoom)wrapper).SetZoomLevel(zoom);
+                    ((IZoom)ws.Target).SetZoomLevel(zoom);
                 }
                 catch (Exception e)
                 {
@@ -702,13 +556,13 @@ IZoom
         private static Efl.Ui.ZoomMode zoom_mode_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_zoom_mode_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ZoomMode _ret_var = default(Efl.Ui.ZoomMode);
                 try
                 {
-                    _ret_var = ((IZoom)wrapper).GetZoomMode();
+                    _ret_var = ((IZoom)ws.Target).GetZoomMode();
                 }
                 catch (Exception e)
                 {
@@ -738,13 +592,13 @@ IZoom
         private static void zoom_mode_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ZoomMode mode)
         {
             Eina.Log.Debug("function efl_ui_zoom_mode_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IZoom)wrapper).SetZoomMode(mode);
+                    ((IZoom)ws.Target).SetZoomMode(mode);
                 }
                 catch (Exception e)
                 {
@@ -762,7 +616,7 @@ IZoom
 
         private static efl_ui_zoom_mode_set_delegate efl_ui_zoom_mode_set_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 81d84c5..720ff7e 100644 (file)
@@ -151,7 +151,7 @@ namespace Efl {
 /// <summary>Efl model providing helpers for custom properties used when linking a model to a view and you need to generate/adapt values for display.
 /// There is two ways to use this class, you can either inherit from it and have a custom constructor for example. Or you can just instantiate it and manually define your property on it via callbacks.</summary>
 [Efl.ViewModel.NativeMethods]
-public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
+public class ViewModel : Efl.CompositeModel
 {
     ///<summary>Pointer to the native class description.</summary>
     public override System.IntPtr NativeClass
@@ -202,7 +202,7 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
     /// <param name="raw">The native pointer to be wrapped.</param>
     protected ViewModel(System.IntPtr raw) : base(raw)
     {
-            }
+    }
 
     /// <summary>Initializes a new instance of the <see cref="ViewModel"/> class.
     /// Internal usage: Constructor to forward the wrapper initialization to the root class that interfaces with native code. Should not be used directly.</summary>
@@ -213,33 +213,6 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
     {
     }
 
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
     /// <summary>Get the state of the automatic binding of children object.</summary>
     /// <returns>Do you automatically bind children. Default to true.</returns>
     virtual public bool GetChildrenBind() {
@@ -253,6 +226,29 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
                                  Efl.ViewModel.NativeMethods.efl_view_model_children_bind_set_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),enable);
         Eina.Error.RaiseIfUnhandledException();
                          }
+    /// <summary>Adds a synthetic string property, generated from a <c>definition</c> string and other properties in the model.
+    /// The <c>definition</c> string, similar to how <c>printf</c> works, contains ${} placeholders that are replaced by the actual value of the property inside the placeholder tags when the synthetic property is retrieved. For example, a numeric property <c>length</c> might be strange to use as a label, since it will only display a number. However, a synthetic string can be generated with the definition &quot;Length ${length}.&quot; which renders more nicely and does not require any more code by the user of the property.
+    /// 
+    /// <c>not_ready</c> and <c>on_error</c> strings can be given to be used when the data is not ready or there is some error, respectively. These strings do accept placeholder tags.
+    /// 
+    /// See <see cref="Efl.ViewModel.DelPropertyString"/></summary>
+    /// <param name="name">The name for the new synthetic property.</param>
+    /// <param name="definition">The definition string for the new synthetic property.</param>
+    /// <param name="not_ready">The text to be used if any of the properties used in <c>definition</c> is not ready yet. If set to <c>null</c>, no check against EAGAIN will be done.</param>
+    /// <param name="on_error">The text to be used if any of the properties used in <c>definition</c> is in error. It takes precedence over <c>not_ready</c>. If set to <c>null</c>, no error checks are performed.</param>
+    virtual public Eina.Error AddPropertyString(System.String name, System.String definition, System.String not_ready, System.String on_error) {
+                                                                                                         var _ret_var = Efl.ViewModel.NativeMethods.efl_view_model_property_string_add_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),name, definition, not_ready, on_error);
+        Eina.Error.RaiseIfUnhandledException();
+                                                                        return _ret_var;
+ }
+    /// <summary>Delete a synthetic property previously defined by <see cref="Efl.ViewModel.AddPropertyString"/>.
+    /// See <see cref="Efl.ViewModel.AddPropertyString"/></summary>
+    /// <param name="name">The name of the synthetic property to delete.</param>
+    virtual public Eina.Error DelPropertyString(System.String name) {
+                                 var _ret_var = Efl.ViewModel.NativeMethods.efl_view_model_property_string_del_ptr.Value.Delegate((inherited ? Efl.Eo.Globals.efl_super(this.NativeHandle, this.NativeClass) : this.NativeHandle),name);
+        Eina.Error.RaiseIfUnhandledException();
+                        return _ret_var;
+ }
     /// <summary>Add callbacks that will be triggered when someone ask for the specified property name when getting or setting a property.
     /// A get or set should at least be provided for this call to succeed.
     /// 
@@ -295,8 +291,8 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
         Eina.Error.RaiseIfUnhandledException();
                                          }
     /// <summary>Define if we will intercept all childrens object reference and bind them through the ViewModel with the same property logic as this one. Be careful of recursivity.
-/// This can only be applied at construction time.</summary>
-/// <value>Do you automatically bind children. Default to true.</value>
+    /// This can only be applied at construction time.</summary>
+    /// <value>Do you automatically bind children. Default to true.</value>
     public bool ChildrenBind {
         get { return GetChildrenBind(); }
         set { SetChildrenBind(value); }
@@ -337,6 +333,26 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
                 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_view_model_children_bind_set"), func = Marshal.GetFunctionPointerForDelegate(efl_view_model_children_bind_set_static_delegate) });
             }
 
+            if (efl_view_model_property_string_add_static_delegate == null)
+            {
+                efl_view_model_property_string_add_static_delegate = new efl_view_model_property_string_add_delegate(property_string_add);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "AddPropertyString") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_view_model_property_string_add"), func = Marshal.GetFunctionPointerForDelegate(efl_view_model_property_string_add_static_delegate) });
+            }
+
+            if (efl_view_model_property_string_del_static_delegate == null)
+            {
+                efl_view_model_property_string_del_static_delegate = new efl_view_model_property_string_del_delegate(property_string_del);
+            }
+
+            if (methods.FirstOrDefault(m => m.Name == "DelPropertyString") != null)
+            {
+                descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_view_model_property_string_del"), func = Marshal.GetFunctionPointerForDelegate(efl_view_model_property_string_del_static_delegate) });
+            }
+
             if (efl_view_model_property_logic_add_static_delegate == null)
             {
                 efl_view_model_property_logic_add_static_delegate = new efl_view_model_property_logic_add_delegate(property_logic_add);
@@ -387,7 +403,7 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
             return Efl.ViewModel.efl_view_model_class_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         [return: MarshalAs(UnmanagedType.U1)]
         private delegate bool efl_view_model_children_bind_get_delegate(System.IntPtr obj, System.IntPtr pd);
@@ -400,13 +416,13 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
         private static bool children_bind_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_view_model_children_bind_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((ViewModel)wrapper).GetChildrenBind();
+                    _ret_var = ((ViewModel)ws.Target).GetChildrenBind();
                 }
                 catch (Exception e)
                 {
@@ -436,13 +452,13 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
         private static void children_bind_set(System.IntPtr obj, System.IntPtr pd, bool enable)
         {
             Eina.Log.Debug("function efl_view_model_children_bind_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((ViewModel)wrapper).SetChildrenBind(enable);
+                    ((ViewModel)ws.Target).SetChildrenBind(enable);
                 }
                 catch (Exception e)
                 {
@@ -461,6 +477,78 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
         private static efl_view_model_children_bind_set_delegate efl_view_model_children_bind_set_static_delegate;
 
         
+        private delegate Eina.Error efl_view_model_property_string_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String definition, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String not_ready, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String on_error);
+
+        
+        public delegate Eina.Error efl_view_model_property_string_add_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String definition, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String not_ready, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String on_error);
+
+        public static Efl.Eo.FunctionWrapper<efl_view_model_property_string_add_api_delegate> efl_view_model_property_string_add_ptr = new Efl.Eo.FunctionWrapper<efl_view_model_property_string_add_api_delegate>(Module, "efl_view_model_property_string_add");
+
+        private static Eina.Error property_string_add(System.IntPtr obj, System.IntPtr pd, System.String name, System.String definition, System.String not_ready, System.String on_error)
+        {
+            Eina.Log.Debug("function efl_view_model_property_string_add was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                                                                                            Eina.Error _ret_var = default(Eina.Error);
+                try
+                {
+                    _ret_var = ((ViewModel)ws.Target).AddPropertyString(name, definition, not_ready, on_error);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                                                                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_view_model_property_string_add_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), name, definition, not_ready, on_error);
+            }
+        }
+
+        private static efl_view_model_property_string_add_delegate efl_view_model_property_string_add_static_delegate;
+
+        
+        private delegate Eina.Error efl_view_model_property_string_del_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
+
+        
+        public delegate Eina.Error efl_view_model_property_string_del_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String name);
+
+        public static Efl.Eo.FunctionWrapper<efl_view_model_property_string_del_api_delegate> efl_view_model_property_string_del_ptr = new Efl.Eo.FunctionWrapper<efl_view_model_property_string_del_api_delegate>(Module, "efl_view_model_property_string_del");
+
+        private static Eina.Error property_string_del(System.IntPtr obj, System.IntPtr pd, System.String name)
+        {
+            Eina.Log.Debug("function efl_view_model_property_string_del was called");
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
+            {
+                                    Eina.Error _ret_var = default(Eina.Error);
+                try
+                {
+                    _ret_var = ((ViewModel)ws.Target).DelPropertyString(name);
+                }
+                catch (Exception e)
+                {
+                    Eina.Log.Warning($"Callback error: {e.ToString()}");
+                    Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+                }
+
+                        return _ret_var;
+
+            }
+            else
+            {
+                return efl_view_model_property_string_del_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), name);
+            }
+        }
+
+        private static efl_view_model_property_string_del_delegate efl_view_model_property_string_del_static_delegate;
+
+        
         private delegate Eina.Error efl_view_model_property_logic_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String property,  IntPtr get_data, EflViewModelPropertyGetInternal get, EinaFreeCb get_free_cb,  IntPtr set_data, EflViewModelPropertySetInternal set, EinaFreeCb set_free_cb,  System.IntPtr binded);
 
         
@@ -471,8 +559,8 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
         private static Eina.Error property_logic_add(System.IntPtr obj, System.IntPtr pd, System.String property, IntPtr get_data, EflViewModelPropertyGetInternal get, EinaFreeCb get_free_cb, IntPtr set_data, EflViewModelPropertySetInternal set, EinaFreeCb set_free_cb, System.IntPtr binded)
         {
             Eina.Log.Debug("function efl_view_model_property_logic_add was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                 var _in_binded = new Eina.Iterator<System.String>(binded, false, false);
                                                     EflViewModelPropertyGetWrapper get_wrapper = new EflViewModelPropertyGetWrapper(get, get_data, get_free_cb);
@@ -480,7 +568,7 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((ViewModel)wrapper).AddPropertyLogic(property, get_wrapper.ManagedCb, set_wrapper.ManagedCb, _in_binded);
+                    _ret_var = ((ViewModel)ws.Target).AddPropertyLogic(property, get_wrapper.ManagedCb, set_wrapper.ManagedCb, _in_binded);
                 }
                 catch (Exception e)
                 {
@@ -510,13 +598,13 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
         private static Eina.Error property_logic_del(System.IntPtr obj, System.IntPtr pd, System.String property)
         {
             Eina.Log.Debug("function efl_view_model_property_logic_del was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Eina.Error _ret_var = default(Eina.Error);
                 try
                 {
-                    _ret_var = ((ViewModel)wrapper).DelPropertyLogic(property);
+                    _ret_var = ((ViewModel)ws.Target).DelPropertyLogic(property);
                 }
                 catch (Exception e)
                 {
@@ -546,13 +634,13 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
         private static void property_bind(System.IntPtr obj, System.IntPtr pd, System.String source, System.String destination)
         {
             Eina.Log.Debug("function efl_view_model_property_bind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ViewModel)wrapper).PropertyBind(source, destination);
+                    ((ViewModel)ws.Target).PropertyBind(source, destination);
                 }
                 catch (Exception e)
                 {
@@ -581,13 +669,13 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
         private static void property_unbind(System.IntPtr obj, System.IntPtr pd, System.String source, System.String destination)
         {
             Eina.Log.Debug("function efl_view_model_property_unbind was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((ViewModel)wrapper).PropertyUnbind(source, destination);
+                    ((ViewModel)ws.Target).PropertyUnbind(source, destination);
                 }
                 catch (Exception e)
                 {
@@ -605,7 +693,7 @@ public class ViewModel : Efl.CompositeModel, Efl.Eo.IWrapper
 
         private static efl_view_model_property_unbind_delegate efl_view_model_property_unbind_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index 630b084..7bc17d9 100644 (file)
@@ -229,7 +229,7 @@ public class EflObjectElementTraits<T> : IBaseElementTraits<T>
     {
         if (nat != IntPtr.Zero)
         {
-           Efl.Eo.Globals.efl_mono_thread_safe_efl_unref(nat);
+            Efl.Eo.Globals.efl_mono_thread_safe_efl_unref(nat);
         }
     }
 
index 9de7dd3..965a4cb 100644 (file)
@@ -7,17 +7,25 @@ using System.Threading;
 using System.ComponentModel;
 namespace Eina {
 
+/// <summary>Eina unicode type</summary>
 public struct Unicode
 {
     private uint payload;
-    public static implicit operator Unicode(uint x)
+
+    /// <summary>Converts an instance of uint to this struct.</summary>
+    /// <param name="value">The value to be converted.</param>
+    /// <returns>A struct with the given value.</returns>
+    public static implicit operator Unicode(uint value)
     {
-        return new Unicode{payload=x};
+        return new Unicode{payload=value};
     }
 
-    public static implicit operator uint(Unicode x)
+    /// <summary>Converts an instance of this struct to uint.</summary>
+    /// <param name="value">The value to be converted packed in this struct.</param>
+    /// <returns>The actual value the alias is wrapping.</returns>
+    public static implicit operator uint(Unicode value)
     {
-        return x.payload;
+        return value.payload;
     }
 
 }
@@ -70,12 +78,16 @@ public struct Rect
         this.H = H;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Rect(IntPtr ptr)
     {
         var tmp = (Rect.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Rect.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Rect.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -112,6 +124,8 @@ public struct Rect
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -135,12 +149,16 @@ public struct Position2D
         this.Y = Y;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Position2D(IntPtr ptr)
     {
         var tmp = (Position2D.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Position2D.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Position2D.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -169,6 +187,8 @@ public struct Position2D
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -192,12 +212,16 @@ public struct Size2D
         this.H = H;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Size2D(IntPtr ptr)
     {
         var tmp = (Size2D.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Size2D.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Size2D.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -226,6 +250,8 @@ public struct Size2D
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -238,12 +264,16 @@ public struct File
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator File(IntPtr ptr)
     {
         var tmp = (File.NativeStruct)Marshal.PtrToStructure(ptr, typeof(File.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct File.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -265,6 +295,8 @@ public struct File
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -288,12 +320,16 @@ public struct Vector2
         this.Y = Y;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Vector2(IntPtr ptr)
     {
         var tmp = (Vector2.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Vector2.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Vector2.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -322,6 +358,8 @@ public struct Vector2
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -373,12 +411,16 @@ public struct Matrix3
         this.Zz = Zz;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Matrix3(IntPtr ptr)
     {
         var tmp = (Matrix3.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Matrix3.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Matrix3.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -435,6 +477,8 @@ public struct Matrix3
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -447,12 +491,16 @@ public struct FileDirectInfo
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator FileDirectInfo(IntPtr ptr)
     {
         var tmp = (FileDirectInfo.NativeStruct)Marshal.PtrToStructure(ptr, typeof(FileDirectInfo.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct FileDirectInfo.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -474,6 +522,8 @@ public struct FileDirectInfo
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -553,12 +603,16 @@ public struct Stat
         this.Ctimensec = Ctimensec;
     }
 
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator Stat(IntPtr ptr)
     {
         var tmp = (Stat.NativeStruct)Marshal.PtrToStructure(ptr, typeof(Stat.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct Stat.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -643,6 +697,8 @@ public struct Stat
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
index ce07f86..7234474 100644 (file)
@@ -7,71 +7,6 @@ using System.Threading;
 using System.ComponentModel;
 namespace Elm {
 
-/// <summary>Policy identifiers.</summary>
-public enum Policy
-{
-/// <summary>under which circumstances the application should quit automatically. See also <see cref="Elm.Policy.Quit"/>.</summary>
-Quit = 0,
-/// <summary>defines elm_exit() behaviour. See also <see cref="Elm.Policy.Exit"/>.
-/// (Since EFL 1.8)</summary>
-Exit = 1,
-/// <summary>defines how throttling should work. See also <see cref="Elm.Policy.Throttle"/>
-/// (Since EFL 1.8)</summary>
-Throttle = 2,
-/// <summary>Sentinel value to indicate last enum field during iteration</summary>
-Last = 3,
-}
-
-}
-
-namespace Elm {
-
-/// <summary>Possible values for the <see cref="Elm.Policy.Quit"/> policy</summary>
-public enum PolicyQuit
-{
-/// <summary>never quit the application automatically</summary>
-None = 0,
-/// <summary>quit when the application&apos;s last window is closed</summary>
-LastWindowClosed = 1,
-/// <summary>quit when the application&apos;s last window is hidden
-/// (Since EFL 1.14)</summary>
-LastWindowHidden = 2,
-}
-
-}
-
-namespace Elm {
-
-/// <summary>Possible values for the <see cref="Elm.Policy.Exit"/> policy.
-/// (Since EFL 1.8)</summary>
-public enum PolicyExit
-{
-/// <summary>just quit the main loop on elm_exit()</summary>
-None = 0,
-/// <summary>delete all the windows after quitting the main loop</summary>
-WindowsDel = 1,
-}
-
-}
-
-namespace Elm {
-
-/// <summary>Possible values for the <see cref="Elm.Policy.Throttle"/> policy.
-/// (Since EFL 1.8)</summary>
-public enum PolicyThrottle
-{
-/// <summary>do whatever elementary config is configured to do</summary>
-Config = 0,
-/// <summary>always throttle when all windows are no longer visible</summary>
-HiddenAlways = 1,
-/// <summary>never throttle when windows are all hidden, regardless of config settings</summary>
-Never = 2,
-}
-
-}
-
-namespace Elm {
-
 namespace Object {
 
 /// <summary>Possible values for the #ELM_OBJECT_SELECT_MODE policy.
@@ -96,50 +31,6 @@ Max = 4,
 
 namespace Elm {
 
-namespace Object {
-
-/// <summary>Possible values for the #ELM_OBJECT_MULTI_SELECT_MODE policy.
-/// (Since EFL 1.8)</summary>
-public enum MultiSelectMode
-{
-/// <summary>default multiple select mode</summary>
-Default = 0,
-/// <summary>disallow mutiple selection when clicked without control key pressed</summary>
-WithControl = 1,
-/// <summary>canary value: any value greater or equal to ELM_OBJECT_MULTI_SELECT_MODE_MAX is forbidden.</summary>
-Max = 2,
-}
-
-}
-
-}
-
-namespace Elm {
-
-namespace Wrap {
-
-/// <summary>Line wrapping types. Type of word or character wrapping to use.
-/// See also @ref elm_entry_line_wrap_set, @ref elm_popup_content_text_wrap_type_set, @ref elm_label_line_wrap_set.</summary>
-public enum Type
-{
-/// <summary>No wrap - value is zero.</summary>
-None = 0,
-/// <summary>Char wrap - wrap between characters.</summary>
-Char = 1,
-/// <summary>Word wrap - wrap in allowed wrapping points (as defined in the unicode standard).</summary>
-Word = 2,
-/// <summary>Mixed wrap - Word wrap, and if that fails, char wrap.</summary>
-Mixed = 3,
-/// <summary>Sentinel value to indicate last enum field during iteration</summary>
-Last = 4,
-}
-
-}
-
-}
-
-namespace Elm {
-
 namespace Icon {
 
 /// <summary>Elementary icon types</summary>
@@ -159,19 +50,6 @@ Standard = 2,
 
 namespace Elm {
 
-/// <summary>Text Format types.</summary>
-public enum TextFormat
-{
-/// <summary>Plain UTF8 type</summary>
-PlainUtf8 = 0,
-/// <summary>Markup UTF8 type</summary>
-MarkupUtf8 = 1,
-}
-
-}
-
-namespace Elm {
-
 namespace Input {
 
 namespace Panel {
@@ -360,331 +238,22 @@ AutofillId = 2816,
 
 namespace Elm {
 
-/// <summary>Enum of entry&apos;s copy &amp; paste policy.</summary>
-public enum CnpMode
-{
-/// <summary>copy &amp; paste text with markup tag</summary>
-Markup = 0,
-/// <summary>copy &amp; paste text without item(image) tag</summary>
-NoImage = 1,
-/// <summary>copy &amp; paste text without markup tag</summary>
-Plaintext = 2,
-}
-
-}
-
-namespace Elm {
-
-namespace Genlist {
-
-namespace Item {
-
-/// <summary>Defines if the item is of any special type (has subitems or it&apos;s the index of a group), or is just a simple item.</summary>
-public enum Type
-{
-/// <summary>Simple item.</summary>
-None = 0,
-/// <summary>This may be expanded and have child items.</summary>
-Tree = 1,
-/// <summary>An index item of a group of items. this item can have child items.</summary>
-Group = 2,
-/// <summary>Sentinel value to indicate last enum field during iteration</summary>
-Max = 4,
-}
-
-}
-
-}
-
-}
-
-namespace Elm {
-
-namespace Genlist {
-
-namespace Item {
-
-/// <summary>Defines the type of the item part Used while updating item&apos;s parts It can be used at updating multi fields.</summary>
-public enum FieldType
-{
-/// <summary>Type all</summary>
-All = 0,
-/// <summary>Type text</summary>
-Text = 1,
-/// <summary>Type content</summary>
-Content = 2,
-/// <summary>Type state</summary>
-State = 4,
-}
-
-}
-
-}
-
-}
-
-namespace Elm {
-
-namespace Genlist {
-
-namespace Item {
-
-/// <summary>Defines where to position the item in the genlist.</summary>
-public enum ScrolltoType
-{
-/// <summary>Nothing will happen, Don&apos;t use this value.</summary>
-None = 0,
-/// <summary>To the nearest viewport.</summary>
-In = 1,
-/// <summary>To the top of viewport.</summary>
-Top = 2,
-/// <summary>To the middle of viewport.</summary>
-Middle = 4,
-/// <summary>To the bottom of viewport.</summary>
-Bottom = 8,
-}
-
-}
-
-}
-
-}
-
-namespace Elm {
-
-namespace Gengrid {
-
-namespace Item {
-
-/// <summary>Defines where to position the item in the genlist.</summary>
-public enum ScrolltoType
-{
-/// <summary>No scrollto.</summary>
-None = 0,
-/// <summary>To the nearest viewport.</summary>
-In = 1,
-/// <summary>To the top of viewport.</summary>
-Top = 2,
-/// <summary>To the middle of viewport.</summary>
-Middle = 4,
-/// <summary>To the bottom of viewport.</summary>
-Bottom = 8,
-}
-
-}
-
-}
-
-}
-
-namespace Elm {
-
-namespace Gengrid {
-
-namespace Item {
-
-/// <summary>Defines the type of the item part Used while updating item&apos;s parts. It can be used at updating multi fields.</summary>
-public enum FieldType
-{
-/// <summary>Type all</summary>
-All = 0,
-/// <summary>Type text</summary>
-Text = 1,
-/// <summary>Type content</summary>
-Content = 2,
-/// <summary>Type state</summary>
-State = 4,
-}
-
-}
-
-}
-
-}
-
-namespace Elm {
-
-namespace List {
-
-/// <summary>Set list&apos;s resizing behavior, transverse axis scrolling and items cropping. See each mode&apos;s description for more details.
-/// Note: Default value is <see cref="Elm.List.Mode.Scroll"/>.
-/// 
-/// Values here don&apos;t work as bitmasks -- only one can be chosen at a time.</summary>
-public enum Mode
-{
-/// <summary>The list won&apos;t set any of its size hints to inform how a possible container should resize it. Then, if it&apos;s not created as a &quot;resize object&quot;, it might end with zeroed dimensions. The list will respect the container&apos;s geometry and, if any of its items won&apos;t fit into its transverse axis, one won&apos;t be able to scroll it in that direction.</summary>
-Compress = 0,
-/// <summary>Default value. This is the same as #ELM_LIST_COMPRESS, with the exception that if any of its items won&apos;t fit into its transverse axis, one will be able to scroll it in that direction.</summary>
-Scroll = 1,
-/// <summary>Sets a minimum size hint on the list object, so that containers may respect it (and resize itself to fit the child properly). More specifically, a minimum size hint will be set for its transverse axis, so that the largest item in that direction fits well. This is naturally bound by the list object&apos;s maximum size hints, set externally.</summary>
-Limit = 2,
-/// <summary>Besides setting a minimum size on the transverse axis, just like on <see cref="Elm.List.Mode.Limit"/>, the list will set a minimum size on the longitudinal axis, trying to reserve space to all its children to be visible at a time. . This is naturally bound by the list object&apos;s maximum size hints, set externally.</summary>
-Expand = 3,
-/// <summary>Indicates error if returned by elm_list_mode_get().</summary>
-Last = 4,
-}
-
-}
-
-}
-
-namespace Elm {
-
-namespace Event {
-
-/// <summary>Data on the event when an Elementary policy has changed</summary>
-[StructLayout(LayoutKind.Sequential)]
-public struct PolicyChanged
-{
-    /// <summary>the policy identifier</summary>
-    public uint Policy;
-    /// <summary>value the policy had before the change</summary>
-    public int New_value;
-    /// <summary>new value the policy got</summary>
-    public int Old_value;
-    ///<summary>Constructor for PolicyChanged.</summary>
-    public PolicyChanged(
-        uint Policy = default(uint),
-        int New_value = default(int),
-        int Old_value = default(int)    )
-    {
-        this.Policy = Policy;
-        this.New_value = New_value;
-        this.Old_value = Old_value;
-    }
-
-    public static implicit operator PolicyChanged(IntPtr ptr)
-    {
-        var tmp = (PolicyChanged.NativeStruct)Marshal.PtrToStructure(ptr, typeof(PolicyChanged.NativeStruct));
-        return tmp;
-    }
-
-    ///<summary>Internal wrapper for struct PolicyChanged.</summary>
-    [StructLayout(LayoutKind.Sequential)]
-    public struct NativeStruct
-    {
-        
-        public uint Policy;
-        
-        public int New_value;
-        
-        public int Old_value;
-        ///<summary>Implicit conversion to the internal/marshalling representation.</summary>
-        public static implicit operator PolicyChanged.NativeStruct(PolicyChanged _external_struct)
-        {
-            var _internal_struct = new PolicyChanged.NativeStruct();
-            _internal_struct.Policy = _external_struct.Policy;
-            _internal_struct.New_value = _external_struct.New_value;
-            _internal_struct.Old_value = _external_struct.Old_value;
-            return _internal_struct;
-        }
-
-        ///<summary>Implicit conversion to the managed representation.</summary>
-        public static implicit operator PolicyChanged(PolicyChanged.NativeStruct _internal_struct)
-        {
-            var _external_struct = new PolicyChanged();
-            _external_struct.Policy = _internal_struct.Policy;
-            _external_struct.New_value = _internal_struct.New_value;
-            _external_struct.Old_value = _internal_struct.Old_value;
-            return _external_struct;
-        }
-
-    }
-
-}
-
-}
-
-}
-
-/// <summary>Elementary gen item</summary>
-[StructLayout(LayoutKind.Sequential)]
-public struct ElmGenItem
-{
-    ///<summary>Placeholder field</summary>
-    public IntPtr field;
-    public static implicit operator ElmGenItem(IntPtr ptr)
-    {
-        var tmp = (ElmGenItem.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ElmGenItem.NativeStruct));
-        return tmp;
-    }
-
-    ///<summary>Internal wrapper for struct ElmGenItem.</summary>
-    [StructLayout(LayoutKind.Sequential)]
-    public struct NativeStruct
-    {
-        internal IntPtr field;
-        ///<summary>Implicit conversion to the internal/marshalling representation.</summary>
-        public static implicit operator ElmGenItem.NativeStruct(ElmGenItem _external_struct)
-        {
-            var _internal_struct = new ElmGenItem.NativeStruct();
-            return _internal_struct;
-        }
-
-        ///<summary>Implicit conversion to the managed representation.</summary>
-        public static implicit operator ElmGenItem(ElmGenItem.NativeStruct _internal_struct)
-        {
-            var _external_struct = new ElmGenItem();
-            return _external_struct;
-        }
-
-    }
-
-}
-
-
-
-/// <summary>Efl access action data</summary>
-[StructLayout(LayoutKind.Sequential)]
-public struct EflAccessActionData
-{
-    ///<summary>Placeholder field</summary>
-    public IntPtr field;
-    public static implicit operator EflAccessActionData(IntPtr ptr)
-    {
-        var tmp = (EflAccessActionData.NativeStruct)Marshal.PtrToStructure(ptr, typeof(EflAccessActionData.NativeStruct));
-        return tmp;
-    }
-
-    ///<summary>Internal wrapper for struct EflAccessActionData.</summary>
-    [StructLayout(LayoutKind.Sequential)]
-    public struct NativeStruct
-    {
-        internal IntPtr field;
-        ///<summary>Implicit conversion to the internal/marshalling representation.</summary>
-        public static implicit operator EflAccessActionData.NativeStruct(EflAccessActionData _external_struct)
-        {
-            var _internal_struct = new EflAccessActionData.NativeStruct();
-            return _internal_struct;
-        }
-
-        ///<summary>Implicit conversion to the managed representation.</summary>
-        public static implicit operator EflAccessActionData(EflAccessActionData.NativeStruct _internal_struct)
-        {
-            var _external_struct = new EflAccessActionData();
-            return _external_struct;
-        }
-
-    }
-
-}
-
-
-
-namespace Elm {
-
 /// <summary>Data for the elm_validator_regexp_helper()</summary>
 [StructLayout(LayoutKind.Sequential)]
 public struct ValidateContent
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator ValidateContent(IntPtr ptr)
     {
         var tmp = (ValidateContent.NativeStruct)Marshal.PtrToStructure(ptr, typeof(ValidateContent.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct ValidateContent.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -706,6 +275,8 @@ public struct ValidateContent
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -718,12 +289,16 @@ public struct EntryAnchorInfo
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator EntryAnchorInfo(IntPtr ptr)
     {
         var tmp = (EntryAnchorInfo.NativeStruct)Marshal.PtrToStructure(ptr, typeof(EntryAnchorInfo.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct EntryAnchorInfo.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -745,6 +320,8 @@ public struct EntryAnchorInfo
 
     }
 
+    #pragma warning restore CS1591
+
 }
 
 }
@@ -757,12 +334,16 @@ public struct EntryAnchorHoverInfo
 {
     ///<summary>Placeholder field</summary>
     public IntPtr field;
+    ///<summary>Implicit conversion to the managed representation from a native pointer.</summary>
+    ///<param name="ptr">Native pointer to be converted.</param>
     public static implicit operator EntryAnchorHoverInfo(IntPtr ptr)
     {
         var tmp = (EntryAnchorHoverInfo.NativeStruct)Marshal.PtrToStructure(ptr, typeof(EntryAnchorHoverInfo.NativeStruct));
         return tmp;
     }
 
+    #pragma warning disable CS1591
+
     ///<summary>Internal wrapper for struct EntryAnchorHoverInfo.</summary>
     [StructLayout(LayoutKind.Sequential)]
     public struct NativeStruct
@@ -784,44 +365,7 @@ public struct EntryAnchorHoverInfo
 
     }
 
-}
-
-}
-
-namespace Elm {
-
-/// <summary>This corresponds to Edje_Entry_Change_Info. Includes information about a change in the entry</summary>
-[StructLayout(LayoutKind.Sequential)]
-public struct EntryChangeInfo
-{
-    ///<summary>Placeholder field</summary>
-    public IntPtr field;
-    public static implicit operator EntryChangeInfo(IntPtr ptr)
-    {
-        var tmp = (EntryChangeInfo.NativeStruct)Marshal.PtrToStructure(ptr, typeof(EntryChangeInfo.NativeStruct));
-        return tmp;
-    }
-
-    ///<summary>Internal wrapper for struct EntryChangeInfo.</summary>
-    [StructLayout(LayoutKind.Sequential)]
-    public struct NativeStruct
-    {
-        internal IntPtr field;
-        ///<summary>Implicit conversion to the internal/marshalling representation.</summary>
-        public static implicit operator EntryChangeInfo.NativeStruct(EntryChangeInfo _external_struct)
-        {
-            var _internal_struct = new EntryChangeInfo.NativeStruct();
-            return _internal_struct;
-        }
-
-        ///<summary>Implicit conversion to the managed representation.</summary>
-        public static implicit operator EntryChangeInfo(EntryChangeInfo.NativeStruct _internal_struct)
-        {
-            var _external_struct = new EntryChangeInfo();
-            return _external_struct;
-        }
-
-    }
+    #pragma warning restore CS1591
 
 }
 
index 1c9f6cf..3c13baa 100644 (file)
@@ -359,202 +359,202 @@ void ContentMinLimit(bool w, bool h);
                                                                                                                                                                                                                                                                                                                         /// <summary>Called when content changed</summary>
     event EventHandler ChangedEvt;
     /// <summary>Control Wheel disable Enable or disable mouse wheel to be used to scroll the scroller content. heel is enabled by default.</summary>
-/// <value><c>true</c> if wheel is disabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if wheel is disabled, <c>false</c> otherwise</value>
     bool WheelDisabled {
         get ;
         set ;
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. One can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.
-/// 
-/// What makes this function different from freeze_push(), hold_push() and lock_x_set() (or lock_y_set()) is that it doesn&apos;t propagate its effects to any parent or child widget of <c>obj</c>. Only the target scrollable widget will be locked with regard to scrolling.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. One can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.
+    /// 
+    /// What makes this function different from freeze_push(), hold_push() and lock_x_set() (or lock_y_set()) is that it doesn&apos;t propagate its effects to any parent or child widget of <c>obj</c>. Only the target scrollable widget will be locked with regard to scrolling.</summary>
+    /// <value>Which axis (or axes) to block</value>
     Efl.Ui.ScrollBlock MovementBlock {
         get ;
         set ;
     }
     /// <summary>Momentum animator</summary>
-/// <value><c>true</c> if disabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if disabled, <c>false</c> otherwise</value>
     bool MomentumAnimatorDisabled {
         get ;
         set ;
     }
     /// <summary>It decides whether the scrollable object propagates the events to content object or not.</summary>
-/// <value><c>true</c> if events are propagated, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if events are propagated, <c>false</c> otherwise</value>
     bool ContentEvents {
         get ;
         set ;
     }
     /// <summary>Bounce animator</summary>
-/// <value><c>true</c> if bounce animation is disabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if bounce animation is disabled, <c>false</c> otherwise</value>
     bool BounceAnimatorDisabled {
         get ;
         set ;
     }
     /// <summary>Single direction scroll configuration
-/// This makes it possible to restrict scrolling to a single direction, with a &quot;soft&quot; or &quot;hard&quot; behavior.
-/// 
-/// The hard behavior restricts the scrolling to a single direction all of the time while the soft one will restrict depending on factors such as the movement angle. If the user scrolls roughly in one direction only, it will only move according to it while if the move was clearly wanted on both axes, it will happen on both of them.</summary>
-/// <value>The single direction scroll policy</value>
+    /// This makes it possible to restrict scrolling to a single direction, with a &quot;soft&quot; or &quot;hard&quot; behavior.
+    /// 
+    /// The hard behavior restricts the scrolling to a single direction all of the time while the soft one will restrict depending on factors such as the movement angle. If the user scrolls roughly in one direction only, it will only move according to it while if the move was clearly wanted on both axes, it will happen on both of them.</summary>
+    /// <value>The single direction scroll policy</value>
     Elm.Scroller.SingleDirection SingleDirection {
         get ;
         set ;
     }
     /// <summary>Set the callback to run when the content has been moved up.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb ScrollUpCb {
         set ;
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is dragged.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb HbarDragCb {
         set ;
     }
     /// <summary>Set the callback to run when dragging of the contents has started.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb DragStartCb {
         set ;
     }
     /// <summary>Set the callback to run when scrolling of the contents has started.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb ScrollStartCb {
         set ;
     }
     /// <summary>Freeze property</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     bool Freeze {
         set ;
     }
     /// <summary>When the viewport is resized, the callback is called.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableResizeCb ContentViewportResizeCb {
         set ;
     }
     /// <summary>Set the callback to run when the content has been moved to the left</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb ScrollLeftCb {
         set ;
     }
     /// <summary>Set the callback to run when the vertical scrollbar is pressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb VbarPressCb {
         set ;
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is pressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb HbarPressCb {
         set ;
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is unpressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb HbarUnpressCb {
         set ;
     }
     /// <summary>Set the callback to run when dragging of the contents has stopped.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb DragStopCb {
         set ;
     }
     /// <summary>Set the callback to run when scrolling of the contents has stopped.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb ScrollStopCb {
         set ;
     }
     /// <summary>Extern pan</summary>
-/// <value>Pan object</value>
+    /// <value>Pan object</value>
     Efl.Canvas.Object ExternPan {
         set ;
     }
     /// <summary>Set the callback to run when the visible page changes.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb PageChangeCb {
         set ;
     }
     /// <summary>Hold property</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     bool Hold {
         set ;
     }
     /// <summary>Set the callback to run when the scrolling animation has started.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb AnimateStartCb {
         set ;
     }
     /// <summary>Set the callback to run when the content has been moved down.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb ScrollDownCb {
         set ;
     }
     /// <summary>Set the callback to run when the content has been moved.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb ScrollCb {
         set ;
     }
     /// <summary>Set the callback to run when the scrolling animation has stopped.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb AnimateStopCb {
         set ;
     }
     /// <summary>set the callback to run on minimal limit content</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableMinLimitCb ContentMinLimitCb {
         set ;
     }
     /// <summary>Set the callback to run when the content has been moved to the right.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb ScrollRightCb {
         set ;
     }
     /// <summary>Content property</summary>
-/// <value>Content object</value>
+    /// <value>Content object</value>
     Efl.Canvas.Object ScrollableContent {
         set ;
     }
     /// <summary>Set the callback to run when the left edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb EdgeLeftCb {
         set ;
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is dragged.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb VbarDragCb {
         set ;
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is unpressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb VbarUnpressCb {
         set ;
     }
     /// <summary>Set the callback to run when the bottom edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb EdgeBottomCb {
         set ;
     }
     /// <summary>Set the callback to run when the right edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb EdgeRightCb {
         set ;
     }
     /// <summary>Set the callback to run when the top edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     ElmInterfaceScrollableCb EdgeTopCb {
         set ;
     }
     /// <summary>Whether scrolling should loop around.</summary>
-/// <value>True to enable looping.</value>
+    /// <value>True to enable looping.</value>
     bool ItemLoopEnabled {
         get ;
         set ;
     }
 }
 /// <summary>Elm scrollable mixin</summary>
-sealed public class IInterfaceScrollableConcrete : 
-
-IInterfaceScrollable
+sealed public class IInterfaceScrollableConcrete :
+    Efl.Eo.EoWrapper
+    , IInterfaceScrollable
     , Efl.Ui.IScrollable, Efl.Ui.IWidgetFocusManager, Efl.Ui.Focus.IManager, Efl.Ui.Focus.IManagerSub
 {
     ///<summary>Pointer to the native class description.</summary>
-    public System.IntPtr NativeClass
+    public override System.IntPtr NativeClass
     {
         get
         {
@@ -569,155 +569,12 @@ IInterfaceScrollable
         }
     }
 
-    private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
-    private readonly object eventLock = new object();
-    private  System.IntPtr handle;
-    ///<summary>Pointer to the native instance.</summary>
-    public System.IntPtr NativeHandle
-    {
-        get { return handle; }
-    }
-
     [System.Runtime.InteropServices.DllImport(efl.Libs.Elementary)] internal static extern System.IntPtr
         elm_interface_scrollable_mixin_get();
     /// <summary>Initializes a new instance of the <see cref="IInterfaceScrollable"/> class.
     /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
-    private IInterfaceScrollableConcrete(System.IntPtr raw)
-    {
-        handle = raw;
-    }
-    ///<summary>Destructor.</summary>
-    ~IInterfaceScrollableConcrete()
-    {
-        Dispose(false);
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    private void Dispose(bool disposing)
-    {
-        if (handle != System.IntPtr.Zero)
-        {
-            IntPtr h = handle;
-            handle = IntPtr.Zero;
-
-            IntPtr gcHandlePtr = IntPtr.Zero;
-            if (eoEvents.Count != 0)
-            {
-                GCHandle gcHandle = GCHandle.Alloc(eoEvents);
-                gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
-            }
-
-            if (disposing)
-            {
-                Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
-            }
-            else
-            {
-                Monitor.Enter(Efl.All.InitLock);
-                if (Efl.All.MainLoopInitialized)
-                {
-                    Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
-                }
-
-                Monitor.Exit(Efl.All.InitLock);
-            }
-        }
-
-    }
-
-    ///<summary>Releases the underlying native instance.</summary>
-    public void Dispose()
+    private IInterfaceScrollableConcrete(System.IntPtr raw) : base(raw)
     {
-        Dispose(true);
-        GC.SuppressFinalize(this);
-    }
-
-    /// <summary>Verifies if the given object is equal to this one.</summary>
-    /// <param name="instance">The object to compare to.</param>
-    /// <returns>True if both objects point to the same native object.</returns>
-    public override bool Equals(object instance)
-    {
-        var other = instance as Efl.Object;
-        if (other == null)
-        {
-            return false;
-        }
-        return this.NativeHandle == other.NativeHandle;
-    }
-
-    /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
-    /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
-    public override int GetHashCode()
-    {
-        return this.NativeHandle.ToInt32();
-    }
-
-    /// <summary>Turns the native pointer into a string representation.</summary>
-    /// <returns>A string with the type and the native pointer for this object.</returns>
-    public override String ToString()
-    {
-        return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
-    }
-
-    ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
-    ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
-    private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-        }
-
-        if (eoEvents.ContainsKey((desc, evtDelegate)))
-        {
-            Eina.Log.Warning($"Event proxy for event {key} already registered!");
-            return;
-        }
-
-        IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
-        if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
-        {
-            Eina.Log.Error($"Failed to add event proxy for event {key}");
-            return;
-        }
-
-        eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
-        Eina.Error.RaiseIfUnhandledException();
-    }
-
-    ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
-    ///<param name="lib">The name of the native library definining the event.</param>
-    ///<param name="key">The name of the native event.</param>
-    ///<param name="evtDelegate">The delegate to be removed.</param>
-    private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
-    {
-        IntPtr desc = Efl.EventDescription.GetNative(lib, key);
-        if (desc == IntPtr.Zero)
-        {
-            Eina.Log.Error($"Failed to get native event {key}");
-            return;
-        }
-
-        var evtPair = (desc, evtDelegate);
-        if (eoEvents.TryGetValue(evtPair, out var caller))
-        {
-            if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
-            {
-                Eina.Log.Error($"Failed to remove event proxy for event {key}");
-                return;
-            }
-
-            eoEvents.Remove(evtPair);
-            Eina.Error.RaiseIfUnhandledException();
-        }
-        else
-        {
-            Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
-        }
     }
 
     /// <summary>Called when content changed</summary>
@@ -727,10 +584,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -780,10 +636,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -833,10 +688,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -886,10 +740,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -939,10 +792,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -992,10 +844,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1045,10 +896,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1098,10 +948,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1151,10 +1000,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1204,10 +1052,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1257,10 +1104,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1310,10 +1156,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1363,10 +1208,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1416,10 +1260,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1469,10 +1312,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1522,10 +1364,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1576,13 +1417,12 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerRedirectChangedEvt_Args args = new Efl.Ui.Focus.IManagerRedirectChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IManagerConcrete);
                         try
                         {
@@ -1632,10 +1472,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1686,10 +1525,9 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
                         EventArgs args = EventArgs.Empty;
@@ -1740,13 +1578,12 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
+                        Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args args = new Efl.Ui.Focus.IManagerManagerFocusChangedEvt_Args();
                         args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Ui.Focus.IObjectConcrete);
                         try
                         {
@@ -1796,14 +1633,13 @@ IInterfaceScrollable
         {
             lock (eventLock)
             {
-                var wRef = new WeakReference(this);
                 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
                 {
-                    var obj = wRef.Target as Efl.Eo.IWrapper;
+                    var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;
                     if (obj != null)
                     {
-                                                Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
-                        args.arg = evt.Info != IntPtr.Zero;
+                        Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args args = new Efl.Ui.Focus.IManagerDirtyLogicFreezeChangedEvt_Args();
+                        args.arg = Marshal.ReadByte(evt.Info) != 0;
                         try
                         {
                             value?.Invoke(obj, args);
@@ -2605,220 +2441,220 @@ IInterfaceScrollable
         Eina.Error.RaiseIfUnhandledException();
          }
     /// <summary>Control Wheel disable Enable or disable mouse wheel to be used to scroll the scroller content. heel is enabled by default.</summary>
-/// <value><c>true</c> if wheel is disabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if wheel is disabled, <c>false</c> otherwise</value>
     public bool WheelDisabled {
         get { return GetWheelDisabled(); }
         set { SetWheelDisabled(value); }
     }
     /// <summary>Blocking of scrolling (per axis)
-/// This function will block scrolling movement (by input of a user) in a given direction. One can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.
-/// 
-/// What makes this function different from freeze_push(), hold_push() and lock_x_set() (or lock_y_set()) is that it doesn&apos;t propagate its effects to any parent or child widget of <c>obj</c>. Only the target scrollable widget will be locked with regard to scrolling.</summary>
-/// <value>Which axis (or axes) to block</value>
+    /// This function will block scrolling movement (by input of a user) in a given direction. One can disable movements in the X axis, the Y axis or both. The default value is <c>none</c>, where movements are allowed in both directions.
+    /// 
+    /// What makes this function different from freeze_push(), hold_push() and lock_x_set() (or lock_y_set()) is that it doesn&apos;t propagate its effects to any parent or child widget of <c>obj</c>. Only the target scrollable widget will be locked with regard to scrolling.</summary>
+    /// <value>Which axis (or axes) to block</value>
     public Efl.Ui.ScrollBlock MovementBlock {
         get { return GetMovementBlock(); }
         set { SetMovementBlock(value); }
     }
     /// <summary>Momentum animator</summary>
-/// <value><c>true</c> if disabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if disabled, <c>false</c> otherwise</value>
     public bool MomentumAnimatorDisabled {
         get { return GetMomentumAnimatorDisabled(); }
         set { SetMomentumAnimatorDisabled(value); }
     }
     /// <summary>It decides whether the scrollable object propagates the events to content object or not.</summary>
-/// <value><c>true</c> if events are propagated, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if events are propagated, <c>false</c> otherwise</value>
     public bool ContentEvents {
         get { return GetContentEvents(); }
         set { SetContentEvents(value); }
     }
     /// <summary>Bounce animator</summary>
-/// <value><c>true</c> if bounce animation is disabled, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if bounce animation is disabled, <c>false</c> otherwise</value>
     public bool BounceAnimatorDisabled {
         get { return GetBounceAnimatorDisabled(); }
         set { SetBounceAnimatorDisabled(value); }
     }
     /// <summary>Single direction scroll configuration
-/// This makes it possible to restrict scrolling to a single direction, with a &quot;soft&quot; or &quot;hard&quot; behavior.
-/// 
-/// The hard behavior restricts the scrolling to a single direction all of the time while the soft one will restrict depending on factors such as the movement angle. If the user scrolls roughly in one direction only, it will only move according to it while if the move was clearly wanted on both axes, it will happen on both of them.</summary>
-/// <value>The single direction scroll policy</value>
+    /// This makes it possible to restrict scrolling to a single direction, with a &quot;soft&quot; or &quot;hard&quot; behavior.
+    /// 
+    /// The hard behavior restricts the scrolling to a single direction all of the time while the soft one will restrict depending on factors such as the movement angle. If the user scrolls roughly in one direction only, it will only move according to it while if the move was clearly wanted on both axes, it will happen on both of them.</summary>
+    /// <value>The single direction scroll policy</value>
     public Elm.Scroller.SingleDirection SingleDirection {
         get { return GetSingleDirection(); }
         set { SetSingleDirection(value); }
     }
     /// <summary>Set the callback to run when the content has been moved up.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollUpCb {
         set { SetScrollUpCb(value); }
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is dragged.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb HbarDragCb {
         set { SetHbarDragCb(value); }
     }
     /// <summary>Set the callback to run when dragging of the contents has started.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb DragStartCb {
         set { SetDragStartCb(value); }
     }
     /// <summary>Set the callback to run when scrolling of the contents has started.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollStartCb {
         set { SetScrollStartCb(value); }
     }
     /// <summary>Freeze property</summary>
-/// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if freeze, <c>false</c> otherwise</value>
     public bool Freeze {
         set { SetFreeze(value); }
     }
     /// <summary>When the viewport is resized, the callback is called.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableResizeCb ContentViewportResizeCb {
         set { SetContentViewportResizeCb(value); }
     }
     /// <summary>Set the callback to run when the content has been moved to the left</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollLeftCb {
         set { SetScrollLeftCb(value); }
     }
     /// <summary>Set the callback to run when the vertical scrollbar is pressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb VbarPressCb {
         set { SetVbarPressCb(value); }
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is pressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb HbarPressCb {
         set { SetHbarPressCb(value); }
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is unpressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb HbarUnpressCb {
         set { SetHbarUnpressCb(value); }
     }
     /// <summary>Set the callback to run when dragging of the contents has stopped.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb DragStopCb {
         set { SetDragStopCb(value); }
     }
     /// <summary>Set the callback to run when scrolling of the contents has stopped.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollStopCb {
         set { SetScrollStopCb(value); }
     }
     /// <summary>Extern pan</summary>
-/// <value>Pan object</value>
+    /// <value>Pan object</value>
     public Efl.Canvas.Object ExternPan {
         set { SetExternPan(value); }
     }
     /// <summary>Set the callback to run when the visible page changes.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb PageChangeCb {
         set { SetPageChangeCb(value); }
     }
     /// <summary>Hold property</summary>
-/// <value><c>true</c> if hold, <c>false</c> otherwise</value>
+    /// <value><c>true</c> if hold, <c>false</c> otherwise</value>
     public bool Hold {
         set { SetHold(value); }
     }
     /// <summary>Set the callback to run when the scrolling animation has started.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb AnimateStartCb {
         set { SetAnimateStartCb(value); }
     }
     /// <summary>Set the callback to run when the content has been moved down.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollDownCb {
         set { SetScrollDownCb(value); }
     }
     /// <summary>Set the callback to run when the content has been moved.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollCb {
         set { SetScrollCb(value); }
     }
     /// <summary>Set the callback to run when the scrolling animation has stopped.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb AnimateStopCb {
         set { SetAnimateStopCb(value); }
     }
     /// <summary>set the callback to run on minimal limit content</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableMinLimitCb ContentMinLimitCb {
         set { SetContentMinLimitCb(value); }
     }
     /// <summary>Set the callback to run when the content has been moved to the right.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb ScrollRightCb {
         set { SetScrollRightCb(value); }
     }
     /// <summary>Content property</summary>
-/// <value>Content object</value>
+    /// <value>Content object</value>
     public Efl.Canvas.Object ScrollableContent {
         set { SetScrollableContent(value); }
     }
     /// <summary>Set the callback to run when the left edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb EdgeLeftCb {
         set { SetEdgeLeftCb(value); }
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is dragged.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb VbarDragCb {
         set { SetVbarDragCb(value); }
     }
     /// <summary>Set the callback to run when the horizontal scrollbar is unpressed.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb VbarUnpressCb {
         set { SetVbarUnpressCb(value); }
     }
     /// <summary>Set the callback to run when the bottom edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb EdgeBottomCb {
         set { SetEdgeBottomCb(value); }
     }
     /// <summary>Set the callback to run when the right edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb EdgeRightCb {
         set { SetEdgeRightCb(value); }
     }
     /// <summary>Set the callback to run when the top edge of the content has been reached.</summary>
-/// <value>The callback</value>
+    /// <value>The callback</value>
     public ElmInterfaceScrollableCb EdgeTopCb {
         set { SetEdgeTopCb(value); }
     }
     /// <summary>Whether scrolling should loop around.</summary>
-/// <value>True to enable looping.</value>
+    /// <value>True to enable looping.</value>
     public bool ItemLoopEnabled {
         get { return GetItemLoopEnabled(); }
         set { SetItemLoopEnabled(value); }
     }
     /// <summary>The element which is currently focused by this manager
-/// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
-/// (Since EFL 1.22)</summary>
-/// <value>Currently focused element.</value>
+    /// Use this property to retrieve the object currently being focused, or to set the focus to a new one. When <c>focus</c> is a logical child (which cannot receive focus), the next non-logical object is selected instead. If there is no such object, focus does not change.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Currently focused element.</value>
     public Efl.Ui.Focus.IObject ManagerFocus {
         get { return GetManagerFocus(); }
         set { SetManagerFocus(value); }
     }
     /// <summary>Add another manager to serve the move requests.
-/// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
-/// (Since EFL 1.22)</summary>
-/// <value>The redirect manager.</value>
+    /// If this value is set, all move requests are redirected to this manager object. Set it to <c>null</c> once nothing should be redirected anymore.
+    /// (Since EFL 1.22)</summary>
+    /// <value>The redirect manager.</value>
     public Efl.Ui.Focus.IManager Redirect {
         get { return GetRedirect(); }
         set { SetRedirect(value); }
     }
     /// <summary>The list of elements which are at the border of the graph.
-/// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
-/// (Since EFL 1.22)</summary>
-/// <value>An iterator over the border objects.</value>
+    /// This means one of the relations right,left or down,up are not set. This call flushes all changes. See <see cref="Efl.Ui.Focus.IManager.Move"/>
+    /// (Since EFL 1.22)</summary>
+    /// <value>An iterator over the border objects.</value>
     public Eina.Iterator<Efl.Ui.Focus.IObject> BorderElements {
         get { return GetBorderElements(); }
     }
     /// <summary>Root node for all logical subtrees.
-/// This property can only be set once.
-/// (Since EFL 1.22)</summary>
-/// <value>Will be registered into this manager object.</value>
+    /// This property can only be set once.
+    /// (Since EFL 1.22)</summary>
+    /// <value>Will be registered into this manager object.</value>
     public Efl.Ui.Focus.IObject Root {
         get { return GetRoot(); }
         set { SetRoot(value); }
@@ -3808,7 +3644,7 @@ IInterfaceScrollable
             return Elm.IInterfaceScrollableConcrete.elm_interface_scrollable_mixin_get();
         }
 
-        #pragma warning disable CA1707, SA1300, SA1600
+        #pragma warning disable CA1707, CS1591, SA1300, SA1600
 
         
         private delegate void elm_interface_scrollable_gravity_get_delegate(System.IntPtr obj, System.IntPtr pd,  out double x,  out double y);
@@ -3821,13 +3657,13 @@ IInterfaceScrollable
         private static void gravity_get(System.IntPtr obj, System.IntPtr pd, out double x, out double y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_gravity_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(double);        y = default(double);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetGravity(out x, out y);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetGravity(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -3856,13 +3692,13 @@ IInterfaceScrollable
         private static void gravity_set(System.IntPtr obj, System.IntPtr pd, double x, double y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_gravity_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetGravity(x, y);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetGravity(x, y);
                 }
                 catch (Exception e)
                 {
@@ -3891,13 +3727,13 @@ IInterfaceScrollable
         private static void bounce_allow_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function elm_interface_scrollable_bounce_allow_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetBounceAllow(out horiz, out vert);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetBounceAllow(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -3926,13 +3762,13 @@ IInterfaceScrollable
         private static void bounce_allow_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function elm_interface_scrollable_bounce_allow_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetBounceAllow(horiz, vert);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetBounceAllow(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -3961,13 +3797,13 @@ IInterfaceScrollable
         private static bool wheel_disabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_wheel_disabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetWheelDisabled();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetWheelDisabled();
                 }
                 catch (Exception e)
                 {
@@ -3997,13 +3833,13 @@ IInterfaceScrollable
         private static void wheel_disabled_set(System.IntPtr obj, System.IntPtr pd, bool disabled)
         {
             Eina.Log.Debug("function elm_interface_scrollable_wheel_disabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetWheelDisabled(disabled);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetWheelDisabled(disabled);
                 }
                 catch (Exception e)
                 {
@@ -4032,13 +3868,13 @@ IInterfaceScrollable
         private static Efl.Ui.ScrollBlock movement_block_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_movement_block_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.ScrollBlock _ret_var = default(Efl.Ui.ScrollBlock);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetMovementBlock();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetMovementBlock();
                 }
                 catch (Exception e)
                 {
@@ -4068,13 +3904,13 @@ IInterfaceScrollable
         private static void movement_block_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.ScrollBlock block)
         {
             Eina.Log.Debug("function elm_interface_scrollable_movement_block_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetMovementBlock(block);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetMovementBlock(block);
                 }
                 catch (Exception e)
                 {
@@ -4103,13 +3939,13 @@ IInterfaceScrollable
         private static bool momentum_animator_disabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_momentum_animator_disabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetMomentumAnimatorDisabled();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetMomentumAnimatorDisabled();
                 }
                 catch (Exception e)
                 {
@@ -4139,13 +3975,13 @@ IInterfaceScrollable
         private static void momentum_animator_disabled_set(System.IntPtr obj, System.IntPtr pd, bool disabled)
         {
             Eina.Log.Debug("function elm_interface_scrollable_momentum_animator_disabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetMomentumAnimatorDisabled(disabled);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetMomentumAnimatorDisabled(disabled);
                 }
                 catch (Exception e)
                 {
@@ -4174,13 +4010,13 @@ IInterfaceScrollable
         private static void policy_get(System.IntPtr obj, System.IntPtr pd, out Elm.Scroller.Policy hbar, out Elm.Scroller.Policy vbar)
         {
             Eina.Log.Debug("function elm_interface_scrollable_policy_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         hbar = default(Elm.Scroller.Policy);        vbar = default(Elm.Scroller.Policy);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetPolicy(out hbar, out vbar);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetPolicy(out hbar, out vbar);
                 }
                 catch (Exception e)
                 {
@@ -4209,13 +4045,13 @@ IInterfaceScrollable
         private static void policy_set(System.IntPtr obj, System.IntPtr pd, Elm.Scroller.Policy hbar, Elm.Scroller.Policy vbar)
         {
             Eina.Log.Debug("function elm_interface_scrollable_policy_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetPolicy(hbar, vbar);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetPolicy(hbar, vbar);
                 }
                 catch (Exception e)
                 {
@@ -4244,13 +4080,13 @@ IInterfaceScrollable
         private static void content_region_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y, out int w, out int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_region_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         x = default(int);        y = default(int);        w = default(int);        h = default(int);                                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetContentRegion(out x, out y, out w, out h);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetContentRegion(out x, out y, out w, out h);
                 }
                 catch (Exception e)
                 {
@@ -4279,13 +4115,13 @@ IInterfaceScrollable
         private static void content_region_set(System.IntPtr obj, System.IntPtr pd, int x, int y, int w, int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_region_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetContentRegion(x, y, w, h);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetContentRegion(x, y, w, h);
                 }
                 catch (Exception e)
                 {
@@ -4314,13 +4150,13 @@ IInterfaceScrollable
         private static bool content_events_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_events_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetContentEvents();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetContentEvents();
                 }
                 catch (Exception e)
                 {
@@ -4350,13 +4186,13 @@ IInterfaceScrollable
         private static void content_events_set(System.IntPtr obj, System.IntPtr pd, bool repeat_events)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_events_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetContentEvents(repeat_events);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetContentEvents(repeat_events);
                 }
                 catch (Exception e)
                 {
@@ -4385,13 +4221,13 @@ IInterfaceScrollable
         private static void page_size_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(int);        y = default(int);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetPageSize(out x, out y);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetPageSize(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -4420,13 +4256,13 @@ IInterfaceScrollable
         private static void page_size_set(System.IntPtr obj, System.IntPtr pd, int x, int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetPageSize(x, y);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetPageSize(x, y);
                 }
                 catch (Exception e)
                 {
@@ -4455,13 +4291,13 @@ IInterfaceScrollable
         private static bool bounce_animator_disabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_bounce_animator_disabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetBounceAnimatorDisabled();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetBounceAnimatorDisabled();
                 }
                 catch (Exception e)
                 {
@@ -4491,13 +4327,13 @@ IInterfaceScrollable
         private static void bounce_animator_disabled_set(System.IntPtr obj, System.IntPtr pd, bool disabled)
         {
             Eina.Log.Debug("function elm_interface_scrollable_bounce_animator_disabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetBounceAnimatorDisabled(disabled);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetBounceAnimatorDisabled(disabled);
                 }
                 catch (Exception e)
                 {
@@ -4526,13 +4362,13 @@ IInterfaceScrollable
         private static void page_scroll_limit_get(System.IntPtr obj, System.IntPtr pd, out int page_limit_h, out int page_limit_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_scroll_limit_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         page_limit_h = default(int);        page_limit_v = default(int);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetPageScrollLimit(out page_limit_h, out page_limit_v);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetPageScrollLimit(out page_limit_h, out page_limit_v);
                 }
                 catch (Exception e)
                 {
@@ -4561,13 +4397,13 @@ IInterfaceScrollable
         private static void page_scroll_limit_set(System.IntPtr obj, System.IntPtr pd, int page_limit_h, int page_limit_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_scroll_limit_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetPageScrollLimit(page_limit_h, page_limit_v);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetPageScrollLimit(page_limit_h, page_limit_v);
                 }
                 catch (Exception e)
                 {
@@ -4596,13 +4432,13 @@ IInterfaceScrollable
         private static void page_snap_allow_get(System.IntPtr obj, System.IntPtr pd, out bool horiz, out bool vert)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_snap_allow_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         horiz = default(bool);        vert = default(bool);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetPageSnapAllow(out horiz, out vert);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetPageSnapAllow(out horiz, out vert);
                 }
                 catch (Exception e)
                 {
@@ -4631,13 +4467,13 @@ IInterfaceScrollable
         private static void page_snap_allow_set(System.IntPtr obj, System.IntPtr pd, bool horiz, bool vert)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_snap_allow_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetPageSnapAllow(horiz, vert);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetPageSnapAllow(horiz, vert);
                 }
                 catch (Exception e)
                 {
@@ -4666,13 +4502,13 @@ IInterfaceScrollable
         private static void paging_get(System.IntPtr obj, System.IntPtr pd, out double pagerel_h, out double pagerel_v, out int pagesize_h, out int pagesize_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_paging_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         pagerel_h = default(double);        pagerel_v = default(double);        pagesize_h = default(int);        pagesize_v = default(int);                                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetPaging(out pagerel_h, out pagerel_v, out pagesize_h, out pagesize_v);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetPaging(out pagerel_h, out pagerel_v, out pagesize_h, out pagesize_v);
                 }
                 catch (Exception e)
                 {
@@ -4701,13 +4537,13 @@ IInterfaceScrollable
         private static void paging_set(System.IntPtr obj, System.IntPtr pd, double pagerel_h, double pagerel_v, int pagesize_h, int pagesize_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_paging_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetPaging(pagerel_h, pagerel_v, pagesize_h, pagesize_v);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetPaging(pagerel_h, pagerel_v, pagesize_h, pagesize_v);
                 }
                 catch (Exception e)
                 {
@@ -4736,13 +4572,13 @@ IInterfaceScrollable
         private static Elm.Scroller.SingleDirection single_direction_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_single_direction_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Elm.Scroller.SingleDirection _ret_var = default(Elm.Scroller.SingleDirection);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetSingleDirection();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetSingleDirection();
                 }
                 catch (Exception e)
                 {
@@ -4772,13 +4608,13 @@ IInterfaceScrollable
         private static void single_direction_set(System.IntPtr obj, System.IntPtr pd, Elm.Scroller.SingleDirection single_dir)
         {
             Eina.Log.Debug("function elm_interface_scrollable_single_direction_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetSingleDirection(single_dir);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetSingleDirection(single_dir);
                 }
                 catch (Exception e)
                 {
@@ -4807,13 +4643,13 @@ IInterfaceScrollable
         private static void step_size_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_step_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(int);        y = default(int);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetStepSize(out x, out y);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetStepSize(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -4842,13 +4678,13 @@ IInterfaceScrollable
         private static void step_size_set(System.IntPtr obj, System.IntPtr pd, int x, int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_step_size_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetStepSize(x, y);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetStepSize(x, y);
                 }
                 catch (Exception e)
                 {
@@ -4877,13 +4713,13 @@ IInterfaceScrollable
         private static void content_loop_get(System.IntPtr obj, System.IntPtr pd, out bool loop_h, out bool loop_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_loop_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         loop_h = default(bool);        loop_v = default(bool);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetContentLoop(out loop_h, out loop_v);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetContentLoop(out loop_h, out loop_v);
                 }
                 catch (Exception e)
                 {
@@ -4912,13 +4748,13 @@ IInterfaceScrollable
         private static void content_loop_set(System.IntPtr obj, System.IntPtr pd, bool loop_h, bool loop_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_loop_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetContentLoop(loop_h, loop_v);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetContentLoop(loop_h, loop_v);
                 }
                 catch (Exception e)
                 {
@@ -4947,13 +4783,13 @@ IInterfaceScrollable
         private static void scroll_up_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_up_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_up_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetScrollUpCb(scroll_up_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetScrollUpCb(scroll_up_cb);
                 }
                 catch (Exception e)
                 {
@@ -4982,13 +4818,13 @@ IInterfaceScrollable
         private static void hbar_drag_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb hbar_drag_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_hbar_drag_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetHbarDragCb(hbar_drag_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetHbarDragCb(hbar_drag_cb);
                 }
                 catch (Exception e)
                 {
@@ -5017,13 +4853,13 @@ IInterfaceScrollable
         private static void drag_start_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb drag_start_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_drag_start_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetDragStartCb(drag_start_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetDragStartCb(drag_start_cb);
                 }
                 catch (Exception e)
                 {
@@ -5052,13 +4888,13 @@ IInterfaceScrollable
         private static void scroll_start_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_start_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_start_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetScrollStartCb(scroll_start_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetScrollStartCb(scroll_start_cb);
                 }
                 catch (Exception e)
                 {
@@ -5087,13 +4923,13 @@ IInterfaceScrollable
         private static void freeze_set(System.IntPtr obj, System.IntPtr pd, bool freeze)
         {
             Eina.Log.Debug("function elm_interface_scrollable_freeze_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetFreeze(freeze);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetFreeze(freeze);
                 }
                 catch (Exception e)
                 {
@@ -5122,13 +4958,13 @@ IInterfaceScrollable
         private static void content_viewport_resize_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableResizeCb viewport_resize_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_viewport_resize_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetContentViewportResizeCb(viewport_resize_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetContentViewportResizeCb(viewport_resize_cb);
                 }
                 catch (Exception e)
                 {
@@ -5157,13 +4993,13 @@ IInterfaceScrollable
         private static void scroll_left_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_left_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_left_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetScrollLeftCb(scroll_left_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetScrollLeftCb(scroll_left_cb);
                 }
                 catch (Exception e)
                 {
@@ -5192,13 +5028,13 @@ IInterfaceScrollable
         private static void vbar_press_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb vbar_press_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_vbar_press_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetVbarPressCb(vbar_press_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetVbarPressCb(vbar_press_cb);
                 }
                 catch (Exception e)
                 {
@@ -5227,13 +5063,13 @@ IInterfaceScrollable
         private static void hbar_press_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb hbar_press_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_hbar_press_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetHbarPressCb(hbar_press_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetHbarPressCb(hbar_press_cb);
                 }
                 catch (Exception e)
                 {
@@ -5262,13 +5098,13 @@ IInterfaceScrollable
         private static void hbar_unpress_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb hbar_unpress_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_hbar_unpress_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetHbarUnpressCb(hbar_unpress_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetHbarUnpressCb(hbar_unpress_cb);
                 }
                 catch (Exception e)
                 {
@@ -5297,13 +5133,13 @@ IInterfaceScrollable
         private static void drag_stop_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb drag_stop_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_drag_stop_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetDragStopCb(drag_stop_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetDragStopCb(drag_stop_cb);
                 }
                 catch (Exception e)
                 {
@@ -5332,13 +5168,13 @@ IInterfaceScrollable
         private static void scroll_stop_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_stop_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_stop_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetScrollStopCb(scroll_stop_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetScrollStopCb(scroll_stop_cb);
                 }
                 catch (Exception e)
                 {
@@ -5367,13 +5203,13 @@ IInterfaceScrollable
         private static void extern_pan_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object pan)
         {
             Eina.Log.Debug("function elm_interface_scrollable_extern_pan_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetExternPan(pan);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetExternPan(pan);
                 }
                 catch (Exception e)
                 {
@@ -5402,13 +5238,13 @@ IInterfaceScrollable
         private static void page_change_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb page_change_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_change_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetPageChangeCb(page_change_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetPageChangeCb(page_change_cb);
                 }
                 catch (Exception e)
                 {
@@ -5437,13 +5273,13 @@ IInterfaceScrollable
         private static void hold_set(System.IntPtr obj, System.IntPtr pd, bool hold)
         {
             Eina.Log.Debug("function elm_interface_scrollable_hold_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetHold(hold);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetHold(hold);
                 }
                 catch (Exception e)
                 {
@@ -5472,13 +5308,13 @@ IInterfaceScrollable
         private static void animate_start_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb animate_start_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_animate_start_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetAnimateStartCb(animate_start_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetAnimateStartCb(animate_start_cb);
                 }
                 catch (Exception e)
                 {
@@ -5507,13 +5343,13 @@ IInterfaceScrollable
         private static void scroll_down_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_down_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_down_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetScrollDownCb(scroll_down_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetScrollDownCb(scroll_down_cb);
                 }
                 catch (Exception e)
                 {
@@ -5542,13 +5378,13 @@ IInterfaceScrollable
         private static void page_relative_set(System.IntPtr obj, System.IntPtr pd, double h_pagerel, double v_pagerel)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_relative_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetPageRelative(h_pagerel, v_pagerel);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetPageRelative(h_pagerel, v_pagerel);
                 }
                 catch (Exception e)
                 {
@@ -5577,13 +5413,13 @@ IInterfaceScrollable
         private static void scroll_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetScrollCb(scroll_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetScrollCb(scroll_cb);
                 }
                 catch (Exception e)
                 {
@@ -5612,13 +5448,13 @@ IInterfaceScrollable
         private static void animate_stop_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb animate_stop_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_animate_stop_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetAnimateStopCb(animate_stop_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetAnimateStopCb(animate_stop_cb);
                 }
                 catch (Exception e)
                 {
@@ -5647,13 +5483,13 @@ IInterfaceScrollable
         private static void content_min_limit_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableMinLimitCb min_limit_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_min_limit_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetContentMinLimitCb(min_limit_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetContentMinLimitCb(min_limit_cb);
                 }
                 catch (Exception e)
                 {
@@ -5682,13 +5518,13 @@ IInterfaceScrollable
         private static void scroll_right_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb scroll_right_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_scroll_right_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetScrollRightCb(scroll_right_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetScrollRightCb(scroll_right_cb);
                 }
                 catch (Exception e)
                 {
@@ -5717,13 +5553,13 @@ IInterfaceScrollable
         private static void scrollable_content_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object content)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetScrollableContent(content);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetScrollableContent(content);
                 }
                 catch (Exception e)
                 {
@@ -5752,13 +5588,13 @@ IInterfaceScrollable
         private static void edge_left_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb edge_left_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_edge_left_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetEdgeLeftCb(edge_left_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetEdgeLeftCb(edge_left_cb);
                 }
                 catch (Exception e)
                 {
@@ -5787,13 +5623,13 @@ IInterfaceScrollable
         private static void vbar_drag_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb vbar_drag_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_vbar_drag_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetVbarDragCb(vbar_drag_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetVbarDragCb(vbar_drag_cb);
                 }
                 catch (Exception e)
                 {
@@ -5822,13 +5658,13 @@ IInterfaceScrollable
         private static void vbar_unpress_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb vbar_unpress_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_vbar_unpress_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetVbarUnpressCb(vbar_unpress_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetVbarUnpressCb(vbar_unpress_cb);
                 }
                 catch (Exception e)
                 {
@@ -5857,13 +5693,13 @@ IInterfaceScrollable
         private static void edge_bottom_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb edge_bottom_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_edge_bottom_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetEdgeBottomCb(edge_bottom_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetEdgeBottomCb(edge_bottom_cb);
                 }
                 catch (Exception e)
                 {
@@ -5892,13 +5728,13 @@ IInterfaceScrollable
         private static void edge_right_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb edge_right_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_edge_right_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetEdgeRightCb(edge_right_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetEdgeRightCb(edge_right_cb);
                 }
                 catch (Exception e)
                 {
@@ -5927,13 +5763,13 @@ IInterfaceScrollable
         private static void edge_top_cb_set(System.IntPtr obj, System.IntPtr pd, ElmInterfaceScrollableCb edge_top_cb)
         {
             Eina.Log.Debug("function elm_interface_scrollable_edge_top_cb_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetEdgeTopCb(edge_top_cb);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetEdgeTopCb(edge_top_cb);
                 }
                 catch (Exception e)
                 {
@@ -5962,13 +5798,13 @@ IInterfaceScrollable
         private static void objects_set(System.IntPtr obj, System.IntPtr pd, Efl.Canvas.Object edje_object, Efl.Canvas.Object hit_rectangle)
         {
             Eina.Log.Debug("function elm_interface_scrollable_objects_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetObjects(edje_object, hit_rectangle);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetObjects(edje_object, hit_rectangle);
                 }
                 catch (Exception e)
                 {
@@ -5997,13 +5833,13 @@ IInterfaceScrollable
         private static void last_page_get(System.IntPtr obj, System.IntPtr pd, out int pagenumber_h, out int pagenumber_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_last_page_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         pagenumber_h = default(int);        pagenumber_v = default(int);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetLastPage(out pagenumber_h, out pagenumber_v);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetLastPage(out pagenumber_h, out pagenumber_v);
                 }
                 catch (Exception e)
                 {
@@ -6032,13 +5868,13 @@ IInterfaceScrollable
         private static void current_page_get(System.IntPtr obj, System.IntPtr pd, out int pagenumber_h, out int pagenumber_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_current_page_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         pagenumber_h = default(int);        pagenumber_v = default(int);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetCurrentPage(out pagenumber_h, out pagenumber_v);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetCurrentPage(out pagenumber_h, out pagenumber_v);
                 }
                 catch (Exception e)
                 {
@@ -6067,13 +5903,13 @@ IInterfaceScrollable
         private static void content_viewport_geometry_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y, out int w, out int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_viewport_geometry_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                         x = default(int);        y = default(int);        w = default(int);        h = default(int);                                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetContentViewportGeometry(out x, out y, out w, out h);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetContentViewportGeometry(out x, out y, out w, out h);
                 }
                 catch (Exception e)
                 {
@@ -6102,13 +5938,13 @@ IInterfaceScrollable
         private static void content_size_get(System.IntPtr obj, System.IntPtr pd, out int w, out int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_size_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         w = default(int);        h = default(int);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetContentSize(out w, out h);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetContentSize(out w, out h);
                 }
                 catch (Exception e)
                 {
@@ -6137,13 +5973,13 @@ IInterfaceScrollable
         private static bool item_loop_enabled_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function elm_interface_scrollable_item_loop_enabled_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetItemLoopEnabled();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetItemLoopEnabled();
                 }
                 catch (Exception e)
                 {
@@ -6173,13 +6009,13 @@ IInterfaceScrollable
         private static void item_loop_enabled_set(System.IntPtr obj, System.IntPtr pd, bool enable)
         {
             Eina.Log.Debug("function elm_interface_scrollable_item_loop_enabled_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetItemLoopEnabled(enable);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetItemLoopEnabled(enable);
                 }
                 catch (Exception e)
                 {
@@ -6208,13 +6044,13 @@ IInterfaceScrollable
         private static void content_pos_set(System.IntPtr obj, System.IntPtr pd, int x, int y, bool sig)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_pos_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetContentPos(x, y, sig);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetContentPos(x, y, sig);
                 }
                 catch (Exception e)
                 {
@@ -6243,13 +6079,13 @@ IInterfaceScrollable
         private static void content_pos_get(System.IntPtr obj, System.IntPtr pd, out int x, out int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_pos_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                         x = default(int);        y = default(int);                            
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).GetContentPos(out x, out y);
+                    ((IInterfaceScrollableConcrete)ws.Target).GetContentPos(out x, out y);
                 }
                 catch (Exception e)
                 {
@@ -6278,13 +6114,13 @@ IInterfaceScrollable
         private static void page_show(System.IntPtr obj, System.IntPtr pd, int pagenumber_h, int pagenumber_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_show was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).ShowPage(pagenumber_h, pagenumber_v);
+                    ((IInterfaceScrollableConcrete)ws.Target).ShowPage(pagenumber_h, pagenumber_v);
                 }
                 catch (Exception e)
                 {
@@ -6313,13 +6149,13 @@ IInterfaceScrollable
         private static void region_bring_in(System.IntPtr obj, System.IntPtr pd, int x, int y, int w, int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_region_bring_in was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).RegionBringIn(x, y, w, h);
+                    ((IInterfaceScrollableConcrete)ws.Target).RegionBringIn(x, y, w, h);
                 }
                 catch (Exception e)
                 {
@@ -6348,13 +6184,13 @@ IInterfaceScrollable
         private static void page_bring_in(System.IntPtr obj, System.IntPtr pd, int pagenumber_h, int pagenumber_v)
         {
             Eina.Log.Debug("function elm_interface_scrollable_page_bring_in was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).PageBringIn(pagenumber_h, pagenumber_v);
+                    ((IInterfaceScrollableConcrete)ws.Target).PageBringIn(pagenumber_h, pagenumber_v);
                 }
                 catch (Exception e)
                 {
@@ -6383,13 +6219,13 @@ IInterfaceScrollable
         private static void content_region_show(System.IntPtr obj, System.IntPtr pd, int x, int y, int w, int h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_region_show was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).ShowContentRegion(x, y, w, h);
+                    ((IInterfaceScrollableConcrete)ws.Target).ShowContentRegion(x, y, w, h);
                 }
                 catch (Exception e)
                 {
@@ -6418,13 +6254,13 @@ IInterfaceScrollable
         private static void content_min_limit(System.IntPtr obj, System.IntPtr pd, bool w, bool h)
         {
             Eina.Log.Debug("function elm_interface_scrollable_content_min_limit was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).ContentMinLimit(w, h);
+                    ((IInterfaceScrollableConcrete)ws.Target).ContentMinLimit(w, h);
                 }
                 catch (Exception e)
                 {
@@ -6453,13 +6289,13 @@ IInterfaceScrollable
         private static void wanted_region_set(System.IntPtr obj, System.IntPtr pd, int x, int y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_wanted_region_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetWantedRegion(x, y);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetWantedRegion(x, y);
                 }
                 catch (Exception e)
                 {
@@ -6488,15 +6324,15 @@ IInterfaceScrollable
         private static void custom_pan_pos_adjust(System.IntPtr obj, System.IntPtr pd, System.IntPtr x, System.IntPtr y)
         {
             Eina.Log.Debug("function elm_interface_scrollable_custom_pan_pos_adjust was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         var _in_x = Eina.PrimitiveConversion.PointerToManaged<int>(x);
         var _in_y = Eina.PrimitiveConversion.PointerToManaged<int>(y);
                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).CustomPanPosAdjust(_in_x, _in_y);
+                    ((IInterfaceScrollableConcrete)ws.Target).CustomPanPosAdjust(_in_x, _in_y);
                 }
                 catch (Exception e)
                 {
@@ -6525,13 +6361,13 @@ IInterfaceScrollable
         private static Efl.Ui.Focus.IManager focus_manager_create(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_widget_focus_manager_create was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).FocusManagerCreate(root);
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).FocusManagerCreate(root);
                 }
                 catch (Exception e)
                 {
@@ -6561,13 +6397,13 @@ IInterfaceScrollable
         private static Efl.Ui.Focus.IObject manager_focus_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetManagerFocus();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetManagerFocus();
                 }
                 catch (Exception e)
                 {
@@ -6597,13 +6433,13 @@ IInterfaceScrollable
         private static void manager_focus_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject focus)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_focus_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetManagerFocus(focus);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetManagerFocus(focus);
                 }
                 catch (Exception e)
                 {
@@ -6632,13 +6468,13 @@ IInterfaceScrollable
         private static Efl.Ui.Focus.IManager redirect_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IManager _ret_var = default(Efl.Ui.Focus.IManager);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetRedirect();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetRedirect();
                 }
                 catch (Exception e)
                 {
@@ -6668,13 +6504,13 @@ IInterfaceScrollable
         private static void redirect_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IManager redirect)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_redirect_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetRedirect(redirect);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetRedirect(redirect);
                 }
                 catch (Exception e)
                 {
@@ -6703,13 +6539,13 @@ IInterfaceScrollable
         private static System.IntPtr border_elements_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_border_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetBorderElements();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetBorderElements();
                 }
                 catch (Exception e)
                 {
@@ -6739,14 +6575,14 @@ IInterfaceScrollable
         private static System.IntPtr viewport_elements_get(System.IntPtr obj, System.IntPtr pd, Eina.Rect.NativeStruct viewport)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_viewport_elements_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
         Eina.Rect _in_viewport = viewport;
                             Eina.Iterator<Efl.Ui.Focus.IObject> _ret_var = default(Eina.Iterator<Efl.Ui.Focus.IObject>);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetViewportElements(_in_viewport);
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetViewportElements(_in_viewport);
                 }
                 catch (Exception e)
                 {
@@ -6776,13 +6612,13 @@ IInterfaceScrollable
         private static Efl.Ui.Focus.IObject root_get(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_get was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).GetRoot();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).GetRoot();
                 }
                 catch (Exception e)
                 {
@@ -6812,13 +6648,13 @@ IInterfaceScrollable
         private static bool root_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_root_set was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     bool _ret_var = default(bool);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).SetRoot(root);
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).SetRoot(root);
                 }
                 catch (Exception e)
                 {
@@ -6848,13 +6684,13 @@ IInterfaceScrollable
         private static Efl.Ui.Focus.IObject move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).Move(direction);
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).Move(direction);
                 }
                 catch (Exception e)
                 {
@@ -6884,13 +6720,13 @@ IInterfaceScrollable
         private static Efl.Ui.Focus.IObject request_move(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject child, bool logical)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_move was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).MoveRequest(direction, child, logical);
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).MoveRequest(direction, child, logical);
                 }
                 catch (Exception e)
                 {
@@ -6920,13 +6756,13 @@ IInterfaceScrollable
         private static Efl.Ui.Focus.IObject request_subchild(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject root)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_request_subchild was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.IObject _ret_var = default(Efl.Ui.Focus.IObject);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).RequestSubchild(root);
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).RequestSubchild(root);
                 }
                 catch (Exception e)
                 {
@@ -6956,13 +6792,13 @@ IInterfaceScrollable
         private static System.IntPtr fetch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.IObject child)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_fetch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                     Efl.Ui.Focus.Relations _ret_var = default(Efl.Ui.Focus.Relations);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).Fetch(child);
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).Fetch(child);
                 }
                 catch (Exception e)
                 {
@@ -6992,13 +6828,13 @@ IInterfaceScrollable
         private static Efl.Ui.Focus.ManagerLogicalEndDetail.NativeStruct logical_end(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_logical_end was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             Efl.Ui.Focus.ManagerLogicalEndDetail _ret_var = default(Efl.Ui.Focus.ManagerLogicalEndDetail);
                 try
                 {
-                    _ret_var = ((IInterfaceScrollableConcrete)wrapper).LogicalEnd();
+                    _ret_var = ((IInterfaceScrollableConcrete)ws.Target).LogicalEnd();
                 }
                 catch (Exception e)
                 {
@@ -7028,13 +6864,13 @@ IInterfaceScrollable
         private static void reset_history(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_reset_history was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).ResetHistory();
+                    ((IInterfaceScrollableConcrete)ws.Target).ResetHistory();
                 }
                 catch (Exception e)
                 {
@@ -7063,13 +6899,13 @@ IInterfaceScrollable
         private static void pop_history_stack(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_pop_history_stack was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).PopHistoryStack();
+                    ((IInterfaceScrollableConcrete)ws.Target).PopHistoryStack();
                 }
                 catch (Exception e)
                 {
@@ -7098,13 +6934,13 @@ IInterfaceScrollable
         private static void setup_on_first_touch(System.IntPtr obj, System.IntPtr pd, Efl.Ui.Focus.Direction direction, Efl.Ui.Focus.IObject entry)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_setup_on_first_touch was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
                                                             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).SetupOnFirstTouch(direction, entry);
+                    ((IInterfaceScrollableConcrete)ws.Target).SetupOnFirstTouch(direction, entry);
                 }
                 catch (Exception e)
                 {
@@ -7133,13 +6969,13 @@ IInterfaceScrollable
         private static void dirty_logic_freeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_freeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).FreezeDirtyLogic();
+                    ((IInterfaceScrollableConcrete)ws.Target).FreezeDirtyLogic();
                 }
                 catch (Exception e)
                 {
@@ -7168,13 +7004,13 @@ IInterfaceScrollable
         private static void dirty_logic_unfreeze(System.IntPtr obj, System.IntPtr pd)
         {
             Eina.Log.Debug("function efl_ui_focus_manager_dirty_logic_unfreeze was called");
-            Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
-            if (wrapper != null)
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);
+            if (ws != null)
             {
             
                 try
                 {
-                    ((IInterfaceScrollableConcrete)wrapper).DirtyLogicUnfreeze();
+                    ((IInterfaceScrollableConcrete)ws.Target).DirtyLogicUnfreeze();
                 }
                 catch (Exception e)
                 {
@@ -7192,7 +7028,7 @@ IInterfaceScrollable
 
         private static efl_ui_focus_manager_dirty_logic_unfreeze_delegate efl_ui_focus_manager_dirty_logic_unfreeze_static_delegate;
 
-        #pragma warning restore CA1707, SA1300, SA1600
+        #pragma warning restore CA1707, CS1591, SA1300, SA1600
 
 }
 }
index a410a09..9e73ca4 100644 (file)
@@ -48,6 +48,10 @@ public class Globals
     public delegate  IntPtr
         _efl_add_internal_start_delegate([MarshalAs(UnmanagedType.LPStr)] String file, int line,
                                 IntPtr klass, IntPtr parent, byte is_ref, byte is_fallback);
+
+    [DllImport(efl.Libs.CustomExports)] public static extern IntPtr efl_mono_wrapper_supervisor_get(IntPtr eo);
+    [DllImport(efl.Libs.CustomExports)] public static extern void efl_mono_wrapper_supervisor_set(IntPtr eo, IntPtr ws);
+
     [DllImport(efl.Libs.Eo)] public static extern IntPtr
         _efl_add_internal_start([MarshalAs(UnmanagedType.LPStr)] String file, int line,
                                 IntPtr klass, IntPtr parent, byte is_ref, byte is_fallback);
@@ -68,11 +72,11 @@ public class Globals
     [DllImport(efl.Libs.Eo)] public static extern int
         efl_ref_count(IntPtr eo);
     [DllImport(efl.Libs.CustomExports)] public static extern void
-        efl_mono_gchandle_callbacks_set(Efl.FreeGCHandleCb freeGCHandleCb, Efl.RemoveEventsCb removeEventsCb);
+        efl_mono_wrapper_supervisor_callbacks_set(Efl.FreeWrapperSupervisorCb freeWrapperSupervisorCb);
     [DllImport(efl.Libs.CustomExports)] public static extern void
-        efl_mono_native_dispose(IntPtr eo, IntPtr gcHandle);
+        efl_mono_native_dispose(IntPtr eo);
     [DllImport(efl.Libs.CustomExports)] public static extern void
-        efl_mono_thread_safe_native_dispose(IntPtr eo, IntPtr gcHandle);
+        efl_mono_thread_safe_native_dispose(IntPtr eo);
     [DllImport(efl.Libs.CustomExports)] public static extern void
         efl_mono_thread_safe_efl_unref(IntPtr eo);
 
@@ -231,7 +235,7 @@ public class Globals
         description.version = 2; // EO_VERSION
         description.name = class_name;
         description.class_type = 0; // REGULAR
-        description.data_size = (UIntPtr)8;
+        description.data_size = (UIntPtr)0;
         description.class_initializer = IntPtr.Zero;
         description.class_constructor = IntPtr.Zero;
         description.class_destructor = IntPtr.Zero;
@@ -246,6 +250,8 @@ public class Globals
         IntPtr description_ptr = Eina.MemoryNative.Alloc(Marshal.SizeOf(description));
         Marshal.StructureToPtr(description, description_ptr, false);
 
+        // FIXME: description_ptr seems to be leaking memory even after an eo_shutdown
+
         var interface_list = EoG.get_efl_interfaces(type);
 
         Eina.Log.Debug($"Going to register new class named {class_name}");
@@ -442,60 +448,26 @@ public class Globals
         }
     }
 
-    public static IntPtr instantiate_start(IntPtr klass, Efl.Object parent,
-                                           [CallerFilePath] string file = null,
-                                           [CallerLineNumber] int line = 0)
+    public static Efl.Eo.WrapperSupervisor WrapperSupervisorPtrToManaged(IntPtr wsPtr)
     {
-        Eina.Log.Debug($"Instantiating from klass 0x{klass.ToInt64():x}");
-        System.IntPtr parent_ptr = System.IntPtr.Zero;
-        if (parent != null)
-        {
-            parent_ptr = parent.NativeHandle;
-        }
-
-        System.IntPtr eo = Efl.Eo.Globals._efl_add_internal_start(file, line, klass, parent_ptr, 1, 0);
-        if (eo == System.IntPtr.Zero)
-        {
-            throw new Exception("Instantiation failed");
-        }
-
-        Eina.Log.Debug($"Eo instance right after internal_start 0x{eo.ToInt64():x} with refcount {Efl.Eo.Globals.efl_ref_count(eo)}");
-        Eina.Log.Debug($"Parent was 0x{parent_ptr.ToInt64()}");
-        return eo;
+        return (Efl.Eo.WrapperSupervisor) GCHandle.FromIntPtr(wsPtr).Target;
     }
 
-    public static IntPtr instantiate_end(IntPtr eo)
+    public static Efl.Eo.WrapperSupervisor GetWrapperSupervisor(IntPtr eo)
     {
-        Eina.Log.Debug("calling efl_add_internal_end");
-        eo = Efl.Eo.Globals._efl_add_end(eo, 1, 0);
-        Eina.Log.Debug($"efl_add_end returned eo 0x{eo.ToInt64():x}");
-        return eo;
-    }
-
-    public static void PrivateDataSet(Efl.Eo.IWrapper obj)
-    {
-        Eina.Log.Debug($"Calling data_scope_get with obj {obj.NativeHandle.ToInt64():x} and klass {obj.NativeClass.ToInt64():x}");
-        IntPtr pd = Efl.Eo.Globals.efl_data_scope_get(obj.NativeHandle, obj.NativeClass);
+        var wsPtr = Efl.Eo.Globals.efl_mono_wrapper_supervisor_get(eo);
+        if (wsPtr == IntPtr.Zero)
         {
-            GCHandle gch = GCHandle.Alloc(obj);
-            EolianPD epd;
-            epd.pointer = GCHandle.ToIntPtr(gch);
-            Marshal.StructureToPtr(epd, pd, false);
+            return null;
         }
+
+        return WrapperSupervisorPtrToManaged(wsPtr);
     }
 
-    public static Efl.Eo.IWrapper PrivateDataGet(IntPtr pd)
+    public static void SetWrapperSupervisor(IntPtr eo, Efl.Eo.WrapperSupervisor ws)
     {
-        EolianPD epd = (EolianPD)Marshal.PtrToStructure(pd, typeof(EolianPD));
-        if (epd.pointer != IntPtr.Zero)
-        {
-            GCHandle gch = GCHandle.FromIntPtr(epd.pointer);
-            return (Efl.Eo.IWrapper)gch.Target;
-        }
-        else
-        {
-            return null;
-        }
+        GCHandle gch = GCHandle.Alloc(ws);
+        Efl.Eo.Globals.efl_mono_wrapper_supervisor_set(eo, GCHandle.ToIntPtr(gch));
     }
 
     public static void free_dict_values(Dictionary<String, IntPtr> dict)
@@ -601,93 +573,101 @@ public class Globals
             return null;
         }
 
-        IntPtr eoKlass = efl_class_get(handle);
-
-        if (eoKlass == IntPtr.Zero)
+        Efl.Eo.Globals.efl_ref(handle);
+        try
         {
-            throw new InvalidOperationException($"Can't get Eo class for object handle 0x{handle.ToInt64():x}");
-        }
+            var ws = Efl.Eo.Globals.GetWrapperSupervisor(handle);
+            if (ws != null && ws.Target != null)
+            {
+                if (!shouldIncRef)
+                {
+                    Efl.Eo.Globals.efl_unref(handle);
+                }
 
-        var managedType = ClassRegister.GetManagedType(eoKlass);
+                return ws.Target;
+            }
 
-        if (managedType == null)
-        {
-            IntPtr nativeName = efl_class_name_get(eoKlass);
-            var name = Eina.StringConversion.NativeUtf8ToManagedString(nativeName);
+            IntPtr eoKlass = efl_class_get(handle);
 
-            throw new InvalidOperationException($"Can't get Managed class for object handle 0x{handle.ToInt64():x} with native class [{name}]");
-        }
+            if (eoKlass == IntPtr.Zero)
+            {
+                throw new InvalidOperationException($"Can't get Eo class for object handle 0x{handle.ToInt64():x}");
+            }
 
-        // Pure C# classes that inherit from generated classes store their C# instance in their
-        // Eo private data field.
-        if (!IsGeneratedClass(managedType))
-        {
-            Efl.Eo.IWrapper instance = null;
-            IntPtr pd = efl_data_scope_get(handle, eoKlass);
+            var managedType = ClassRegister.GetManagedType(eoKlass);
 
-            if (pd != IntPtr.Zero)
+            if (managedType == null)
             {
-                instance = PrivateDataGet(pd);
-            }
+                IntPtr nativeName = efl_class_name_get(eoKlass);
+                var name = Eina.StringConversion.NativeUtf8ToManagedString(nativeName);
 
-            return instance;
-        }
+                throw new InvalidOperationException($"Can't get Managed class for object handle 0x{handle.ToInt64():x} with native class [{name}]");
+            }
 
-        System.Reflection.ConstructorInfo constructor = null;
+            Debug.Assert(IsGeneratedClass(managedType));
+            System.Reflection.ConstructorInfo constructor = null;
 
-        try
-        {
-            var flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
-            constructor = managedType.GetConstructor(flags, null, new Type[1] { typeof(System.IntPtr) }, null);
-        }
-        catch (InvalidOperationException)
-        {
-            throw new InvalidOperationException($"Can't get constructor for type {managedType}");
-        }
+            try
+            {
+                var flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
+                constructor = managedType.GetConstructor(flags, null, new Type[1] { typeof(System.IntPtr) }, null);
+            }
+            catch (InvalidOperationException)
+            {
+                throw new InvalidOperationException($"Can't get constructor for type {managedType}");
+            }
 
-        var ret = constructor.Invoke(new object[1] { handle }) as Efl.Eo.IWrapper;
+            var ret = (Efl.Eo.IWrapper) constructor.Invoke(new object[1] { handle });
 
-        if (ret != null && shouldIncRef)
-            Efl.Eo.Globals.efl_ref(handle);
+            if (ret == null)
+            {
+                throw new InvalidOperationException($"Can't construct type {managedType} from IntPtr handle");
+            }
 
-        return ret;
-    }
+            if (shouldIncRef)
+            {
+                Efl.Eo.Globals.efl_ref(handle);
+            }
 
-    private static Efl.FreeGCHandleCb FreeGCHandleCallbackDelegate = new Efl.FreeGCHandleCb(FreeGCHandleCallback);
-    public static void FreeGCHandleCallback(IntPtr gcHandlePtr)
-    {
-        try
-        {
-            GCHandle gcHandle = GCHandle.FromIntPtr(gcHandlePtr);
-            gcHandle.Free();
+            return ret;
         }
-        catch (Exception e)
+        finally
         {
-            Eina.Log.Error(e.ToString());
-            Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
+            Efl.Eo.Globals.efl_unref(handle);
         }
     }
 
-    private static Efl.RemoveEventsCb RemoveEventsCallbackDelegate = new Efl.RemoveEventsCb(RemoveEventsCallback);
-    public static void RemoveEventsCallback(IntPtr obj, IntPtr gcHandlePtr)
+    private static Efl.FreeWrapperSupervisorCb FreeWrapperSupervisorCallbackDelegate = new Efl.FreeWrapperSupervisorCb(FreeWrapperSupervisorCallback);
+    public static void FreeWrapperSupervisorCallback(IntPtr eo)
     {
         try
         {
-            GCHandle gcHandle = GCHandle.FromIntPtr(gcHandlePtr);
-            var eoEvents = gcHandle.Target as Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>;
-            if (eoEvents == null)
+            var wsPtr = Efl.Eo.Globals.efl_mono_wrapper_supervisor_get(eo);
+            if (wsPtr == IntPtr.Zero)
             {
-                Eina.Log.Error($"Invalid event dictionary [GCHandle pointer: {gcHandlePtr}]");
+                Eina.Log.Error($"Invalid wrapper supervisor [Eo pointer: {eo.ToInt64():x}]");
                 return;
             }
 
-            foreach (var item in eoEvents)
+            Efl.Eo.Globals.efl_mono_wrapper_supervisor_set(eo, IntPtr.Zero);
+
+            GCHandle gch = GCHandle.FromIntPtr(wsPtr);
+            var ws = (Efl.Eo.WrapperSupervisor) gch.Target;
+            foreach (var item in ws.EoEvents)
             {
-                if (!efl_event_callback_del(obj, item.Key.desc, item.Value.evtCallerPtr, IntPtr.Zero))
+                if (!efl_event_callback_del(eo, item.Key.desc, item.Value.evtCallerPtr, wsPtr))
                 {
-                    Eina.Log.Error($"Failed to remove event proxy for event {item.Key.desc} [cb: {item.Value.evtCallerPtr}]");
+                    Eina.Log.Error($"Failed to remove event proxy for event {item.Key.desc} [eo: {eo.ToInt64():x}; cb: {item.Value.evtCallerPtr.ToInt64():x}]");
                 }
             }
+
+            // Free the native eo
+            Efl.Eo.Globals.efl_unref(eo);
+
+            // now the WrapperSupervisor can be collected, and so its member:
+            //     - the event dictionary
+            //     - and the EoWrapper if it is still pinned
+            gch.Free();
         }
         catch (Exception e)
         {
@@ -698,7 +678,7 @@ public class Globals
 
     public static void SetNativeDisposeCallbacks()
     {
-        efl_mono_gchandle_callbacks_set(FreeGCHandleCallbackDelegate, RemoveEventsCallbackDelegate);
+        efl_mono_wrapper_supervisor_callbacks_set(FreeWrapperSupervisorCallbackDelegate);
     }
 
     public static void ThreadSafeFreeCbExec(EinaFreeCb cbFreeCb, IntPtr cbData)
@@ -800,8 +780,6 @@ public static class ClassRegister
         string name = Eina.StringConversion.NativeUtf8ToManagedString(namePtr)
                       .Replace("_", ""); // Convert Efl C name to C# name
 
-        var klass_type = Efl.Eo.Globals.efl_class_type_get(klass);
-
         // Check if this is an internal implementation of an abstract class
         var abstract_impl_suffix = "Realized";
         if (name.EndsWith(abstract_impl_suffix))
@@ -813,6 +791,7 @@ public static class ClassRegister
         }
 
         // When converting to managed, interfaces and mixins gets the 'I' prefix.
+        var klass_type = Efl.Eo.Globals.efl_class_type_get(klass);
         if (klass_type == Efl.Eo.Globals.EflClassType.Interface || klass_type == Efl.Eo.Globals.EflClassType.Mixin)
         {
             var pos = name.LastIndexOf(".");
index 24ed729..80c6bdc 100644 (file)
@@ -44,12 +44,6 @@ public struct Efl_Object_Ops
     public UIntPtr count;
 };
 
-[StructLayout(LayoutKind.Sequential)]
-public struct EolianPD
-{
-    public IntPtr pointer;
-}
-
 #pragma warning disable 0169
 
 public struct EvasObjectBoxLayout
@@ -115,8 +109,7 @@ public struct EventDescription
 };
 
 public delegate void EventCb(System.IntPtr data, ref Event.NativeStruct evt);
-public delegate void FreeGCHandleCb(System.IntPtr gcHandle);
-public delegate void RemoveEventsCb(System.IntPtr obj, System.IntPtr gcHandle);
+public delegate void FreeWrapperSupervisorCb(System.IntPtr obj);
 
 [StructLayout(LayoutKind.Sequential)]
 public struct TextCursorCursor