tasn pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=7d19def2139a6e2ce9ff72a00b5e49a2497cee20

commit 7d19def2139a6e2ce9ff72a00b5e49a2497cee20
Author: Vitor Sousa <vitorsousasi...@gmail.com>
Date:   Thu Apr 23 11:46:48 2015 +0100

    Revised classes and interfaces in .eo files and added missing attributes
    
    Summary:
    Some newly implemented attributes are not present in several classes and
    interfaces.
    
    This patch:
    - Adds some attributes (like @nullable, @optional, own, free) to several 
.eo files.
    - Changes some eina types names to the equivalent eolian name (like 
"Eina_Bool" to "bool")
    - Adds the element type of lists and iterators.
    
    Reviewers: felipealmeida, tasn
    
    Reviewed By: tasn
    
    Differential Revision: https://phab.enlightenment.org/D2350
---
 src/lib/elm_app_client.eo                 |  8 ++--
 src/lib/elm_app_client_view.eo            | 12 +++---
 src/lib/elm_app_server.eo                 |  4 +-
 src/lib/elm_app_server_view.eo            |  4 +-
 src/lib/elm_box.eo                        |  8 ++--
 src/lib/elm_check.eo                      |  2 +-
 src/lib/elm_container.eo                  |  6 +--
 src/lib/elm_ctxpopup.eo                   | 12 +++---
 src/lib/elm_ctxpopup_item.eo              |  4 +-
 src/lib/elm_datetime.eo                   |  2 +-
 src/lib/elm_dayselector.eo                |  4 +-
 src/lib/elm_diskselector.eo               |  6 +--
 src/lib/elm_entry.eo                      | 26 ++++++------
 src/lib/elm_flipselector.eo               |  8 ++--
 src/lib/elm_gengrid.eo                    | 26 ++++++------
 src/lib/elm_genlist.eo                    | 36 ++++++++--------
 src/lib/elm_genlist_item.eo               |  4 +-
 src/lib/elm_gesture_layer.eo              |  6 +--
 src/lib/elm_glview.eo                     |  6 +--
 src/lib/elm_grid.eo                       |  2 +-
 src/lib/elm_hoversel.eo                   | 12 +++---
 src/lib/elm_hoversel_item.eo              |  4 +-
 src/lib/elm_icon.eo                       |  4 +-
 src/lib/elm_image.eo                      |  6 +--
 src/lib/elm_index.eo                      | 22 +++++-----
 src/lib/elm_interface_atspi_accessible.eo |  6 +--
 src/lib/elm_interface_atspi_action.eo     |  4 +-
 src/lib/elm_interface_atspi_text.eo       | 14 +++----
 src/lib/elm_interface_scrollable.eo       | 48 ++++++++++-----------
 src/lib/elm_layout.eo                     | 16 +++----
 src/lib/elm_list.eo                       | 44 ++++++++++----------
 src/lib/elm_list_item.eo                  |  6 +--
 src/lib/elm_map.eo                        | 16 +++----
 src/lib/elm_menu.eo                       | 10 ++---
 src/lib/elm_menu_item.eo                  |  4 +-
 src/lib/elm_multibuttonentry.eo           | 22 +++++-----
 src/lib/elm_multibuttonentry_item.eo      |  2 +-
 src/lib/elm_naviframe.eo                  | 26 ++++++------
 src/lib/elm_naviframe_item.eo             | 10 ++---
 src/lib/elm_photo.eo                      |  4 +-
 src/lib/elm_popup.eo                      |  6 +--
 src/lib/elm_prefs.eo                      |  2 +-
 src/lib/elm_progressbar.eo                |  6 +--
 src/lib/elm_radio.eo                      |  2 +-
 src/lib/elm_segment_control.eo            |  8 ++--
 src/lib/elm_slider.eo                     | 12 +++---
 src/lib/elm_slideshow.eo                  |  8 ++--
 src/lib/elm_spinner.eo                    |  2 +-
 src/lib/elm_systray.eo                    | 12 +++---
 src/lib/elm_thumb.eo                      |  4 +-
 src/lib/elm_toolbar.eo                    | 24 +++++------
 src/lib/elm_toolbar_item.eo               | 12 +++---
 src/lib/elm_web.eo                        | 28 ++++++-------
 src/lib/elm_widget.eo                     | 40 +++++++++---------
 src/lib/elm_widget_item.eo                | 69 +++++++++++++++----------------
 src/lib/elm_win.eo                        |  6 +--
 56 files changed, 353 insertions(+), 354 deletions(-)

diff --git a/src/lib/elm_app_client.eo b/src/lib/elm_app_client.eo
index 6566158..a229bfa 100644
--- a/src/lib/elm_app_client.eo
+++ b/src/lib/elm_app_client.eo
@@ -8,7 +8,7 @@ class Elm_App_Client (Eo.Base)
             /*@ Return a iterator with all views of application. */
          }
          values {
-            iterator *ret; /*@ The iterator with all views, must be freed 
after use */
+            free(own(iterator<Elm_App_Client_View *> *), eina_iterator_free) 
ret; /*@ The iterator with all views, must be freed after use */
          }
       }
       package {
@@ -37,9 +37,9 @@ class Elm_App_Client (Eo.Base)
       view_open {
          /*@ Open an application view. */
          params {
-            @in Eina_Value *args; /*@ an array of */
-            @in Elm_App_Client_Open_View_Cb view_open_cb; /*@ callback to be 
called when view open */
-            @in const(void)* data; /*@ calback user data */
+            @in Eina_Value *args @optional; /*@ an array of */
+            @in Elm_App_Client_Open_View_Cb view_open_cb @optional; /*@ 
callback to be called when view open */
+            @in const(void)* data @optional; /*@ calback user data */
          }
          return: Elm_App_Client_Pending *; /* handler to cancel the view 
opening if it takes to long */
       }
diff --git a/src/lib/elm_app_client_view.eo b/src/lib/elm_app_client_view.eo
index c16af30..15e3a9a 100644
--- a/src/lib/elm_app_client_view.eo
+++ b/src/lib/elm_app_client_view.eo
@@ -90,22 +90,22 @@ class Elm_App_Client_View (Eo.Base)
       pause {
          /*@ Pause view */
          params {
-            @in Elm_App_Client_View_Cb cb; /*@ callback to be called when view 
was paused */
-            @in const(void)* data; /*@ callback user data */
+            @in Elm_App_Client_View_Cb cb @optional; /*@ callback to be called 
when view was paused */
+            @in const(void)* data @optional; /*@ callback user data */
          }
       }
       resume {
          /*@ Resume view */
          params {
-            @in Elm_App_Client_View_Cb cb; /*@ callback to be called when view 
was resumed */
-            @in const(void)* data; /*@ callback user data */
+            @in Elm_App_Client_View_Cb cb @optional; /*@ callback to be called 
when view was resumed */
+            @in const(void)* data @optional; /*@ callback user data */
          }
       }
       close {
          /*@ Close view */
          params {
-            @in Elm_App_Client_View_Cb cb; /*@ callback to be called when view 
was closed */
-            @in const(void)* data; /*@ callback user data */
+            @in Elm_App_Client_View_Cb cb @optional; /*@ callback to be called 
when view was closed */
+            @in const(void)* data @optional; /*@ callback user data */
          }
       }
    }
diff --git a/src/lib/elm_app_server.eo b/src/lib/elm_app_server.eo
index a15ebca..5ac8b53 100644
--- a/src/lib/elm_app_server.eo
+++ b/src/lib/elm_app_server.eo
@@ -17,7 +17,7 @@ class Elm_App_Server (Eo.Base)
             /*@ Return a iterator with all views of application */
          }
          values {
-            iterator *ret; /*@ Iterator with all views of application, you 
must free iterator after use */
+            free(own(iterator<Elm_App_Server_View *> *), eina_iterator_free) 
ret; /*@ Iterator with all views of application, you must free iterator after 
use */
          }
       }
       path {
@@ -77,7 +77,7 @@ class Elm_App_Server (Eo.Base)
       title_set {
          /*@ Set a title to application. */
          params {
-            @in const(char)* title; /*@ title of application */
+            @in const(char)* title @nullable; /*@ title of application */
          }
       }
       title_get {
diff --git a/src/lib/elm_app_server_view.eo b/src/lib/elm_app_server_view.eo
index c9c02d0..dd05639 100644
--- a/src/lib/elm_app_server_view.eo
+++ b/src/lib/elm_app_server_view.eo
@@ -36,7 +36,7 @@ class Elm_App_Server_View (Eo.Base)
          get {
          }
          values {
-            const(char)* title;
+            const(char)* title @nullable;
          }
       }
       window {
@@ -87,7 +87,7 @@ class Elm_App_Server_View (Eo.Base)
          /*@ Class constructor of elm_app_server_view */
          legacy: null;
          params {
-            @in const(char)* id; /*@ identifier of view */
+            @in const(char)* id @nullable; /*@ identifier of view */
          }
       }
       pause {
diff --git a/src/lib/elm_box.eo b/src/lib/elm_box.eo
index 8e6dda4..e74b8f4 100644
--- a/src/lib/elm_box.eo
+++ b/src/lib/elm_box.eo
@@ -135,9 +135,9 @@ class Elm.Box (Elm.Widget)
             @ingroup Box */
          }
          values {
-            Evas_Object_Box_Layout cb; /*@ The callback function used for 
layout */
-            const(void)* data; /*@ Data that will be passed to layout function 
*/
-            Ecore_Cb free_data; /*@ Function called to free @p data */
+            Evas_Object_Box_Layout cb @nullable; /*@ The callback function 
used for layout */
+            const(void)* data @optional; /*@ Data that will be passed to 
layout function */
+            Ecore_Cb free_data @optional; /*@ Function called to free @p data 
*/
          }
       }
       children {
@@ -151,7 +151,7 @@ class Elm.Box (Elm.Widget)
             You must free this list with eina_list_free() once you are done 
with it.
 
             @ingroup Box */
-            return: own(list<Evas_Object*>*);
+            return: free(own(list<Evas_Object*>*), eina_list_free) 
@warn_unused;
          }
       }
    }
diff --git a/src/lib/elm_check.eo b/src/lib/elm_check.eo
index e5992b7..085fdd8 100644
--- a/src/lib/elm_check.eo
+++ b/src/lib/elm_check.eo
@@ -40,7 +40,7 @@ class Elm.Check (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
             @ingroup Check */
          }
          values {
-            bool *statep; /*@ Pointer to the boolean to modify */
+            bool *statep @nullable; /*@ Pointer to the boolean to modify */
          }
       }
    }
diff --git a/src/lib/elm_container.eo b/src/lib/elm_container.eo
index 86673f5..a291965 100644
--- a/src/lib/elm_container.eo
+++ b/src/lib/elm_container.eo
@@ -9,7 +9,7 @@ class Elm.Container (Elm.Widget)
             /*@ Get the list of swallow parts in the object. */
          }
          values {
-            list *ret; /*@ list */
+            free(own(list<Evas_Object *> *), eina_list_free) ret; /*@ list */
          }
       }
    }
@@ -25,14 +25,14 @@ class Elm.Container (Elm.Widget)
       content_get {
          /*@ Get the object swallowed in the given part of the container. */
          params {
-            @in const(char)* name; /*@ the part in which the object is 
swallowed */
+            @in const(char)* name @nullable; /*@ the part in which the object 
is swallowed */
          }
          return: Evas_Object *;
       }
       content_unset {
          /*@ Unswallow the object in the given part of the container and 
return it. */
          params {
-            @in const(char)* name;
+            @in const(char)* name @nullable;
          }
          return: Evas_Object *;
       }
diff --git a/src/lib/elm_ctxpopup.eo b/src/lib/elm_ctxpopup.eo
index 37afca8..f85b47b 100644
--- a/src/lib/elm_ctxpopup.eo
+++ b/src/lib/elm_ctxpopup.eo
@@ -216,9 +216,9 @@ class Elm.Ctxpopup (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The Label of the new item */
-            @in Evas_Object *icon; /*@ Icon to be set on new item */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when item 
selected */
-            @in const(void)* data; /*@ Data passed to @p func */
+            @in Evas_Object *icon @optional; /*@ Icon to be set on new item */
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when item selected */
+            @in const(void)* data @optional; /*@ Data passed to @p func */
          }
       }
       item_prepend {
@@ -238,9 +238,9 @@ class Elm.Ctxpopup (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The Label of the new item */
-            @in Evas_Object *icon; /*@ Icon to be set on new item */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when item 
selected */
-            @in const(void)* data; /*@ Data passed to @p func */
+            @in Evas_Object *icon @optional; /*@ Icon to be set on new item */
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when item selected */
+            @in const(void)* data @optional; /*@ Data passed to @p func */
          }
       }
    }
diff --git a/src/lib/elm_ctxpopup_item.eo b/src/lib/elm_ctxpopup_item.eo
index 10bdaaa..8542f01 100644
--- a/src/lib/elm_ctxpopup_item.eo
+++ b/src/lib/elm_ctxpopup_item.eo
@@ -40,8 +40,8 @@ class Elm.Ctxpopup_Item(Elm.Widget_Item)
    methods {
       init {
          params {
-            Evas_Smart_Cb func;
-            const(void) * data;
+            Evas_Smart_Cb func @nullable;
+            const(void) * data @optional;
          }
       }
    }
diff --git a/src/lib/elm_datetime.eo b/src/lib/elm_datetime.eo
index 387b420..cc022de 100644
--- a/src/lib/elm_datetime.eo
+++ b/src/lib/elm_datetime.eo
@@ -82,7 +82,7 @@ class Elm.Datetime (Elm.Layout)
             /*@ Get the datetime format. */
          }
          values {
-            const(char)* fmt; /*@ The datetime format */
+            const(char)* fmt @nullable; /*@ The datetime format */
          }
       }
    }
diff --git a/src/lib/elm_dayselector.eo b/src/lib/elm_dayselector.eo
index 5a80b02..70c85a2 100644
--- a/src/lib/elm_dayselector.eo
+++ b/src/lib/elm_dayselector.eo
@@ -105,7 +105,7 @@ class Elm.Dayselector (Elm.Layout)
          @ingroup Dayselector */
 
          params {
-            @in const(char)* *weekdays; /*@ Array of seven strings to be used 
as weekday names.
+            @in const(char)* *weekdays @nullable; /*@ Array of seven strings 
to be used as weekday names.
             @warning It must have 7 elements, or it will access invalid memory.
             @warning The strings must be NULL terminated ('@\0'). */
          }
@@ -125,7 +125,7 @@ class Elm.Dayselector (Elm.Layout)
          @since 1.8
 
          @ingroup Dayselector */
-         return: list *;
+         return: own(list<own(Eina_Stringshare *)> *) @warn_unused;
       }
       day_selected_set {
          /*@
diff --git a/src/lib/elm_diskselector.eo b/src/lib/elm_diskselector.eo
index 72cea88..e379c13 100644
--- a/src/lib/elm_diskselector.eo
+++ b/src/lib/elm_diskselector.eo
@@ -215,11 +215,11 @@ class Elm.Diskselector (Elm.Widget, 
Elm_Interface_Scrollable,
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The label of the diskselector item. */
-            @in Evas_Object *icon; /*@ The icon object to use at left side of 
the item. An
+            @in Evas_Object *icon @optional; /*@ The icon object to use at 
left side of the item. An
             icon can be any Evas object, but usually it is an icon created
             with elm_icon_add(). */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
selected. */
-            @in const(void)* data; /*@ The data to associate with the item for 
related callbacks. */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is selected. */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related callbacks. */
          }
       }
       clear {
diff --git a/src/lib/elm_entry.eo b/src/lib/elm_entry.eo
index 3f04f48..5fa076e 100644
--- a/src/lib/elm_entry.eo
+++ b/src/lib/elm_entry.eo
@@ -237,7 +237,7 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interface,
             @ingroup Entry */
          }
          values {
-            const(char)* style; /*@ The style to use for the underlying hover 
*/
+            const(char)* style @nullable; /*@ The style to use for the 
underlying hover */
          }
       }
       single_line {
@@ -392,7 +392,7 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interface,
             @ingroup Entry */
          }
          values {
-            Evas_Object *parent; /*@ The object to use as parent for the hover 
*/
+            Evas_Object *parent @nullable; /*@ The object to use as parent for 
the hover */
          }
       }
       prediction_allow {
@@ -737,7 +737,7 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interface,
             @return The text pointed by the cursors.
 
             @ingroup Entry */
-            return: char *;
+            return: own(char *) @warn_unused;
          }
       }
       selection {
@@ -806,7 +806,7 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interface,
 
          params {
             @in Elm_Entry_Item_Provider_Cb func; /*@ The function called to 
provide the item object */
-            @in void *data; /*@ The data passed to @p func */
+            @in void *data @optional; /*@ The data passed to @p func */
          }
       }
       input_panel_show {
@@ -909,7 +909,7 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interface,
 
          params {
             @in Elm_Entry_Item_Provider_Cb func; /*@ The function called to 
provide the item object */
-            @in void *data; /*@ The data passed to @p func */
+            @in void *data @optional; /*@ The data passed to @p func */
          }
       }
       text_style_user_peek @const {
@@ -1073,7 +1073,7 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interface,
 
          params {
             @in Elm_Entry_Filter_Cb func; /*@ The filter function to remove */
-            @in void *data; /*@ The user data passed when adding the function 
*/
+            @in void *data @optional; /*@ The user data passed when adding the 
function */
          }
       }
       item_provider_append {
@@ -1093,7 +1093,7 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interface,
 
          params {
             @in Elm_Entry_Item_Provider_Cb func; /*@ The function called to 
provide the item object */
-            @in void *data; /*@ The data passed to @p func */
+            @in void *data @optional; /*@ The data passed to @p func */
          }
       }
       markup_filter_append {
@@ -1113,7 +1113,7 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interface,
 
          params {
             @in Elm_Entry_Filter_Cb func; /*@ The function to use as text 
filter */
-            @in void *data; /*@ User data to pass to @p func */
+            @in void *data @optional; /*@ User data to pass to @p func */
          }
       }
       entry_append {
@@ -1149,11 +1149,11 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interface,
          @ingroup Entry */
 
          params {
-            @in const(char)* label; /*@ The item's text label */
-            @in const(char)* icon_file; /*@ The item's icon file */
+            @in const(char)* label @optional; /*@ The item's text label */
+            @in const(char)* icon_file @optional; /*@ The item's icon file */
             @in Elm_Icon_Type icon_type; /*@ The item's icon type */
-            @in Evas_Smart_Cb func; /*@ The callback to execute when the item 
is clicked */
-            @in const(void)* data; /*@ The data to associate with the item for 
related functions */
+            @in Evas_Smart_Cb func @optional; /*@ The callback to execute when 
the item is clicked */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related functions */
          }
       }
       markup_filter_prepend {
@@ -1167,7 +1167,7 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interface,
 
          params {
             @in Elm_Entry_Filter_Cb func; /*@ The function to use as text 
filter */
-            @in void *data; /*@ User data to pass to @p func */
+            @in void *data @optional; /*@ User data to pass to @p func */
          }
       }
    }
diff --git a/src/lib/elm_flipselector.eo b/src/lib/elm_flipselector.eo
index e3f7f7a..420866d 100644
--- a/src/lib/elm_flipselector.eo
+++ b/src/lib/elm_flipselector.eo
@@ -135,9 +135,9 @@ class Elm.Flipselector (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The (text) label of the new item */
-            @in Evas_Smart_Cb func; /*@ Convenience callback function to take 
place when
+            @in Evas_Smart_Cb func @optional; /*@ Convenience callback 
function to take place when
             item is selected */
-            @in void *data; /*@ Data passed to @p func, above */
+            @in void *data @optional; /*@ Data passed to @p func, above */
          }
       }
       flip_next {
@@ -174,9 +174,9 @@ class Elm.Flipselector (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The (text) label of the new item */
-            @in Evas_Smart_Cb func; /*@ Convenience callback function to take 
place when
+            @in Evas_Smart_Cb func @optional; /*@ Convenience callback 
function to take place when
             item is selected */
-            @in const(void)* data; /*@ Data passed to @p func, above */
+            @in const(void)* data @optional; /*@ Data passed to @p func, above 
*/
          }
       }
       flip_prev {
diff --git a/src/lib/elm_gengrid.eo b/src/lib/elm_gengrid.eo
index f559d4f..4c2a892 100644
--- a/src/lib/elm_gengrid.eo
+++ b/src/lib/elm_gengrid.eo
@@ -373,7 +373,7 @@ class Elm.Gengrid (Elm.Layout, Elm_Interface_Scrollable,
             @see elm_gengrid_realized_items_update()
 
             @ingroup Gengrid */
-            return: list *;
+            return: free(own(list<Elm_Gen_Item *> *), eina_list_free) 
@warn_unused;
          }
       }
       first_item {
@@ -410,7 +410,7 @@ class Elm.Gengrid (Elm.Layout, Elm_Interface_Scrollable,
             @see elm_gengrid_selected_item_get()
 
             @ingroup Gengrid */
-            return: const(list)*;
+            return: const(list<Elm_Object_Item *>)*;
          }
       }
       last_item {
@@ -483,9 +483,9 @@ class Elm.Gengrid (Elm.Layout, Elm_Interface_Scrollable,
             @in const(Elm_Gengrid_Item_Class)* itc; /*@ The item class for the 
item. */
             @in const(void)* data; /*@ The item data. */
             @in Elm_Object_Item *relative; /*@ The item to place this new one 
before. */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when the 
item is
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when the item is
             selected. */
-            @in const(void)* func_data; /*@ Data to be passed to @p func. */
+            @in const(void)* func_data @optional; /*@ Data to be passed to @p 
func. */
          }
       }
       realized_items_update {
@@ -524,9 +524,9 @@ class Elm.Gengrid (Elm.Layout, Elm_Interface_Scrollable,
             @in const(Elm_Gengrid_Item_Class)* itc; /*@ The item class for the 
item. */
             @in const(void)* data; /*@ The item data. */
             @in Elm_Object_Item *relative; /*@ The item to place this new one 
after. */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when the 
item is
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when the item is
             selected. */
-            @in const(void)* func_data; /*@ Data to be passed to @p func. */
+            @in const(void)* func_data @optional; /*@ Data to be passed to @p 
func. */
          }
       }
       items_count @const {
@@ -588,9 +588,9 @@ class Elm.Gengrid (Elm.Layout, Elm_Interface_Scrollable,
          params {
             @in const(Elm_Gengrid_Item_Class)* itc; /*@ The item class for the 
item. */
             @in const(void)* data; /*@ The item data. */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when the 
item is
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when the item is
             selected. */
-            @in const(void)* func_data; /*@ Data to be passed to @p func. */
+            @in const(void)* func_data @optional; /*@ Data to be passed to @p 
func. */
          }
       }
       item_prepend {
@@ -612,9 +612,9 @@ class Elm.Gengrid (Elm.Layout, Elm_Interface_Scrollable,
          params {
             @in const(Elm_Gengrid_Item_Class)* itc; /*@ The item class for the 
item. */
             @in const(void)* data; /*@ The item data. */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when the 
item is
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when the item is
             selected. */
-            @in const(void)* func_data; /*@ Data to be passed to @p func. */
+            @in const(void)* func_data @optional; /*@ Data to be passed to @p 
func. */
          }
       }
       clear {
@@ -653,8 +653,8 @@ class Elm.Gengrid (Elm.Layout, Elm_Interface_Scrollable,
             @in const(void)* data; /*@ The item data. */
             @in Eina_Compare_Cb comp; /*@ User defined comparison function 
that defines the sort order
             based on gengrid item and its data. */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when the 
item is selected. */
-            @in const(void)* func_data; /*@ Data to be passed to @p func. */
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when the item is selected. */
+            @in const(void)* func_data @optional; /*@ Data to be passed to @p 
func. */
          }
       }
       search_by_text_item_get {
@@ -675,7 +675,7 @@ class Elm.Gengrid (Elm.Layout, Elm_Interface_Scrollable,
 
          return: Elm_Object_Item *;
          params {
-            @in Elm_Object_Item *item_to_search_from; /*@ Pointer to item to 
start search from. If NULL search will be started from the first item of the 
gengrid. */
+            @in Elm_Object_Item *item_to_search_from @optional; /*@ Pointer to 
item to start search from. If NULL search will be started from the first item 
of the gengrid. */
             @in const(char) *part_name; /*@ Name of the TEXT part of gengrid 
item to search string in. */
             @in const(char) *pattern; /*@ The search pattern. */
             @in Elm_Glob_Match_Flags flags; /*@ Search flags */
diff --git a/src/lib/elm_genlist.eo b/src/lib/elm_genlist.eo
index 4c8a227..3e7f3ea 100644
--- a/src/lib/elm_genlist.eo
+++ b/src/lib/elm_genlist.eo
@@ -440,7 +440,7 @@ class Elm.Genlist (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interfac
             @see elm_genlist_realized_items_update()
 
             @ingroup Genlist */
-            return: list *;
+            return: free(own(list<Elm_Gen_Item *> *), eina_list_free) 
@warn_unused;
          }
       }
       selected_items {
@@ -464,7 +464,7 @@ class Elm.Genlist (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interfac
             @see elm_genlist_selected_item_get()
 
             @ingroup Genlist */
-            return: const(list)*;
+            return: const(list<Elm_Object_Item *>)*;
          }
       }
       last_item {
@@ -502,11 +502,11 @@ class Elm.Genlist (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interfac
          params {
             @in const(Elm_Genlist_Item_Class)* itc; /*@ The item class for the 
item */
             @in const(void)* data; /*@ The item data */
-            @in Elm_Object_Item *parent; /*@ The parent item, or NULL if none 
*/
+            @in Elm_Object_Item *parent @nullable; /*@ The parent item, or 
NULL if none */
             @in Elm_Object_Item *before_it; /*@ The item to place this new one 
before. */
             @in Elm_Genlist_Item_Type type; /*@ Item type */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when the 
item is selected */
-            @in const(void)* func_data; /*@ Data passed to @p func above. */
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when the item is selected */
+            @in const(void)* func_data @optional; /*@ Data passed to @p func 
above. */
          }
       }
       realized_items_update {
@@ -545,11 +545,11 @@ class Elm.Genlist (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interfac
          params {
             @in const(Elm_Genlist_Item_Class)* itc; /*@ The item class for the 
item */
             @in const(void)* data; /*@ The item data */
-            @in Elm_Object_Item *parent; /*@ The parent item, or NULL if none 
*/
+            @in Elm_Object_Item *parent @nullable; /*@ The parent item, or 
NULL if none */
             @in Elm_Object_Item *after_it; /*@ The item to place this new one 
after. */
             @in Elm_Genlist_Item_Type type; /*@ Item type */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when the 
item is selected */
-            @in const(void)* func_data; /*@ Data passed to @p func above. */
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when the item is selected */
+            @in const(void)* func_data @optional; /*@ Data passed to @p func 
above. */
          }
       }
       at_xy_item_get @const {
@@ -607,10 +607,10 @@ class Elm.Genlist (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interfac
          params {
             @in const(Elm_Genlist_Item_Class)* itc; /*@ The item class for the 
item */
             @in const(void)* data; /*@ The item data */
-            @in Elm_Object_Item *parent; /*@ The parent item, or NULL if none 
*/
+            @in Elm_Object_Item *parent @nullable; /*@ The parent item, or 
NULL if none */
             @in Elm_Genlist_Item_Type type; /*@ Item type */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when the 
item is selected */
-            @in const(void)* func_data; /*@ Data passed to @p func above. */
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when the item is selected */
+            @in const(void)* func_data @optional; /*@ Data passed to @p func 
above. */
          }
       }
       clear {
@@ -644,10 +644,10 @@ class Elm.Genlist (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interfac
          params {
             @in const(Elm_Genlist_Item_Class)* itc; /*@ The item class for the 
item */
             @in const(void)* data; /*@ The item data */
-            @in Elm_Object_Item *parent; /*@ The parent item, or NULL if none 
*/
+            @in Elm_Object_Item *parent @nullable; /*@ The parent item, or 
NULL if none */
             @in Elm_Genlist_Item_Type type; /*@ Item type */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when the 
item is selected */
-            @in const(void)* func_data; /*@ Data passed to @p func above. */
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when the item is selected */
+            @in const(void)* func_data @optional; /*@ Data passed to @p func 
above. */
          }
       }
       item_sorted_insert {
@@ -671,11 +671,11 @@ class Elm.Genlist (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interfac
          params {
             @in const(Elm_Genlist_Item_Class)* itc; /*@ The item class for the 
item */
             @in const(void)* data; /*@ The item data */
-            @in Elm_Object_Item *parent; /*@ The parent item, or NULL if none 
*/
+            @in Elm_Object_Item *parent @nullable; /*@ The parent item, or 
NULL if none */
             @in Elm_Genlist_Item_Type type; /*@ Item type */
             @in Eina_Compare_Cb comp; /*@ The function called for the sort */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when item 
selected */
-            @in const(void)* func_data; /*@ Data passed to @p func above. */
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when item selected */
+            @in const(void)* func_data @optional; /*@ Data passed to @p func 
above. */
          }
       }
       search_by_text_item_get {
@@ -696,7 +696,7 @@ class Elm.Genlist (Elm.Layout, Elm_Interface_Scrollable, 
Evas.Clickable_Interfac
 
          return: Elm_Object_Item *;
          params {
-            @in Elm_Object_Item * item_to_search_from; /*@ Pointer to item to 
start search from. If NULL search will be started from the first item of the 
genlist. */
+            @in Elm_Object_Item * item_to_search_from @optional; /*@ Pointer 
to item to start search from. If NULL search will be started from the first 
item of the genlist. */
             @in const(char)* part_name; /*@ Name of the TEXT part of genlist 
item to search string in. */
             @in const(char)* pattern; /*@ The search pattern. */
             @in Elm_Glob_Match_Flags flags; /*@ Search flags */
diff --git a/src/lib/elm_genlist_item.eo b/src/lib/elm_genlist_item.eo
index 6bf2b9b..22fe7dc 100644
--- a/src/lib/elm_genlist_item.eo
+++ b/src/lib/elm_genlist_item.eo
@@ -66,7 +66,7 @@ class Elm.Genlist_Item(Elm.Widget_Item)
                       */
                 }
                 values {
-                     const (Eina_List) *subitems; /*@ @return The list of 
subitems, @c NULL on error */
+                     const (list<Elm_Object_Item *>) *subitems; /*@ @return 
The list of subitems, @c NULL on error */
                 }
            }
            selected {
@@ -386,7 +386,7 @@ class Elm.Genlist_Item(Elm.Widget_Item)
                  @ingroup Genlist
                  */
                 params {
-                     @out Eina_List *l; /*@ The contents list to return */
+                     @out own(list<own(Evas_Object *)> *) l; /*@ The contents 
list to return */
                 }
            }
            update {
diff --git a/src/lib/elm_gesture_layer.eo b/src/lib/elm_gesture_layer.eo
index b01ca56..c1634cd 100644
--- a/src/lib/elm_gesture_layer.eo
+++ b/src/lib/elm_gesture_layer.eo
@@ -114,7 +114,7 @@ class Elm.Gesture_Layer (Elm.Widget)
             Elm_Gesture_Type idx; /*@ The gesture you would like to track its 
state. */
             Elm_Gesture_State cb_type; /*@ what event this callback tracks: 
START, MOVE, END, ABORT. */
             Elm_Gesture_Event_Cb cb; /*@ callback function pointer. */
-            void *data; /*@ user info to be sent to callback (usually, Smart 
Data) */
+            void *data @optional; /*@ user info to be sent to callback 
(usually, Smart Data) */
          }
       }
    }
@@ -148,7 +148,7 @@ class Elm.Gesture_Layer (Elm.Widget)
             @in Elm_Gesture_Type idx; /*@ The gesture you would like to track 
its state. */
             @in Elm_Gesture_State cb_type; /*@ what event this callback 
tracks: START, MOVE, END, ABORT. */
             @in Elm_Gesture_Event_Cb cb; /*@ callback function pointer. */
-            @in void *data; /*@ user info for the callback (usually, Smart 
Data) */
+            @in void *data @nullable; /*@ user info for the callback (usually, 
Smart Data) */
          }
       }
       cb_add {
@@ -173,7 +173,7 @@ class Elm.Gesture_Layer (Elm.Widget)
             @in Elm_Gesture_Type idx; /*@ The gesture you would like to track 
its state. */
             @in Elm_Gesture_State cb_type; /*@ what event this callback 
tracks: START, MOVE, END, ABORT. */
             @in Elm_Gesture_Event_Cb cb; /*@ callback function pointer. */
-            @in void *data; /*@ user info to be sent to callback (usually, 
Smart Data) */
+            @in void *data @optional; /*@ user info to be sent to callback 
(usually, Smart Data) */
          }
       }
    }
diff --git a/src/lib/elm_glview.eo b/src/lib/elm_glview.eo
index 3a01bfd..143e06f 100644
--- a/src/lib/elm_glview.eo
+++ b/src/lib/elm_glview.eo
@@ -89,7 +89,7 @@ class Elm.Glview (Elm.Widget)
             @ingroup GLView */
          }
          values {
-            Elm_GLView_Func_Cb func; /*@ The delete function to be registered. 
*/
+            Elm_GLView_Func_Cb func @nullable; /*@ The delete function to be 
registered. */
          }
       }
       init_func {
@@ -105,7 +105,7 @@ class Elm.Glview (Elm.Widget)
             @ingroup GLView */
          }
          values {
-            Elm_GLView_Func_Cb func; /*@ The init function to be registered. */
+            Elm_GLView_Func_Cb func @nullable; /*@ The init function to be 
registered. */
          }
       }
       render_policy {
@@ -157,7 +157,7 @@ class Elm.Glview (Elm.Widget)
             @ingroup GLView */
          }
          values {
-            Elm_GLView_Func_Cb func; /*@ The render function to be registered. 
*/
+            Elm_GLView_Func_Cb func @nullable; /*@ The render function to be 
registered. */
          }
       }
       gl_api {
diff --git a/src/lib/elm_grid.eo b/src/lib/elm_grid.eo
index 442b28f..cb7cc3c 100644
--- a/src/lib/elm_grid.eo
+++ b/src/lib/elm_grid.eo
@@ -32,7 +32,7 @@ class Elm.Grid (Elm.Widget)
             list, but these removals won't be reflected on it.
 
             @ingroup Grid */
-            return: list *;
+            return: free(own(list<Evas_Object *> *), eina_list_free) 
@warn_unused;
          }
       }
    }
diff --git a/src/lib/elm_hoversel.eo b/src/lib/elm_hoversel.eo
index 5023cd0..a58a17b 100644
--- a/src/lib/elm_hoversel.eo
+++ b/src/lib/elm_hoversel.eo
@@ -52,7 +52,7 @@ class Elm.Hoversel (Elm.Button, Evas.Selectable_Interface,
             @ingroup Hoversel */
          }
          values {
-            Evas_Object *parent; /*@ The parent to use */
+            Evas_Object *parent @nullable; /*@ The parent to use */
          }
       }
       expanded {
@@ -77,7 +77,7 @@ class Elm.Hoversel (Elm.Button, Evas.Selectable_Interface,
             @see elm_hoversel_item_add()
 
             @ingroup Hoversel */
-            return: const(list)*;
+            return: const(list<Elm_Object_Item *>)*;
          }
       }
    }
@@ -128,13 +128,13 @@ class Elm.Hoversel (Elm.Button, Evas.Selectable_Interface,
 
          return: Elm_Object_Item *;
          params {
-            @in const(char)* label; /*@ The text label to use for the item 
(NULL if not desired) */
-            @in const(char)* icon_file; /*@ An image file path on disk to use 
for the icon or standard
+            @in const(char)* label @optional; /*@ The text label to use for 
the item (NULL if not desired) */
+            @in const(char)* icon_file @optional; /*@ An image file path on 
disk to use for the icon or standard
             icon name (NULL if not desired) */
             @in Elm_Icon_Type icon_type; /*@ The icon type if relevant */
-            @in Evas_Smart_Cb func; /*@ Convenience function to call when this 
item is selected. The last
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function to call 
when this item is selected. The last
             parameter @p event_info of @c func is the selected item pointer. */
-            @in const(void)* data; /*@ Data to pass to item-related functions 
*/
+            @in const(void)* data @optional; /*@ Data to pass to item-related 
functions */
          }
       }
    }
diff --git a/src/lib/elm_hoversel_item.eo b/src/lib/elm_hoversel_item.eo
index e1350a0..43a3aa5 100644
--- a/src/lib/elm_hoversel_item.eo
+++ b/src/lib/elm_hoversel_item.eo
@@ -25,8 +25,8 @@ class Elm.Hoversel_Item(Elm.Widget_Item)
                  */
              }
              values {
-                const (char) *icon_file; /*@ An image file path on disk to use 
for the icon or standard icon name */
-                const (char) *icon_group; /*@ The edje group to use if @p 
icon_file is an edje file. Set this to NULL if the icon is not an edje file */
+                const (char) *icon_file @nullable; /*@ An image file path on 
disk to use for the icon or standard icon name */
+                const (char) *icon_group @nullable; /*@ The edje group to use 
if @p icon_file is an edje file. Set this to NULL if the icon is not an edje 
file */
                 Elm_Icon_Type icon_type; /*@ The icon type */
              }
         }
diff --git a/src/lib/elm_icon.eo b/src/lib/elm_icon.eo
index 22e9588..3df5719 100644
--- a/src/lib/elm_icon.eo
+++ b/src/lib/elm_icon.eo
@@ -90,8 +90,8 @@ class Elm.Icon (Elm.Image)
             @ingroup Icon */
          }
          values {
-            const(char)* file; /*@ The path to file that will be used as icon 
image */
-            const(char)* group; /*@ The group that the icon belongs to an edje 
file */
+            const(char)* file @nullable; /*@ The path to file that will be 
used as icon image */
+            const(char)* group @optional; /*@ The group that the icon belongs 
to an edje file */
          }
       }
    }
diff --git a/src/lib/elm_image.eo b/src/lib/elm_image.eo
index 638cfb3..598c6bd 100644
--- a/src/lib/elm_image.eo
+++ b/src/lib/elm_image.eo
@@ -435,7 +435,7 @@ class Elm.Image (Elm.Widget, Efl.File, Efl.Image, 
Evas.Clickable_Interface,
          }
          values {
             const(Eina_File)* file; /*@ The handler to an Eina_File that will 
be used as image source */
-            const(char)* group; /*@ The group that the image belongs to, in 
case it's an
+            const(char)* group @optional; /*@ The group that the image belongs 
to, in case it's an
             EET (including Edje case) file. This can be used as a key inside
             evas image cache if this is a normal image file not eet file. */
          }
@@ -465,8 +465,8 @@ class Elm.Image (Elm.Widget, Efl.File, Efl.Image, 
Evas.Clickable_Interface,
          values {
             const(void)* img; /*@ The binary data that will be used as image 
source */
             size size; /*@ The size of binary data blob @p img */
-            const(char)* format; /*@ (Optional) expected format of @p img 
bytes */
-            const(char)* key; /*@ Optional indexing key of @p img to be passed 
to the
+            const(char)* format @optional; /*@ (Optional) expected format of 
@p img bytes */
+            const(char)* key @optional; /*@ Optional indexing key of @p img to 
be passed to the
             image loader (eg. if @p img is a memory-mapped EET file) */
          }
       }
diff --git a/src/lib/elm_index.eo b/src/lib/elm_index.eo
index 6c9a422..7960263 100644
--- a/src/lib/elm_index.eo
+++ b/src/lib/elm_index.eo
@@ -193,8 +193,8 @@ class Elm.Index (Elm.Layout)
          return: Elm_Object_Item *;
          params {
             @in const(char)* letter; /*@ Letter under which the item should be 
indexed */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
selected. */
-            @in const(void)* data; /*@ The item data to set for the index's 
item */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is selected. */
+            @in const(void)* data @optional; /*@ The item data to set for the 
index's item */
          }
       }
       item_clear {
@@ -229,8 +229,8 @@ class Elm.Index (Elm.Layout)
          params {
             @in Elm_Object_Item *after; /*@ The index item to insert after. */
             @in const(char)* letter; /*@ Letter under which the item should be 
indexed */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The item data to set for the index's 
item */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The item data to set for the 
index's item */
          }
       }
       item_find {
@@ -268,8 +268,8 @@ class Elm.Index (Elm.Layout)
          params {
             @in Elm_Object_Item *before; /*@ The index item to insert after. */
             @in const(char)* letter; /*@ Letter under which the item should be 
indexed */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The item data to set for the index's 
item */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The item data to set for the 
index's item */
          }
       }
       item_append {
@@ -290,8 +290,8 @@ class Elm.Index (Elm.Layout)
          return: Elm_Object_Item *;
          params {
             @in const(char)* letter; /*@ Letter under which the item should be 
indexed */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
selected. */
-            @in const(void)* data; /*@ The item data to set for the index's 
item */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is selected. */
+            @in const(void)* data @optional; /*@ The item data to set for the 
index's item */
          }
       }
       selected_item_get @const {
@@ -325,11 +325,11 @@ class Elm.Index (Elm.Layout)
          return: Elm_Object_Item *;
          params {
             @in const(char)* letter; /*@ Letter under which the item should be 
indexed */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The item data to set for the index's 
item */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The item data to set for the 
index's item */
             @in Eina_Compare_Cb cmp_func; /*@ The comparing function to be 
used to sort index
             items <b>by index item handles</b> */
-            @in Eina_Compare_Cb cmp_data_func; /*@ A @b fallback function to 
be called for the
+            @in Eina_Compare_Cb cmp_data_func @optional; /*@ A @b fallback 
function to be called for the
             sorting of index items <b>by item data</b>). It will be used
             when @p cmp_func returns @c 0 (equality), which means an index
             item with provided item data already exists. To decide which
diff --git a/src/lib/elm_interface_atspi_accessible.eo 
b/src/lib/elm_interface_atspi_accessible.eo
index d277e3a..139142d 100644
--- a/src/lib/elm_interface_atspi_accessible.eo
+++ b/src/lib/elm_interface_atspi_accessible.eo
@@ -29,7 +29,7 @@ mixin Elm_Interface_Atspi_Accessible ()
             elements Should be free by a user. */
          }
          values {
-            list *relations;
+            own(list<own(Elm_Atspi_Relation *)> *) relations;
          }
       }
       role @protected {
@@ -47,7 +47,7 @@ mixin Elm_Interface_Atspi_Accessible ()
             /*@ Gets widget's accessible children. */
          }
          values {
-            list *children;
+            free(own(list<Eo *> *), eina_list_free) children;
          }
       }
       role_name @protected {
@@ -65,7 +65,7 @@ mixin Elm_Interface_Atspi_Accessible ()
             attributes. Must be free by a user. */
          }
          values {
-            list *attributes;
+            free(own(list<own(Elm_Atspi_Attribute *)> *), 
elm_atspi_attributes_list_free) attributes;
          }
       }
       index_in_parent @protected {
diff --git a/src/lib/elm_interface_atspi_action.eo 
b/src/lib/elm_interface_atspi_action.eo
index 48daf34..2f188c7 100644
--- a/src/lib/elm_interface_atspi_action.eo
+++ b/src/lib/elm_interface_atspi_action.eo
@@ -46,7 +46,7 @@ mixin Elm_Interface_Atspi_Action ()
             /*@ Get list of available widget actions */
          }
          values {
-            list *actions; /*@ contains statically allocated strings */
+            list<Elm_Atspi_Action> *actions; /*@ contains statically allocated 
strings */
          }
       }
    }
@@ -64,7 +64,7 @@ mixin Elm_Interface_Atspi_Action ()
          params {
             @in  int id;
          }
-         return: char *;
+         return: own(char *) @warn_unused;
       }
    }
    implements {
diff --git a/src/lib/elm_interface_atspi_text.eo 
b/src/lib/elm_interface_atspi_text.eo
index 6fc3bd4..f1feeba 100644
--- a/src/lib/elm_interface_atspi_text.eo
+++ b/src/lib/elm_interface_atspi_text.eo
@@ -32,8 +32,8 @@ interface Elm_Interface_Atspi_Text ()
                                    to given granularity. -1 in case of error. 
*/
          }
          values {
-            char *string; /*@ Newly allocated UTF-8 encoded string.
-                            Must be free by a user. */
+            own(char *) string; /*@ Newly allocated UTF-8 encoded string.
+                                  Must be free by a user. */
          }
       }
       text @protected {
@@ -45,7 +45,7 @@ interface Elm_Interface_Atspi_Text ()
             int end_offset; /*@ End offset of text. */
          }
          values {
-            char *text; /*@ UTF-8 encoded text. */
+            own(char *) text; /*@ UTF-8 encoded text. */
          }
       }
       caret_offset @protected {
@@ -73,7 +73,7 @@ interface Elm_Interface_Atspi_Text ()
                                     is set. */
          }
          values {
-            char *value; /* Value of text attribute. Should be free() */
+            own(char *) value; /* Value of text attribute. Should be free() */
          }
       }
       attributes @protected {
@@ -85,14 +85,14 @@ interface Elm_Interface_Atspi_Text ()
             int *end_offset;
          }
          values {
-            own(list*) attributes;
+            own(list<own(Elm_Atspi_Text_Attribute *)> *) attributes;
          }
       }
       default_attributes @protected {
          get {
          }
          values {
-            own(list*) attributes;
+            own(list<own(Elm_Atspi_Text_Attribute *)>*) attributes;
          }
       }
       character_extents @protected {
@@ -136,7 +136,7 @@ interface Elm_Interface_Atspi_Text ()
             Elm_Atspi_Text_Clip_Type yclip;
          }
          values {
-            list *ranges;
+            own(list<own(Elm_Atspi_Text_Range *)> *) ranges;
          }
       }
       range_extents @protected {
diff --git a/src/lib/elm_interface_scrollable.eo 
b/src/lib/elm_interface_scrollable.eo
index 028b8a7..bf97cef 100644
--- a/src/lib/elm_interface_scrollable.eo
+++ b/src/lib/elm_interface_scrollable.eo
@@ -341,7 +341,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb scroll_up_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb scroll_up_cb @nullable; /*@ The 
callback */
          }
       }
       hbar_drag_cb {
@@ -353,7 +353,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb hbar_drag_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb hbar_drag_cb @nullable; /*@ The 
callback */
          }
       }
       drag_start_cb {
@@ -365,7 +365,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb drag_start_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb drag_start_cb @nullable; /*@ The 
callback */
          }
       }
       freeze {
@@ -381,7 +381,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
             /*@ When the viewport is resized, the callback is called. */
          }
          values {
-            Elm_Interface_Scrollable_Resize_Cb viewport_resize_cb;
+            Elm_Interface_Scrollable_Resize_Cb viewport_resize_cb @nullable;
          }
       }
       scroll_left_cb {
@@ -393,7 +393,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb scroll_left_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb scroll_left_cb @nullable; /*@ The 
callback */
          }
       }
       vbar_press_cb {
@@ -405,7 +405,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb vbar_press_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb vbar_press_cb @nullable; /*@ The 
callback */
          }
       }
       hbar_press_cb {
@@ -417,7 +417,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb hbar_press_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb hbar_press_cb @nullable; /*@ The 
callback */
          }
       }
       hbar_unpress_cb {
@@ -429,7 +429,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb hbar_unpress_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb hbar_unpress_cb @nullable; /*@ The 
callback */
          }
       }
       drag_stop_cb {
@@ -442,7 +442,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb drag_stop_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb drag_stop_cb @nullable; /*@ The 
callback */
          }
       }
       extern_pan {
@@ -450,7 +450,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
             /*@ No description supplied by the EAPI. */
          }
          values {
-            Evas_Object *pan;
+            Evas_Object *pan @nullable;
          }
       }
       page_change_cb {
@@ -462,7 +462,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb page_change_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb page_change_cb @nullable; /*@ The 
callback */
          }
       }
       hold {
@@ -482,7 +482,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb animate_start_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb animate_start_cb @nullable; /*@ The 
callback */
          }
       }
       scroll_down_cb {
@@ -494,7 +494,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb scroll_down_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb scroll_down_cb @nullable; /*@ The 
callback */
          }
       }
       page_relative {
@@ -515,7 +515,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb scroll_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb scroll_cb @nullable; /*@ The callback 
*/
          }
       }
       animate_stop_cb {
@@ -527,7 +527,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb animate_stop_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb animate_stop_cb @nullable; /*@ The 
callback */
          }
       }
       mirrored {
@@ -543,7 +543,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
             /*@ No description supplied by the EAPI. */
          }
          values {
-            Elm_Interface_Scrollable_Min_Limit_Cb min_limit_cb;
+            Elm_Interface_Scrollable_Min_Limit_Cb min_limit_cb @nullable;
          }
       }
       scroll_right_cb {
@@ -555,7 +555,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb scroll_right_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb scroll_right_cb @nullable; /*@ The 
callback */
          }
       }
       content {
@@ -563,7 +563,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
             /*@ No description supplied by the EAPI. */
          }
          values {
-            Evas_Object *content;
+            Evas_Object *content @nullable;
          }
       }
       edge_left_cb {
@@ -575,7 +575,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb edge_left_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb edge_left_cb @nullable; /*@ The 
callback */
          }
       }
       vbar_drag_cb {
@@ -587,7 +587,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb vbar_drag_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb vbar_drag_cb @nullable; /*@ The 
callback */
          }
       }
       vbar_unpress_cb {
@@ -599,7 +599,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb vbar_unpress_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb vbar_unpress_cb @nullable; /*@ The 
callback */
          }
       }
       edge_bottom_cb {
@@ -611,7 +611,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb edge_bottom_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb edge_bottom_cb @nullable; /*@ The 
callback */
          }
       }
       edge_right_cb {
@@ -623,7 +623,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb edge_right_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb edge_right_cb @nullable; /*@ The 
callback */
          }
       }
       edge_top_cb {
@@ -635,7 +635,7 @@ mixin Elm_Interface_Scrollable(Evas.Scrollable_Interface, 
Evas.Object_Smart)
              */
          }
          values {
-            Elm_Interface_Scrollable_Cb edge_top_cb; /*@ The callback */
+            Elm_Interface_Scrollable_Cb edge_top_cb @nullable; /*@ The 
callback */
          }
       }
       objects {
diff --git a/src/lib/elm_layout.eo b/src/lib/elm_layout.eo
index a186300..da2dbbd 100644
--- a/src/lib/elm_layout.eo
+++ b/src/lib/elm_layout.eo
@@ -297,8 +297,8 @@ class Elm.Layout (Elm.Container, Efl.File)
 
          return: bool;
          params {
-            @in const(char)* part; /*@ The TEXT part where to set the text */
-            @in const(char)* text; /*@ The text to set */
+            @in const(char)* part @nullable; /*@ The TEXT part where to set 
the text */
+            @in const(char)* text @nullable; /*@ The text to set */
          }
       }
       text_get @const {
@@ -330,7 +330,7 @@ class Elm.Layout (Elm.Container, Efl.File)
             @in const(char)* source; /*@ The signal's source string */
             @in Edje_Signal_Cb func; /*@ The callback function to be executed 
when the signal is
             emitted. */
-            @in void *data; /*@ A pointer to data to pass in to the callback 
function. */
+            @in void *data @optional; /*@ A pointer to data to pass in to the 
callback function. */
          }
       }
       part_cursor_set {
@@ -381,7 +381,7 @@ class Elm.Layout (Elm.Container, Efl.File)
          return: bool;
          params {
             @in const(char)* part; /*@ the box part to insert. */
-            @in Evas_Object *child; /*@ the child object to insert into box. */
+            @in own(Evas_Object *) child; /*@ the child object to insert into 
box. */
             @in const(Evas_Object)* reference; /*@ another reference object to 
insert before in box. */
          }
       }
@@ -406,7 +406,7 @@ class Elm.Layout (Elm.Container, Efl.File)
          return: bool;
          params {
             @in const(char)* part; /*@ the box part to insert. */
-            @in Evas_Object *child; /*@ the child object to insert into box. */
+            @in own(Evas_Object *) child; /*@ the child object to insert into 
box. */
             @in uint pos; /*@ the numeric position >=0 to insert the child. */
          }
       }
@@ -466,7 +466,7 @@ class Elm.Layout (Elm.Container, Efl.File)
          return: bool;
          params {
             @in const(char)* part; /*@ the box part to which the object will 
be appended. */
-            @in Evas_Object *child; /*@ the child object to append to box. */
+            @in own(Evas_Object *) child; /*@ the child object to append to 
box. */
          }
       }
       signal_callback_del {
@@ -528,7 +528,7 @@ class Elm.Layout (Elm.Container, Efl.File)
          return: bool;
          params {
             @in const(char)* part; /*@ the box part to prepend. */
-            @in Evas_Object *child; /*@ the child object to prepend to box. */
+            @in own(Evas_Object *) child; /*@ the child object to prepend to 
box. */
          }
       }
       signal_emit {
@@ -577,7 +577,7 @@ class Elm.Layout (Elm.Container, Efl.File)
          return: bool;
          params {
             @in const(char)* part; /*@ the box part to pack child. */
-            @in Evas_Object *child; /*@ the child object to pack into table. */
+            @in own(Evas_Object *) child; /*@ the child object to pack into 
table. */
             @in ushort col; /*@ the column to which the child should be added. 
(>= 0) */
             @in ushort row; /*@ the row to which the child should be added. 
(>= 0) */
             @in ushort colspan; /*@ how many columns should be used to store 
this object. (>=
diff --git a/src/lib/elm_list.eo b/src/lib/elm_list.eo
index 60ef555..793a57d 100644
--- a/src/lib/elm_list.eo
+++ b/src/lib/elm_list.eo
@@ -230,7 +230,7 @@ class Elm.List (Elm.Layout, Elm_Interface_Scrollable,
             @see elm_list_clear()
 
             @ingroup List */
-            return: const(list)*;
+            return: const(list<Elm_Object_Item *>)*;
          }
       }
       first_item {
@@ -261,7 +261,7 @@ class Elm.List (Elm.Layout, Elm_Interface_Scrollable,
             @see elm_list_multi_select_set()
 
             @ingroup List */
-            return: const(list)*;
+            return: const(list<Elm_Object_Item *>)*;
          }
       }
       last_item {
@@ -317,13 +317,13 @@ class Elm.List (Elm.Layout, Elm_Interface_Scrollable,
          params {
             @in Elm_Object_Item *before; /*@ The list item to insert before. */
             @in const(char)* label; /*@ The label of the list item. */
-            @in Evas_Object *icon; /*@ The icon object to use for the left 
side of the item. An
+            @in Evas_Object *icon @optional; /*@ The icon object to use for 
the left side of the item. An
             icon can be any Evas object, but usually it is an icon created
             with elm_icon_add(). */
-            @in Evas_Object *end; /*@ The icon object to use for the right 
side of the item. An
+            @in Evas_Object *end @optional; /*@ The icon object to use for the 
right side of the item. An
             icon can be any Evas object. */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The data to associate with the item for 
related callbacks. */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related callbacks. */
          }
       }
       go {
@@ -382,13 +382,13 @@ class Elm.List (Elm.Layout, Elm_Interface_Scrollable,
          params {
             @in Elm_Object_Item *after; /*@ The list item to insert after. */
             @in const(char)* label; /*@ The label of the list item. */
-            @in Evas_Object *icon; /*@ The icon object to use for the left 
side of the item. An
+            @in Evas_Object *icon @optional; /*@ The icon object to use for 
the left side of the item. An
             icon can be any Evas object, but usually it is an icon created
             with elm_icon_add(). */
-            @in Evas_Object *end; /*@ The icon object to use for the right 
side of the item. An
+            @in Evas_Object *end @optional; /*@ The icon object to use for the 
right side of the item. An
             icon can be any Evas object. */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The data to associate with the item for 
related callbacks. */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related callbacks. */
          }
       }
       at_xy_item_get @const {
@@ -463,13 +463,13 @@ class Elm.List (Elm.Layout, Elm_Interface_Scrollable,
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The label of the list item. */
-            @in Evas_Object *icon; /*@ The icon object to use for the left 
side of the item. An
+            @in Evas_Object *icon @optional; /*@ The icon object to use for 
the left side of the item. An
             icon can be any Evas object, but usually it is an icon created
             with elm_icon_add(). */
-            @in Evas_Object *end; /*@ The icon object to use for the right 
side of the item. An
+            @in Evas_Object *end @optional; /*@ The icon object to use for the 
right side of the item. An
             icon can be any Evas object. */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The data to associate with the item for 
related callbacks. */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related callbacks. */
          }
       }
       item_prepend {
@@ -509,13 +509,13 @@ class Elm.List (Elm.Layout, Elm_Interface_Scrollable,
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The label of the list item. */
-            @in Evas_Object *icon; /*@ The icon object to use for the left 
side of the item. An
+            @in Evas_Object *icon @optional; /*@ The icon object to use for 
the left side of the item. An
             icon can be any Evas object, but usually it is an icon created
             with elm_icon_add(). */
-            @in Evas_Object *end; /*@ The icon object to use for the right 
side of the item. An
+            @in Evas_Object *end @optional; /*@ The icon object to use for the 
right side of the item. An
             icon can be any Evas object. */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The data to associate with the item for 
related callbacks. */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related callbacks. */
          }
       }
       clear {
@@ -569,13 +569,13 @@ class Elm.List (Elm.Layout, Elm_Interface_Scrollable,
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The label of the list item. */
-            @in Evas_Object *icon; /*@ The icon object to use for the left 
side of the item. An
+            @in Evas_Object *icon @optional; /*@ The icon object to use for 
the left side of the item. An
             icon can be any Evas object, but usually it is an icon created
             with elm_icon_add(). */
-            @in Evas_Object *end; /*@ The icon object to use for the right 
side of the item. An
+            @in Evas_Object *end @optional; /*@ The icon object to use for the 
right side of the item. An
             icon can be any Evas object. */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The data to associate with the item for 
related callbacks. */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related callbacks. */
             @in Eina_Compare_Cb cmp_func; /*@ The comparing function to be 
used to sort list
             items <b>by #Elm_Object_Item item handles</b>. This function will
             receive two items and compare them, returning a non-negative 
integer
diff --git a/src/lib/elm_list_item.eo b/src/lib/elm_list_item.eo
index 9e75036..ae86cb8 100644
--- a/src/lib/elm_list_item.eo
+++ b/src/lib/elm_list_item.eo
@@ -25,8 +25,8 @@ class Elm.List_Item(Elm.Widget_Item)
                       */
                 }
                 values {
-                     Eina_Bool setting; /*@ @c EINA_TRUE means item @p it is a 
separator. @c EINA_FALSE
-                                         indicates it's not. */
+                     bool setting; /*@ @c EINA_TRUE means item @p it is a 
separator. @c EINA_FALSE
+                                    indicates it's not. */
                 }
            }
            selected {
@@ -62,7 +62,7 @@ class Elm.List_Item(Elm.Widget_Item)
                       */
                 }
                 values {
-                     Eina_Bool selected; /*@ the selected state (@c EINA_TRUE 
selected, @c EINA_FALSE not selected) */
+                     bool selected; /*@ the selected state (@c EINA_TRUE 
selected, @c EINA_FALSE not selected) */
                 }
            }
            object {
diff --git a/src/lib/elm_map.eo b/src/lib/elm_map.eo
index 97443c5..278ab7c 100644
--- a/src/lib/elm_map.eo
+++ b/src/lib/elm_map.eo
@@ -280,7 +280,7 @@ class Elm.Map (Elm.Widget, Elm_Interface_Scrollable,
             @since 1.7
 
             @ingroup Map */
-            return: list *;
+            return: list<Elm_Map_Overlay *> *;
          }
       }
       tile_load_status {
@@ -384,8 +384,8 @@ class Elm.Map (Elm.Widget, Elm_Interface_Scrollable,
             @in double flat; /*@ The start latitude. */
             @in double tlon; /*@ The destination longitude. */
             @in double tlat; /*@ The destination latitude. */
-            @in Elm_Map_Route_Cb route_cb; /*@ The route to be traced. */
-            @in void *data; /*@ A pointer of user data. */
+            @in Elm_Map_Route_Cb route_cb @optional; /*@ The route to be 
traced. */
+            @in void *data @optional; /*@ A pointer of user data. */
          }
       }
       track_add {
@@ -601,11 +601,11 @@ class Elm.Map (Elm.Widget, Elm_Interface_Scrollable,
          @ingroup Map */
          return: Elm_Map_Name *;
          params {
-            @in const(char)* address; /*@ The address. */
+            @in const(char)* address @optional; /*@ The address. */
             @in double lon; /*@ The longitude. */
             @in double lat; /*@ The latitude. */
-            @in Elm_Map_Name_Cb name_cb; /*@ The callback function. */
-            @in void *data; /*@ The user callback data. */
+            @in Elm_Map_Name_Cb name_cb @optional; /*@ The callback function. 
*/
+            @in void *data @optional; /*@ The user callback data. */
          }
       }
       name_search @const {
@@ -620,8 +620,8 @@ class Elm.Map (Elm.Widget, Elm_Interface_Scrollable,
          @ingroup Map */
          params {
             @in const(char)* address; /*@ The address. */
-            @in Elm_Map_Name_List_Cb name_cb; /*@ The callback function. */
-            @in void *data; /*@ The user callback data. */
+            @in Elm_Map_Name_List_Cb name_cb @optional; /*@ The callback 
function. */
+            @in void *data @optional; /*@ The user callback data. */
          }
       }
       region_bring_in {
diff --git a/src/lib/elm_menu.eo b/src/lib/elm_menu.eo
index 6e237c9..f7a68c0 100644
--- a/src/lib/elm_menu.eo
+++ b/src/lib/elm_menu.eo
@@ -24,7 +24,7 @@ class Elm.Menu (Elm.Widget, Evas.Clickable_Interface)
             @return An list* of @p item's items
 
             @ingroup Menu */
-            return: const(list)*;
+            return: const(list<Elm_Object_Item *>)*;
          }
       }
       first_item {
@@ -78,11 +78,11 @@ class Elm.Menu (Elm.Widget, Evas.Clickable_Interface)
 
          return: Elm_Object_Item *;
          params {
-            @in Elm_Object_Item *parent; /*@ The parent menu item (optional) */
-            @in const(char)* icon; /*@ An icon display on the item. The icon 
will be destroyed by the menu. */
+            @in Elm_Object_Item *parent @optional; /*@ The parent menu item 
(optional) */
+            @in const(char)* icon @optional; /*@ An icon display on the item. 
The icon will be destroyed by the menu. */
             @in const(char)* label; /*@ The label of the item. */
-            @in Evas_Smart_Cb func; /*@ Function called when the user select 
the item. */
-            @in const(void)* data; /*@ Data sent by the callback. */
+            @in Evas_Smart_Cb func @optional; /*@ Function called when the 
user select the item. */
+            @in const(void)* data @optional; /*@ Data sent by the callback. */
          }
       }
       close {
diff --git a/src/lib/elm_menu_item.eo b/src/lib/elm_menu_item.eo
index 1396ffa..0b63e94 100644
--- a/src/lib/elm_menu_item.eo
+++ b/src/lib/elm_menu_item.eo
@@ -46,7 +46,7 @@ class Elm.Menu_Item(Elm.Widget_Item)
                  */
              }
              values {
-                 Eina_Bool selected; /*@ EINA_TRUE if selected EINA_FALSE 
otherwise */
+                 bool selected; /*@ EINA_TRUE if selected EINA_FALSE otherwise 
*/
              }
         }
    }
@@ -96,7 +96,7 @@ class Elm.Menu_Item(Elm.Widget_Item)
 
              @ingroup Menu
              */
-             return: const (Eina_List) *; /*@ An Eina_List* of @p item's 
subitems */
+             return: const (list<Elm_Object_Item *>) *; /*@ An Eina_List* of 
@p item's subitems */
         }
      is_separator @const {
             /*@
diff --git a/src/lib/elm_multibuttonentry.eo b/src/lib/elm_multibuttonentry.eo
index 1f3cf87..4bc5a18 100644
--- a/src/lib/elm_multibuttonentry.eo
+++ b/src/lib/elm_multibuttonentry.eo
@@ -65,8 +65,8 @@ class Elm.Multibuttonentry (Elm.Layout)
             @ingroup Multibuttonentry */
          }
          values {
-            Elm_Multibuttonentry_Format_Cb format_function; /*@ 
format_function The actual format function */
-            const(void)* data; /*@ data User data to passed to @a 
format_function */
+            Elm_Multibuttonentry_Format_Cb format_function @nullable; /*@ 
format_function The actual format function */
+            const(void)* data @optional; /*@ data User data to passed to @a 
format_function */
          }
       }
       items {
@@ -77,7 +77,7 @@ class Elm.Multibuttonentry (Elm.Layout)
             @return The list of items, or NULL if none
 
             @ingroup Multibuttonentry */
-            return: const(list)*;
+            return: const(list<Elm_Object_Item *>)*;
          }
       }
       first_item {
@@ -139,8 +139,8 @@ class Elm.Multibuttonentry (Elm.Layout)
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The label of new item */
-            @in Evas_Smart_Cb func; /*@ The callback function to be invoked 
when this item is pressed. */
-            @in void *data; /*@ The pointer to the data to be attached */
+            @in Evas_Smart_Cb func @optional; /*@ The callback function to be 
invoked when this item is pressed. */
+            @in void *data @optional; /*@ The pointer to the data to be 
attached */
          }
       }
       clear {
@@ -179,8 +179,8 @@ class Elm.Multibuttonentry (Elm.Layout)
          params {
             @in Elm_Object_Item *before; /*@ The item before which to add it */
             @in const(char)* label; /*@ The label of new item */
-            @in Evas_Smart_Cb func; /*@ The callback function to be invoked 
when this item is pressed. */
-            @in void *data; /*@ The pointer to the data to be attached */
+            @in Evas_Smart_Cb func @optional; /*@ The callback function to be 
invoked when this item is pressed. */
+            @in void *data @optional; /*@ The pointer to the data to be 
attached */
          }
       }
       item_append {
@@ -196,8 +196,8 @@ class Elm.Multibuttonentry (Elm.Layout)
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The label of new item */
-            @in Evas_Smart_Cb func; /*@ The callback function to be invoked 
when this item is pressed. */
-            @in void *data; /*@ The pointer to the data to be attached */
+            @in Evas_Smart_Cb func @optional; /*@ The callback function to be 
invoked when this item is pressed. */
+            @in void *data @optional; /*@ The pointer to the data to be 
attached */
          }
       }
       item_filter_prepend {
@@ -247,8 +247,8 @@ class Elm.Multibuttonentry (Elm.Layout)
          params {
             @in Elm_Object_Item *after; /*@ The item after which to add it */
             @in const(char)* label; /*@ The label of new item */
-            @in Evas_Smart_Cb func; /*@ The callback function to be invoked 
when this item is pressed. */
-            @in void *data; /*@ The pointer to the data to be attached */
+            @in Evas_Smart_Cb func @optional; /*@ The callback function to be 
invoked when this item is pressed. */
+            @in void *data @optional; /*@ The pointer to the data to be 
attached */
          }
       }
    }
diff --git a/src/lib/elm_multibuttonentry_item.eo 
b/src/lib/elm_multibuttonentry_item.eo
index 70dd7d0..74574d2 100644
--- a/src/lib/elm_multibuttonentry_item.eo
+++ b/src/lib/elm_multibuttonentry_item.eo
@@ -18,7 +18,7 @@ class Elm.Multibuttonentry_Item(Elm.Widget_Item)
                  */
              }
              values {
-                 Eina_Bool selected; /*@ EINA_TRUE if selected EINA_FALSE 
otherwise */
+                 bool selected; /*@ EINA_TRUE if selected EINA_FALSE otherwise 
*/
              }
         }
    }
diff --git a/src/lib/elm_naviframe.eo b/src/lib/elm_naviframe.eo
index 2d27ea0..048b6a5 100644
--- a/src/lib/elm_naviframe.eo
+++ b/src/lib/elm_naviframe.eo
@@ -94,7 +94,7 @@ class Elm.Naviframe (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
             @note The returned list MUST be freed.
 
             @ingroup Naviframe */
-            return: list * @warn_unused;
+            return: free(own(list<Elm_Object_Item *> *), eina_list_free) 
@warn_unused;
          }
       }
       top_item {
@@ -162,17 +162,17 @@ class Elm.Naviframe (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
          return: Elm_Object_Item *;
          params {
             @in Elm_Object_Item *before; /*@ The naviframe item to insert 
before. */
-            @in const(char)* title_label; /*@ The label in the title area. The 
name of the title
+            @in const(char)* title_label @optional; /*@ The label in the title 
area. The name of the title
             label part is "elm.text.title" */
-            @in Evas_Object *prev_btn; /*@ The button to go to the previous 
item. If it is NULL,
+            @in Evas_Object *prev_btn @nullable; /*@ The button to go to the 
previous item. If it is NULL,
             then naviframe will create a back button automatically. The name of
             the prev_btn part is "elm.swallow.prev_btn" */
-            @in Evas_Object *next_btn; /*@ The button to go to the next item. 
Or It could be just an
+            @in Evas_Object *next_btn @nullable; /*@ The button to go to the 
next item. Or It could be just an
             extra function button. The name of the next_btn part is
             "elm.swallow.next_btn" */
             @in Evas_Object *content; /*@ The main content object. The name of 
content part is
             "elm.swallow.content" */
-            @in const(char)* item_style; /*@ The current item style name. @c 
NULL would be default. */
+            @in const(char)* item_style @nullable; /*@ The current item style 
name. @c NULL would be default. */
          }
       }
       item_push {
@@ -195,17 +195,17 @@ class Elm.Naviframe (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
 
          return: Elm_Object_Item *;
          params {
-            @in const(char)* title_label; /*@ The label in the title area. The 
name of the title
+            @in const(char)* title_label @optional; /*@ The label in the title 
area. The name of the title
             label part is "elm.text.title" */
-            @in Evas_Object *prev_btn; /*@ The button to go to the previous 
item. If it is NULL,
+            @in Evas_Object *prev_btn @nullable; /*@ The button to go to the 
previous item. If it is NULL,
             then naviframe will create a back button automatically. The name of
             the prev_btn part is "elm.swallow.prev_btn" */
-            @in Evas_Object *next_btn; /*@ The button to go to the next item. 
Or It could be just an
+            @in Evas_Object *next_btn @nullable; /*@ The button to go to the 
next item. Or It could be just an
             extra function button. The name of the next_btn part is
             "elm.swallow.next_btn" */
             @in Evas_Object *content; /*@ The main content object. The name of 
content part is
             "elm.swallow.content" */
-            @in const(char)* item_style; /*@ The current item style name. @c 
NULL would be default. */
+            @in const(char)* item_style @nullable; /*@ The current item style 
name. @c NULL would be default. */
          }
       }
       item_simple_promote {
@@ -239,17 +239,17 @@ class Elm.Naviframe (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
          return: Elm_Object_Item *;
          params {
             @in Elm_Object_Item *after; /*@ The naviframe item to insert 
after. */
-            @in const(char)* title_label; /*@ The label in the title area. The 
name of the title
+            @in const(char)* title_label @optional; /*@ The label in the title 
area. The name of the title
             label part is "elm.text.title" */
-            @in Evas_Object *prev_btn; /*@ The button to go to the previous 
item. If it is NULL,
+            @in Evas_Object *prev_btn @nullable; /*@ The button to go to the 
previous item. If it is NULL,
             then naviframe will create a back button automatically. The name of
             the prev_btn part is "elm.swallow.prev_btn" */
-            @in Evas_Object *next_btn; /*@ The button to go to the next item. 
Or It could be just an
+            @in Evas_Object *next_btn @nullable; /*@ The button to go to the 
next item. Or It could be just an
             extra function button. The name of the next_btn part is
             "elm.swallow.next_btn" */
             @in Evas_Object *content; /*@ The main content object. The name of 
content part is
             "elm.swallow.content" */
-            @in const(char)* item_style; /*@ The current item style name. @c 
NULL would be default. */
+            @in const(char)* item_style @nullable; /*@ The current item style 
name. @c NULL would be default. */
          }
       }
    }
diff --git a/src/lib/elm_naviframe_item.eo b/src/lib/elm_naviframe_item.eo
index 4f7be9b..33c5a1e 100644
--- a/src/lib/elm_naviframe_item.eo
+++ b/src/lib/elm_naviframe_item.eo
@@ -25,7 +25,7 @@ class Elm.Naviframe_Item(Elm.Widget_Item)
                  */
              }
              values {
-                 const (char) *style; /*@ The current item style name. @c NULL 
would be default */
+                 const (char) *style @nullable; /*@ The current item style 
name. @c NULL would be default */
              }
         }
    }
@@ -64,8 +64,8 @@ class Elm.Naviframe_Item(Elm.Widget_Item)
              @ingroup Naviframe
             */
             params {
-                @in Eina_Bool enable; /*@ If @c EINA_TRUE, title area will be 
enabled, disabled otherwise */
-                @in Eina_Bool transition; /*@ If @c EINA_TRUE, transition 
effect of the title will be visible, invisible otherwise */
+                @in bool enable; /*@ If @c EINA_TRUE, title area will be 
enabled, disabled otherwise */
+                @in bool transition; /*@ If @c EINA_TRUE, transition effect of 
the title will be visible, invisible otherwise */
              }
         }
       promote {
@@ -93,8 +93,8 @@ class Elm.Naviframe_Item(Elm.Widget_Item)
              @ingroup Naviframe
              */
              params {
-                  @in Elm_Naviframe_Item_Pop_Cb func; /*@ The callback 
function */
-                  @in void *data; /*@ Data to be passed to func call */
+                  @in Elm_Naviframe_Item_Pop_Cb func @nullable; /*@ The 
callback function */
+                  @in void *data @optional; /*@ Data to be passed to func call 
*/
              }
         }
    }
diff --git a/src/lib/elm_photo.eo b/src/lib/elm_photo.eo
index ba93da8..02b98d4 100644
--- a/src/lib/elm_photo.eo
+++ b/src/lib/elm_photo.eo
@@ -82,8 +82,8 @@ class Elm.Photo (Elm.Widget, Efl.File, 
Evas.Clickable_Interface, Evas.Draggable_
 
            @ingroup Photo */
          params {
-            @in const(char)* file; /*@ The path to file that will be used as 
thumbnail. */
-            @in const(char)* group; /*@ The key used in case of an EET file. */
+            @in const(char)* file @nullable; /*@ The path to file that will be 
used as thumbnail. */
+            @in const(char)* group @optional; /*@ The key used in case of an 
EET file. */
          }
       }
    }
diff --git a/src/lib/elm_popup.eo b/src/lib/elm_popup.eo
index e6a96f3..945c6b3 100644
--- a/src/lib/elm_popup.eo
+++ b/src/lib/elm_popup.eo
@@ -150,9 +150,9 @@ class Elm.Popup (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
          return: Elm_Object_Item *;
          params {
             @in const(char)* label; /*@ The Label of the new item */
-            @in Evas_Object *icon; /*@ Icon to be set on new item */
-            @in Evas_Smart_Cb func; /*@ Convenience function called when item 
selected */
-            @in const(void)* data; /*@ Data passed to @p func above */
+            @in Evas_Object *icon @optional; /*@ Icon to be set on new item */
+            @in Evas_Smart_Cb func @optional; /*@ Convenience function called 
when item selected */
+            @in const(void)* data @optional; /*@ Data passed to @p func above 
*/
          }
       }
    }
diff --git a/src/lib/elm_prefs.eo b/src/lib/elm_prefs.eo
index 86d8486..210fb00 100644
--- a/src/lib/elm_prefs.eo
+++ b/src/lib/elm_prefs.eo
@@ -48,7 +48,7 @@ class Elm.Prefs (Elm.Widget, Efl.File)
             @since 1.8 */
          }
          values {
-            Elm_Prefs_Data *data; /*@ A valid prefs_data handle */
+            Elm_Prefs_Data *data @nullable; /*@ A valid prefs_data handle */
          }
       }
       autosave {
diff --git a/src/lib/elm_progressbar.eo b/src/lib/elm_progressbar.eo
index a5b7c48..119babb 100644
--- a/src/lib/elm_progressbar.eo
+++ b/src/lib/elm_progressbar.eo
@@ -199,7 +199,7 @@ class Elm.Progressbar (Elm.Layout)
             @ingroup Progressbar */
          }
          values {
-            const(char)* units; /*@ The format string for @p obj's units label 
*/
+            const(char)* units @nullable; /*@ The format string for @p obj's 
units label */
          }
       }
       unit_format_function {
@@ -216,8 +216,8 @@ class Elm.Progressbar (Elm.Layout)
             @ingroup Progressbar */
          }
          values {
-            progressbar_func_type func; /*@ The unit format function */
-            progressbar_freefunc_type free_func; /*@ The freeing function for 
the format string. */
+            progressbar_func_type func @nullable; /*@ The unit format function 
*/
+            progressbar_freefunc_type free_func @optional; /*@ The freeing 
function for the format string. */
          }
       }
    }
diff --git a/src/lib/elm_radio.eo b/src/lib/elm_radio.eo
index 95158b3..dc5aadb 100644
--- a/src/lib/elm_radio.eo
+++ b/src/lib/elm_radio.eo
@@ -64,7 +64,7 @@ class Elm.Radio (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
             @ingroup Radio */
          }
          values {
-            int *valuep; /*@ Pointer to the integer to modify */
+            int *valuep @nullable; /*@ Pointer to the integer to modify */
          }
       }
       selected_object {
diff --git a/src/lib/elm_segment_control.eo b/src/lib/elm_segment_control.eo
index 30742ed..8756d82 100644
--- a/src/lib/elm_segment_control.eo
+++ b/src/lib/elm_segment_control.eo
@@ -82,10 +82,10 @@ class Elm.Segment_Control (Elm.Layout)
 
          return: Elm_Object_Item *;
          params {
-            @in Evas_Object *icon; /*@ The icon object to use for the left 
side of the item. An
+            @in Evas_Object *icon @optional; /*@ The icon object to use for 
the left side of the item. An
             icon can be any Evas object, but usually it is an icon created
             with elm_icon_add(). */
-            @in const(char)* label; /*@ The label of the item. */
+            @in const(char)* label @optional; /*@ The label of the item. */
             @in int idx; /*@ Item position. Value should be between 0 and 
items count. */
          }
       }
@@ -158,10 +158,10 @@ class Elm.Segment_Control (Elm.Layout)
 
          return: Elm_Object_Item *;
          params {
-            @in Evas_Object *icon; /*@ The icon object to use for the left 
side of the item. An
+            @in Evas_Object *icon @optional; /*@ The icon object to use for 
the left side of the item. An
             icon can be any Evas object, but usually it is an icon created
             with elm_icon_add(). */
-            @in const(char)* label; /*@ The label of the item.
+            @in const(char)* label @optional; /*@ The label of the item.
             Note that, NULL is different from empty string "". */
          }
       }
diff --git a/src/lib/elm_slider.eo b/src/lib/elm_slider.eo
index f877360..ddba6e7 100644
--- a/src/lib/elm_slider.eo
+++ b/src/lib/elm_slider.eo
@@ -105,7 +105,7 @@ class Elm.Slider (Elm.Layout, Elm_Interface_Atspi_Value,
             @ingroup Slider */
          }
          values {
-            const(char)* indicator; /*@ The format string for the indicator 
display. */
+            const(char)* indicator @nullable; /*@ The format string for the 
indicator display. */
          }
       }
       inverted {
@@ -241,7 +241,7 @@ class Elm.Slider (Elm.Layout, Elm_Interface_Atspi_Value,
             @ingroup Slider */
          }
          values {
-            const(char)* units; /*@ The format string for the unit display. */
+            const(char)* units @nullable; /*@ The format string for the unit 
display. */
          }
       }
       indicator_show_on_focus {
@@ -367,8 +367,8 @@ class Elm.Slider (Elm.Layout, Elm_Interface_Atspi_Value,
             @ingroup Slider */
          }
          values {
-            slider_func_type func; /*@ The indicator format function. */
-            slider_freefunc_type free_func; /*@ The freeing function for the 
format string. */
+            slider_func_type func @nullable; /*@ The indicator format 
function. */
+            slider_freefunc_type free_func @nullable; /*@ The freeing function 
for the format string. */
          }
       }
       units_format_function {
@@ -383,8 +383,8 @@ class Elm.Slider (Elm.Layout, Elm_Interface_Atspi_Value,
             @ingroup Slider */
          }
          values {
-            slider_func_type func; /*@ The units format function. */
-            slider_freefunc_type free_func; /*@ The freeing function for the 
format string. */
+            slider_func_type func @nullable; /*@ The units format function. */
+            slider_freefunc_type free_func @nullable; /*@ The freeing function 
for the format string. */
          }
       }
    }
diff --git a/src/lib/elm_slideshow.eo b/src/lib/elm_slideshow.eo
index 8a96f33..abebe7e 100644
--- a/src/lib/elm_slideshow.eo
+++ b/src/lib/elm_slideshow.eo
@@ -112,7 +112,7 @@ class Elm.Slideshow (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
             @ingroup Slideshow */
          }
          values {
-            const(char)* transition; /*@ The new transition's name string */
+            const(char)* transition @nullable; /*@ The new transition's name 
string */
          }
       }
       loop {
@@ -201,7 +201,7 @@ class Elm.Slideshow (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
             call to this function when changes happen.
 
             @ingroup Slideshow */
-            return: const(list)*;
+            return: const(list<Elm_Object_Item *>)*;
          }
       }
       transitions {
@@ -243,7 +243,7 @@ class Elm.Slideshow (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
             @see elm_slideshow_transition_set()
 
             @ingroup Slideshow */
-            return: const(list)*;
+            return: const(list<const(char)*>)*;
          }
       }
       count {
@@ -303,7 +303,7 @@ class Elm.Slideshow (Elm.Layout, 
Elm_Interface_Atspi_Widget_Action)
             @see elm_slideshow_layout_set()
 
             @ingroup Slideshow */
-            return: const(list)*;
+            return: const(list<const(char)*>)*;
          }
       }
    }
diff --git a/src/lib/elm_spinner.eo b/src/lib/elm_spinner.eo
index 6d2056f..d570f76 100644
--- a/src/lib/elm_spinner.eo
+++ b/src/lib/elm_spinner.eo
@@ -325,7 +325,7 @@ class Elm.Spinner (Elm.Layout, Elm_Interface_Atspi_Value, 
Elm_Interface_Atspi_Wi
             @ingroup Spinner */
          }
          values {
-            const(char)* fmt; /*@ The format string for the label display. */
+            const(char)* fmt @nullable; /*@ The format string for the label 
display. */
          }
       }
    }
diff --git a/src/lib/elm_systray.eo b/src/lib/elm_systray.eo
index 1b88dd4..28761ec 100644
--- a/src/lib/elm_systray.eo
+++ b/src/lib/elm_systray.eo
@@ -11,7 +11,7 @@ class Elm.Systray (Eo.Base)
             /*@ Get the id of the Status Notifier Item. */
          }
          values {
-            const(char)* id;
+            const(char)* id @nullable;
          }
       }
       category {
@@ -33,7 +33,7 @@ class Elm.Systray (Eo.Base)
             /*@ Get the path to the icon's theme currently in use. */
          }
          values {
-            const(char)* icon_theme_path;
+            const(char)* icon_theme_path @nullable;
          }
       }
       menu {
@@ -44,7 +44,7 @@ class Elm.Systray (Eo.Base)
             /*@ Get the object path of the D-Bus Menu currently in use. */
          }
          values {
-            const(Eo)* menu;
+            const(Eo)* menu @nullable;
          }
       }
       att_icon_name {
@@ -55,7 +55,7 @@ class Elm.Systray (Eo.Base)
             /*@ Get the name of the attention icon used by the Status Notifier 
Item. */
          }
          values {
-            const(char)* att_icon_name;
+            const(char)* att_icon_name @nullable;
          }
       }
       status {
@@ -77,7 +77,7 @@ class Elm.Systray (Eo.Base)
             /*@ Get the name of the icon used by the Status Notifier Item. */
          }
          values {
-            const(char)* icon_name;
+            const(char)* icon_name @nullable;
          }
       }
       title {
@@ -88,7 +88,7 @@ class Elm.Systray (Eo.Base)
             /*@ Get the title of the Status Notifier Item. */
          }
          values {
-            const(char)* title;
+            const(char)* title @nullable;
          }
       }
    }
diff --git a/src/lib/elm_thumb.eo b/src/lib/elm_thumb.eo
index 46eaf2f..007cd10 100644
--- a/src/lib/elm_thumb.eo
+++ b/src/lib/elm_thumb.eo
@@ -276,8 +276,8 @@ class Elm.Thumb (Elm.Layout, Efl.File, 
Evas.Clickable_Interface)
             @ingroup Thumb */
          }
          values {
-            const(char)* file; /*@ Pointer to thumb path. */
-            const(char)* key; /*@ Pointer to thumb key. */
+            const(char)* file @optional; /*@ Pointer to thumb path. */
+            const(char)* key @optional; /*@ Pointer to thumb key. */
          }
       }
    }
diff --git a/src/lib/elm_toolbar.eo b/src/lib/elm_toolbar.eo
index b805de7..bb4ec62 100644
--- a/src/lib/elm_toolbar.eo
+++ b/src/lib/elm_toolbar.eo
@@ -351,10 +351,10 @@ class Elm.Toolbar (Elm.Widget, Elm_Interface_Scrollable,
          return: Elm_Object_Item *;
          params {
             @in Elm_Object_Item *before; /*@ The toolbar item to insert 
before. */
-            @in const(char)* icon; /*@ A string with icon name or the absolute 
path of an image file. */
+            @in const(char)* icon @optional; /*@ A string with icon name or 
the absolute path of an image file. */
             @in const(char)* label; /*@ The label of the item. */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The data to associate with the item for 
related callbacks. */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related callbacks. */
          }
       }
       item_insert_after {
@@ -391,10 +391,10 @@ class Elm.Toolbar (Elm.Widget, Elm_Interface_Scrollable,
          return: Elm_Object_Item *;
          params {
             @in Elm_Object_Item *after; /*@ The toolbar item to insert after. 
*/
-            @in const(char)* icon; /*@ A string with icon name or the absolute 
path of an image file. */
+            @in const(char)* icon @optional; /*@ A string with icon name or 
the absolute path of an image file. */
             @in const(char)* label; /*@ The label of the item. */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The data to associate with the item for 
related callbacks. */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related callbacks. */
          }
       }
       item_append {
@@ -430,10 +430,10 @@ class Elm.Toolbar (Elm.Widget, Elm_Interface_Scrollable,
 
          return: Elm_Object_Item *;
          params {
-            @in const(char)* icon; /*@ A string with icon name or the absolute 
path of an image file. */
+            @in const(char)* icon @optional; /*@ A string with icon name or 
the absolute path of an image file. */
             @in const(char)* label; /*@ The label of the item. */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The data to associate with the item for 
related callbacks. */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related callbacks. */
          }
       }
       items_count @const {
@@ -476,10 +476,10 @@ class Elm.Toolbar (Elm.Widget, Elm_Interface_Scrollable,
 
          return: Elm_Object_Item *;
          params {
-            @in const(char)* icon; /*@ A string with icon name or the absolute 
path of an image file. */
+            @in const(char)* icon @optional; /*@ A string with icon name or 
the absolute path of an image file. */
             @in const(char)* label; /*@ The label of the item. */
-            @in Evas_Smart_Cb func; /*@ The function to call when the item is 
clicked. */
-            @in const(void)* data; /*@ The data to associate with the item for 
related callbacks. */
+            @in Evas_Smart_Cb func @optional; /*@ The function to call when 
the item is clicked. */
+            @in const(void)* data @optional; /*@ The data to associate with 
the item for related callbacks. */
          }
       }
       item_find_by_label @const {
diff --git a/src/lib/elm_toolbar_item.eo b/src/lib/elm_toolbar_item.eo
index 12b3dec..6ea7d4e 100644
--- a/src/lib/elm_toolbar_item.eo
+++ b/src/lib/elm_toolbar_item.eo
@@ -98,7 +98,7 @@ class Elm.Toolbar_Item(Elm.Widget_Item)
                       */
                 }
                 values {
-                     Eina_Bool selected; /*@ The selected state */
+                     bool selected; /*@ The selected state */
                 }
            }
            icon {
@@ -194,7 +194,7 @@ class Elm.Toolbar_Item(Elm.Widget_Item)
                       */
                 }
                 values {
-                     Eina_Bool separator;
+                     bool separator;
                 }
            }
            menu {
@@ -246,7 +246,7 @@ class Elm.Toolbar_Item(Elm.Widget_Item)
                      return: bool;
                 }
                 values {
-                     Elm_Toolbar_Item_State *state;
+                     Elm_Toolbar_Item_State *state @nullable;
                 }
            }
       }
@@ -309,8 +309,8 @@ class Elm.Toolbar_Item(Elm.Widget_Item)
                 params {
                      @in const (char) *icon; /*@ A string with icon name or 
the absolute path of an image file. */
                      @in const (char) *label; /*@ The label of the new state. 
*/
-                     @in Evas_Smart_Cb func; /*@ The function to call when the 
item is clicked when this * state is selected. */
-                     @in const (void) *data; /*@ The data to associate with 
the state. */
+                     @in Evas_Smart_Cb func @optional; /*@ The function to 
call when the item is clicked when this * state is selected. */
+                     @in const (void) *data @optional; /*@ The data to 
associate with the state. */
                 }
                 return: Elm_Toolbar_Item_State *; /*@ The toolbar item state, 
or @c NULL upon failure. */
            }
@@ -409,7 +409,7 @@ class Elm.Toolbar_Item(Elm.Widget_Item)
                  @ingroup Toolbar
                  */
                 params {
-                     @in Eina_Bool menu; /*@ If @c EINA_TRUE, @p item will 
opens a menu when selected. */
+                     @in bool menu; /*@ If @c EINA_TRUE, @p item will opens a 
menu when selected. */
                 }
            }
       }
diff --git a/src/lib/elm_web.eo b/src/lib/elm_web.eo
index 2b83558..3555ad5 100644
--- a/src/lib/elm_web.eo
+++ b/src/lib/elm_web.eo
@@ -261,8 +261,8 @@ class Elm.Web (Elm.Widget)
             @ingroup Web */
          }
          values {
-            Elm_Web_Window_Open func; /*@ The hook function to be called when 
a window is requested */
-            void *data; /*@ User data */
+            Elm_Web_Window_Open func @nullable; /*@ The hook function to be 
called when a window is requested */
+            void *data @optional; /*@ User data */
          }
       }
       dialog_file_selector_hook {
@@ -280,8 +280,8 @@ class Elm.Web (Elm.Widget)
             @ingroup Web */
          }
          values {
-            Elm_Web_Dialog_File_Selector func; /*@ The callback function to be 
used */
-            void *data; /*@ User data */
+            Elm_Web_Dialog_File_Selector func @nullable; /*@ The callback 
function to be used */
+            void *data @optional; /*@ User data */
          }
       }
       dialog_confirm_hook {
@@ -298,8 +298,8 @@ class Elm.Web (Elm.Widget)
             @ingroup Web */
          }
          values {
-            Elm_Web_Dialog_Confirm func; /*@ The callback function to be used 
*/
-            void *data; /*@ User data */
+            Elm_Web_Dialog_Confirm func @nullable; /*@ The callback function 
to be used */
+            void *data @optional; /*@ User data */
          }
       }
       popup_selected {
@@ -333,8 +333,8 @@ class Elm.Web (Elm.Widget)
             @ingroup Web */
          }
          values {
-            Elm_Web_Dialog_Prompt func; /*@ The callback function to be used */
-            void *data; /*@ User data */
+            Elm_Web_Dialog_Prompt func @nullable; /*@ The callback function to 
be used */
+            void *data @optional; /*@ User data */
          }
       }
       dialog_alert_hook {
@@ -351,8 +351,8 @@ class Elm.Web (Elm.Widget)
             @ingroup Web */
          }
          values {
-            Elm_Web_Dialog_Alert func; /*@ The callback function to be used */
-            void *data; /*@ User data */
+            Elm_Web_Dialog_Alert func @nullable; /*@ The callback function to 
be used */
+            void *data @optional; /*@ User data */
          }
       }
       forward_possible {
@@ -426,7 +426,7 @@ class Elm.Web (Elm.Widget)
             error occurred
 
             @ingroup Web */
-            return: const(char)*;
+            return: own(const(char)*) @warn_unused;
          }
       }
       title {
@@ -441,7 +441,7 @@ class Elm.Web (Elm.Widget)
             failure
 
             @ingroup Web */
-            return: const(char)*;
+            return: free(own(const(char)*), eina_stringshare_del) @warn_unused;
          }
       }
    }
@@ -503,8 +503,8 @@ class Elm.Web (Elm.Widget)
          return: bool;
          params {
             @in const(char)* html; /*@ HTML data to load */
-            @in const(char)* base_url; /*@ Base URL used for relative paths to 
external objects (optional) */
-            @in const(char)* unreachable_url; /*@ URL that could not be 
reached (optional) */
+            @in const(char)* base_url @optional; /*@ Base URL used for 
relative paths to external objects (optional) */
+            @in const(char)* unreachable_url @optional; /*@ URL that could not 
be reached (optional) */
          }
       }
       text_search @const {
diff --git a/src/lib/elm_widget.eo b/src/lib/elm_widget.eo
index f6d9a95..885348a 100644
--- a/src/lib/elm_widget.eo
+++ b/src/lib/elm_widget.eo
@@ -67,7 +67,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
             /*@ No description supplied by the EAPI. */
          }
          values {
-            Elm_Theme *th;
+            Elm_Theme *th @nullable;
          }
       }
       disabled {
@@ -145,7 +145,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
             /*@ No description supplied by the EAPI. */
          }
          values {
-            list *objs @const_get;
+            list<Evas_Object *> *objs @const_get;
          }
       }
       can_focus {
@@ -178,7 +178,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
             /*@ No description supplied by the EAPI. */
          }
          values {
-            Evas_Object *parent;
+            Evas_Object *parent @nullable;
          }
       }
       access_info {
@@ -189,7 +189,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
             /*@ No description supplied by the EAPI. */
          }
          values {
-            const(char)* txt;
+            const(char)* txt @nullable;
          }
       }
       drag_lock_x {
@@ -239,7 +239,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
             /*@ No description supplied by the EAPI. */
          }
          values {
-            Evas_Object *sobj;
+            Evas_Object *sobj @nullable;
          }
       }
       display_mode {
@@ -255,8 +255,8 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
             /*@ No description supplied by the EAPI. */
          }
          values {
-            region_hook_func_type func;
-            void *data;
+            region_hook_func_type func @nullable;
+            void *data @optional;
          }
       }
       domain_part_text_translatable {
@@ -282,7 +282,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
             /*@ No description supplied by the EAPI. */
          }
          values {
-            Evas_Object *sobj;
+            Evas_Object *sobj @nullable;
             bool sub_obj;
          }
       }
@@ -301,7 +301,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
             /*@
             Function to operate on a given widget's scrollabe children when 
necessary.
             @warning free the returned list with eina_list_free(). */
-            return: list *;
+            return: free(own(list<Evas_Object *> *), eina_list_free) 
@warn_unused;
          }
       }
       scroll_hold {
@@ -372,7 +372,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
       can_focus_child_list {
          get {
             /*@ No description supplied by the EAPI. */
-            return: list *;
+            return: free(own(list<Evas_Object *> *), eina_list_free) 
@warn_unused;
          }
       }
       focused_item {
@@ -417,7 +417,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
             /*@ No description supplied by the EAPI. */
          }
          values {
-            Evas_Object *parent;
+            Evas_Object *parent @nullable;
          }
       }
       part_text {
@@ -456,7 +456,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
       focus_next_object_set {
          /*@ No description supplied by the EAPI. */
          params {
-            @in Evas_Object *next;
+            @in Evas_Object *next @nullable;
             @in Elm_Focus_Direction dir;
          }
       }
@@ -474,7 +474,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
          /*@ No description supplied by the EAPI. */
          params {
             @in Evas_Object *child;
-            @in Evas_Object *relative_child;
+            @in Evas_Object *relative_child @optional;
          }
       }
       part_text_translate {
@@ -527,7 +527,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
          /*@ No description supplied by the EAPI. */
          params {
             @in Elm_Event_Cb func;
-            @in const(void)* data;
+            @in const(void)* data @optional;
          }
       }
       access {
@@ -548,7 +548,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
          return: void *;
          params {
             @in Elm_Event_Cb func;
-            @in const(void)* data;
+            @in const(void)* data @nullable;
          }
       }
       on_focus {
@@ -647,10 +647,10 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
       show_region_get @const {
          /*@ No description supplied by the EAPI. */
          params {
-            @out Evas_Coord x;
-            @out Evas_Coord y;
-            @out Evas_Coord w;
-            @out Evas_Coord h;
+            @out Evas_Coord x @optional;
+            @out Evas_Coord y @optional;
+            @out Evas_Coord w @optional;
+            @out Evas_Coord h @optional;
          }
       }
       scroll_freeze_pop {
@@ -789,7 +789,7 @@ abstract Elm.Widget (Evas.Object_Smart, 
Elm_Interface_Atspi_Accessible, Elm_Inte
          /*@ No description supplied by the EAPI. */
          params {
             @in Evas_Object *child;
-            @in Evas_Object *relative_child;
+            @in Evas_Object *relative_child @optional;
          }
       }
    }
diff --git a/src/lib/elm_widget_item.eo b/src/lib/elm_widget_item.eo
index 7e03b77..dc0320e 100644
--- a/src/lib/elm_widget_item.eo
+++ b/src/lib/elm_widget_item.eo
@@ -160,9 +160,9 @@ class Elm.Widget_Item(Eo.Base, 
Elm_Interface_Atspi_Accessible)
                       */
                 }
                 values {
-                     Eina_Bool engine_only; /* Use @c EINA_TRUE to have 
cursors looked for only
-                                               on those provided by the 
rendering engine, @c EINA_FALSE
-                                               to have them searched on the 
widget's theme, as well. */
+                     bool engine_only; /* Use @c EINA_TRUE to have cursors 
looked for only
+                                          on those provided by the rendering 
engine, @c EINA_FALSE
+                                          to have them searched on the 
widget's theme, as well. */
                 }
            }
            part_content {
@@ -191,7 +191,7 @@ class Elm.Widget_Item(Eo.Base, 
Elm_Interface_Atspi_Accessible)
                       */
                 }
                 keys {
-                     const (char) *part; /*@ The content part name  (NULL for 
the default content) */
+                     const (char) *part @nullable; /*@ The content part name  
(NULL for the default content) */
                 }
                 values {
                      Evas_Object *content; /*@ The content of the object item 
*/
@@ -217,7 +217,7 @@ class Elm.Widget_Item(Eo.Base, 
Elm_Interface_Atspi_Accessible)
                       */
                 }
                 keys {
-                     const (char) *part; /*@ The text part name (NULL for the 
default label) */
+                     const (char) *part @nullable; /*@ The text part name 
(NULL for the default label) */
                 }
                 values {
                      const (char) *label; /*@ Text of the label */
@@ -261,7 +261,7 @@ class Elm.Widget_Item(Eo.Base, 
Elm_Interface_Atspi_Accessible)
                       */
                 }
                 values {
-                     Eina_Bool focused; /*@ The focused state */
+                     bool focused; /*@ The focused state */
                 }
            }
            style {
@@ -314,32 +314,31 @@ class Elm.Widget_Item(Eo.Base, 
Elm_Interface_Atspi_Accessible)
                       */
                 }
                 values {
-                     Eina_Bool disable; /*@ @c EINA_TRUE, if the widget item 
is disabled, @c EINA_FALSE if it's enabled (or on errors) */
+                     bool disable; /*@ @c EINA_TRUE, if the widget item is 
disabled, @c EINA_FALSE if it's enabled (or on errors) */
                 }
            }
-           access_order {
-                get {
-                     /**
-                       @brief Get highlight order
-                       @since 1.8
+      }
+      methods {
+           access_order_get {
+                /**
+                  @brief Get highlight order
+                  @since 1.8
 
-                       @ingroup General
-                      */
-                }
-                set {
-                     /**
-                       @brief Set highlight order
-                       @since 1.8
+                  @ingroup General
+                 */
+                return: const(list<Evas_Object *>) *;
+           }
+           access_order_set {
+                /**
+                  @brief Set highlight order
+                  @since 1.8
 
-                       @ingroup General
-                      */
-                }
-                values {
-                     Eina_List *objs @const_get; /*@ Order of objects to pass 
highlight */
+                  @ingroup General
+                 */
+                params {
+                     @in own(list<Evas_Object *> *) objs; /*@ Order of objects 
to pass highlight */
                 }
            }
-      }
-      methods {
            widget_get @const {
                 /**
                   Get the widget object's handle which contains a given item
@@ -572,7 +571,7 @@ class Elm.Widget_Item(Eo.Base, 
Elm_Interface_Atspi_Accessible)
                 params {
                      const (char) *part; /*@ The part name of the translatable 
text */
                      const (char) *domain; /*@ The translation domain to use */
-                     Eina_Bool translatable; /*@ @c EINA_TRUE, the part text 
will be translated internally. @c EINA_FALSE, otherwise. */
+                     bool translatable; /*@ @c EINA_TRUE, the part text will 
be translated internally. @c EINA_FALSE, otherwise. */
                 }
            }
            track {
@@ -662,7 +661,7 @@ class Elm.Widget_Item(Eo.Base, 
Elm_Interface_Atspi_Accessible)
                   @ingroup General
                  */
                 params {
-                     Evas_Smart_Cb del_cb; /*@ The function called */
+                     Evas_Smart_Cb del_cb @nullable; /*@ The function called */
                 }
            }
            tooltip_content_cb_set {
@@ -680,13 +679,13 @@ class Elm.Widget_Item(Eo.Base, 
Elm_Interface_Atspi_Accessible)
                   @ingroup General
                  */
                 params {
-                     Elm_Tooltip_Item_Content_Cb func; /*@ the function used 
to create the tooltip contents. */
-                     const (void) *data; /*@ what to provide to @a func as 
callback data/context. */
-                     Evas_Smart_Cb del_cb; /*@ called when data is not needed 
anymore, either when
-                                             another callback replaces @a 
func, the tooltip is unset with
-                                             elm_object_item_tooltip_unset() 
or the owner @a item
-                                             dies. This callback receives as 
the first parameter the
-                                             given @a data, and @p event_info 
is the item. */
+                     Elm_Tooltip_Item_Content_Cb func @nullable; /*@ the 
function used to create the tooltip contents. */
+                     const (void) *data @optional; /*@ what to provide to @a 
func as callback data/context. */
+                     Evas_Smart_Cb del_cb @optional; /*@ called when data is 
not needed anymore, either when
+                                                       another callback 
replaces @a func, the tooltip is unset with
+                                                       
elm_object_item_tooltip_unset() or the owner @a item
+                                                       dies. This callback 
receives as the first parameter the
+                                                       given @a data, and @p 
event_info is the item. */
 
                 }
            }
diff --git a/src/lib/elm_win.eo b/src/lib/elm_win.eo
index 7d46a04..6d7e418 100644
--- a/src/lib/elm_win.eo
+++ b/src/lib/elm_win.eo
@@ -307,7 +307,7 @@ class Elm.Win (Elm.Widget, Elm_Interface_Atspi_Window,
             @ingroup Win */
          }
          values {
-            const(char)* style; /*@ The style to set */
+            const(char)* style @nullable; /*@ The style to set */
          }
       }
       borderless {
@@ -538,7 +538,7 @@ class Elm.Win (Elm.Widget, Elm_Interface_Atspi_Window,
             @ingroup Win */
          }
          values {
-            Evas_Object *icon @const_get; /*@ The Evas image object to use for 
an icon */
+            Evas_Object *icon @const_get @nullable; /*@ The Evas image object 
to use for an icon */
          }
       }
       quickpanel_priority_minor {
@@ -1247,7 +1247,7 @@ class Elm.Win (Elm.Widget, Elm_Interface_Atspi_Window,
 
          params {
             @in Elm_Illume_Command command; /*@ The command to send */
-            @in void *params; /*@ Optional parameters for the command */
+            @in void *params @optional; /*@ Optional parameters for the 
command */
          }
       }
       activate {

-- 


Reply via email to