jackdanielz pushed a commit to branch master.

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

commit f64d6ba6df2defaae6b06b55371da3684e3c976c
Author: Daniel Zaoui <daniel.za...@samsung.com>
Date:   Sun Mar 30 08:34:10 2014 +0300

    Eolian: Integration of File Selector Button
---
 src/lib/Makefile.am                      |   4 +
 src/lib/elc_fileselector_button.c        | 265 ++++++-------------------------
 src/lib/elc_fileselector_button.eo       | 118 ++++++++++++++
 src/lib/elc_fileselector_button_eo.h     |   4 +
 src/lib/elm_widget_fileselector_button.h |   8 +-
 5 files changed, 182 insertions(+), 217 deletions(-)

diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 5820857..ee513e5 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -585,6 +585,8 @@ BUILT_SOURCES = \
                elm_diskselector.eo.h \
                elm_entry.eo.c \
                elm_entry.eo.h \
+               elc_fileselector_button.eo.c \
+               elc_fileselector_button.eo.h \
                elm_flip.eo.c \
                elm_flip.eo.h \
                elm_gesture_layer.eo.c \
@@ -701,6 +703,7 @@ EXTRA_DIST += \
             elm_dayselector.eo \
             elm_diskselector.eo \
             elm_entry.eo \
+            elc_fileselector_button.eo \
             elm_flip.eo \
             elm_gesture_layer.eo \
             elm_glview.eo \
@@ -775,6 +778,7 @@ nodist_includesunstable_HEADERS = \
                                  elm_dayselector.eo.h \
                                  elm_diskselector.eo.h \
                                  elm_entry.eo.h \
+                                 elc_fileselector_button.eo.h \
                                  elm_flip.eo.h \
                                  elm_gesture_layer.eo.h \
                                  elm_glview.eo.h \
diff --git a/src/lib/elc_fileselector_button.c 
b/src/lib/elc_fileselector_button.c
index 7a1666b..ce04f31 100644
--- a/src/lib/elc_fileselector_button.c
+++ b/src/lib/elc_fileselector_button.c
@@ -7,8 +7,6 @@
 #include "elm_interface_fileselector.h"
 #include "elm_widget_fileselector_button.h"
 
-EAPI Eo_Op ELM_OBJ_FILESELECTOR_BUTTON_BASE_ID = EO_NOOP;
-
 #define MY_CLASS ELM_OBJ_FILESELECTOR_BUTTON_CLASS
 
 #define MY_CLASS_NAME "Elm_Fileselector_Button"
@@ -31,17 +29,15 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = 
{
 };
 #undef ELM_PRIV_FILESELECTOR_BUTTON_SIGNALS
 
-static void
-_elm_fileselector_button_smart_theme(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list)
+EOLIAN static Eina_Bool
+_elc_fileselector_button_elm_widget_theme_apply(Eo *obj, 
Elc_Fileselector_Button_Data *sd EINA_UNUSED)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   if (ret) *ret = EINA_FALSE;
    Eina_Bool int_ret;
 
    char buf[4096];
    const char *style;
 
-   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
+   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
 
    style = eina_stringshare_add(elm_widget_style_get(obj));
 
@@ -51,13 +47,13 @@ _elm_fileselector_button_smart_theme(Eo *obj, void *_pd 
EINA_UNUSED, va_list *li
    eina_stringshare_replace(&(wd->style), buf);
 
    eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret));
-   if (!int_ret) return;
+   if (!int_ret) return EINA_FALSE;
 
    eina_stringshare_replace(&(wd->style), style);
 
    eina_stringshare_del(style);
 
-   if (ret) *ret = EINA_TRUE;
+   return EINA_TRUE;
 }
 
 static void
@@ -65,7 +61,7 @@ _selection_done(void *data,
                 Evas_Object *obj EINA_UNUSED,
                 void *event_info)
 {
-   Elm_Fileselector_Button_Smart_Data *sd = data;
+   Elc_Fileselector_Button_Data *sd = data;
    const char *file = event_info;
    Evas_Object *del;
 
@@ -81,7 +77,7 @@ _selection_done(void *data,
 }
 
 static Evas_Object *
-_new_window_add(Elm_Fileselector_Button_Smart_Data *sd)
+_new_window_add(Elc_Fileselector_Button_Data *sd)
 {
    Evas_Object *win, *bg;
 
@@ -109,7 +105,7 @@ _parent_win_get(Evas_Object *obj)
 }
 
 static void
-_activate(Elm_Fileselector_Button_Smart_Data *sd)
+_activate(Elc_Fileselector_Button_Data *sd)
 {
    Eina_Bool is_inwin = EINA_FALSE;
 
@@ -164,11 +160,9 @@ _button_clicked(void *data,
    _activate(data);
 }
 
-static void
-_elm_fileselector_button_smart_add(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
+EOLIAN static void
+_elc_fileselector_button_evas_smart_add(Eo *obj, Elc_Fileselector_Button_Data 
*priv)
 {
-   Elm_Fileselector_Button_Smart_Data *priv = _pd;
-
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
    elm_widget_sub_object_parent_add(obj);
 
@@ -189,11 +183,9 @@ _elm_fileselector_button_smart_add(Eo *obj, void *_pd, 
va_list *list EINA_UNUSED
    elm_widget_can_focus_set(obj, EINA_TRUE);
 }
 
-static void
-_elm_fileselector_button_smart_del(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
+EOLIAN static void
+_elc_fileselector_button_evas_smart_del(Eo *obj, Elc_Fileselector_Button_Data 
*sd)
 {
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
    eina_stringshare_del(sd->window_title);
    eina_stringshare_del(sd->fsd.path);
    evas_object_del(sd->fsw);
@@ -201,11 +193,10 @@ _elm_fileselector_button_smart_del(Eo *obj, void *_pd, 
va_list *list EINA_UNUSED
    eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
 }
 
-static void
-_elm_fileselector_button_smart_admits_autorepeat_get(Eo *obj EINA_UNUSED, void 
*_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elc_fileselector_button_elm_button_admits_autorepeat_get(Eo *obj EINA_UNUSED, 
Elc_Fileselector_Button_Data *sd EINA_UNUSED)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   *ret = EINA_FALSE;
+   return EINA_FALSE;
 }
 
 EAPI Evas_Object *
@@ -217,10 +208,9 @@ elm_fileselector_button_add(Evas_Object *parent)
    return obj;
 }
 
-static void
-_constructor(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elc_fileselector_button_eo_base_constructor(Eo *obj, 
Elc_Fileselector_Button_Data *sd)
 {
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
    sd->obj = obj;
 
    eo_do_super(obj, MY_CLASS, eo_constructor());
@@ -229,81 +219,32 @@ _constructor(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
 }
 
-EAPI void
-elm_fileselector_button_window_title_set(Evas_Object *obj,
-                                         const char *title)
+EOLIAN static void
+_elc_fileselector_button_window_title_set(Eo *obj EINA_UNUSED, 
Elc_Fileselector_Button_Data *sd, const char *title)
 {
-   ELM_FILESELECTOR_BUTTON_CHECK(obj);
-   eo_do(obj, elm_obj_fileselector_button_window_title_set(title));
-}
-
-static void
-_window_title_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   const char *title = va_arg(*list, const char *);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
    eina_stringshare_replace(&sd->window_title, title);
 
    if (sd->fsw) elm_win_title_set(sd->fsw, sd->window_title);
 }
 
-EAPI const char *
-elm_fileselector_button_window_title_get(const Evas_Object *obj)
-{
-   ELM_FILESELECTOR_BUTTON_CHECK(obj) NULL;
-   const char *ret = NULL;
-   eo_do((Eo *) obj, elm_obj_fileselector_button_window_title_get(&ret));
-   return ret;
-}
-
-static void
-_window_title_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   const char **ret = va_arg(*list, const char **);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
-   *ret = sd->window_title;
-}
-
-EAPI void
-elm_fileselector_button_window_size_set(Evas_Object *obj,
-                                        Evas_Coord width,
-                                        Evas_Coord height)
+EOLIAN static const char *
+_elc_fileselector_button_window_title_get(Eo *obj EINA_UNUSED, 
Elc_Fileselector_Button_Data *sd)
 {
-   ELM_FILESELECTOR_BUTTON_CHECK(obj);
-   eo_do(obj, elm_obj_fileselector_button_window_size_set(width, height));
+   return sd->window_title;
 }
 
-static void
-_window_size_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elc_fileselector_button_window_size_set(Eo *obj EINA_UNUSED, 
Elc_Fileselector_Button_Data *sd, Evas_Coord width, Evas_Coord height)
 {
-   Evas_Coord width = va_arg(*list, Evas_Coord);
-   Evas_Coord height = va_arg(*list, Evas_Coord);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
    sd->w = width;
    sd->h = height;
 
    if (sd->fsw) evas_object_resize(sd->fsw, sd->w, sd->h);
 }
 
-EAPI void
-elm_fileselector_button_window_size_get(const Evas_Object *obj,
-                                        Evas_Coord *width,
-                                        Evas_Coord *height)
-{
-   ELM_FILESELECTOR_BUTTON_CHECK(obj);
-   eo_do((Eo *) obj, elm_obj_fileselector_button_window_size_get(width, 
height));
-}
-
-static void
-_window_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elc_fileselector_button_window_size_get(Eo *obj EINA_UNUSED, 
Elc_Fileselector_Button_Data *sd, Evas_Coord *width, Evas_Coord *height)
 {
-   Evas_Coord *width = va_arg(*list, Evas_Coord *);
-   Evas_Coord *height = va_arg(*list, Evas_Coord *);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
    if (width) *width = sd->w;
    if (height) *height = sd->h;
 }
@@ -316,12 +257,9 @@ elm_fileselector_button_path_set(Evas_Object *obj,
    eo_do(obj, elm_interface_fileselector_path_set(path));
 }
 
-static void
-_path_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elc_fileselector_button_elm_interface_fileselector_path_set(Eo *obj 
EINA_UNUSED, Elc_Fileselector_Button_Data *sd, const char *path)
 {
-   const char *path = va_arg(*list, const char *);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
    eina_stringshare_replace(&sd->fsd.path, path);
 
    if (sd->fs) elm_fileselector_selected_set(sd->fs, sd->fsd.path);
@@ -336,13 +274,10 @@ elm_fileselector_button_path_get(const Evas_Object *obj)
    return ret;
 }
 
-static void
-_path_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static const char *
+_elc_fileselector_button_elm_interface_fileselector_path_get(Eo *obj 
EINA_UNUSED, Elc_Fileselector_Button_Data *sd)
 {
-   const char **ret = va_arg(*list, const char **);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
-   *ret = sd->fsd.path;
+   return sd->fsd.path;
 }
 
 EINA_DEPRECATED EAPI void
@@ -353,12 +288,9 @@ elm_fileselector_button_expandable_set(Evas_Object *obj,
    eo_do(obj, elm_interface_fileselector_expandable_set(value));
 }
 
-static void
-_expandable_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elc_fileselector_button_elm_interface_fileselector_expandable_set(Eo *obj 
EINA_UNUSED, Elc_Fileselector_Button_Data *sd, Eina_Bool value)
 {
-   Eina_Bool value = va_arg(*list, int);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
    sd->fsd.expandable = value;
 
    if (sd->fs) elm_fileselector_expandable_set(sd->fs, sd->fsd.expandable);
@@ -373,13 +305,10 @@ elm_fileselector_button_expandable_get(const Evas_Object 
*obj)
    return ret;
 }
 
-static void
-_expandable_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elc_fileselector_button_elm_interface_fileselector_expandable_get(Eo *obj 
EINA_UNUSED, Elc_Fileselector_Button_Data *sd)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
-   *ret = sd->fsd.expandable;
+   return sd->fsd.expandable;
 }
 
 EINA_DEPRECATED EAPI void
@@ -390,12 +319,9 @@ elm_fileselector_button_folder_only_set(Evas_Object *obj,
    eo_do(obj, elm_interface_fileselector_folder_only_set(value));
 }
 
-static void
-_folder_only_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elc_fileselector_button_elm_interface_fileselector_folder_only_set(Eo *obj 
EINA_UNUSED, Elc_Fileselector_Button_Data *sd, Eina_Bool value)
 {
-   Eina_Bool value = va_arg(*list, int);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
    sd->fsd.folder_only = value;
 
    if (sd->fs) elm_fileselector_folder_only_set(sd->fs, sd->fsd.folder_only);
@@ -410,13 +336,10 @@ elm_fileselector_button_folder_only_get(const Evas_Object 
*obj)
    return ret;
 }
 
-static void
-_folder_only_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elc_fileselector_button_elm_interface_fileselector_folder_only_get(Eo *obj 
EINA_UNUSED, Elc_Fileselector_Button_Data *sd)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
-   *ret = sd->fsd.folder_only;
+   return sd->fsd.folder_only;
 }
 
 EINA_DEPRECATED EAPI void
@@ -427,12 +350,9 @@ elm_fileselector_button_is_save_set(Evas_Object *obj,
    eo_do(obj, elm_interface_fileselector_is_save_set(value));
 }
 
-static void
-_is_save_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elc_fileselector_button_elm_interface_fileselector_is_save_set(Eo *obj 
EINA_UNUSED, Elc_Fileselector_Button_Data *sd, Eina_Bool value)
 {
-   Eina_Bool value = va_arg(*list, int);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
    sd->fsd.is_save = value;
 
    if (sd->fs) elm_fileselector_is_save_set(sd->fs, sd->fsd.is_save);
@@ -447,103 +367,22 @@ elm_fileselector_button_is_save_get(const Evas_Object 
*obj)
    return ret;
 }
 
-static void
-_is_save_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
-   *ret = sd->fsd.is_save;
-}
-
-EAPI void
-elm_fileselector_button_inwin_mode_set(Evas_Object *obj,
-                                       Eina_Bool value)
+EOLIAN static Eina_Bool
+_elc_fileselector_button_elm_interface_fileselector_is_save_get(Eo *obj 
EINA_UNUSED, Elc_Fileselector_Button_Data *sd)
 {
-   ELM_FILESELECTOR_BUTTON_CHECK(obj);
-   eo_do(obj, elm_obj_fileselector_button_inwin_mode_set(value));
+   return sd->fsd.is_save;
 }
 
-static void
-_inwin_mode_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elc_fileselector_button_inwin_mode_set(Eo *obj EINA_UNUSED, 
Elc_Fileselector_Button_Data *sd, Eina_Bool value)
 {
-   Eina_Bool value = va_arg(*list, int);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
    sd->inwin_mode = value;
 }
 
-EAPI Eina_Bool
-elm_fileselector_button_inwin_mode_get(const Evas_Object *obj)
-{
-   ELM_FILESELECTOR_BUTTON_CHECK(obj) EINA_FALSE;
-   Eina_Bool ret = EINA_FALSE;
-   eo_do((Eo *) obj, elm_obj_fileselector_button_inwin_mode_get(&ret));
-   return ret;
-}
-
-static void
-_inwin_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elc_fileselector_button_inwin_mode_get(Eo *obj EINA_UNUSED, 
Elc_Fileselector_Button_Data *sd)
 {
-   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-   Elm_Fileselector_Button_Smart_Data *sd = _pd;
-
-   *ret = sd->inwin_mode;
+   return sd->inwin_mode;
 }
 
-static void
-_class_constructor(Eo_Class *klass)
-{
-   const Eo_Op_Func_Description func_desc[] = {
-        EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
-        EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), 
_elm_fileselector_button_smart_add),
-        EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), 
_elm_fileselector_button_smart_del),
-
-        EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), 
_elm_fileselector_button_smart_theme),
-
-        
EO_OP_FUNC(ELM_OBJ_BUTTON_ID(ELM_OBJ_BUTTON_SUB_ID_ADMITS_AUTOREPEAT_GET), 
_elm_fileselector_button_smart_admits_autorepeat_get),
-
-        
EO_OP_FUNC(ELM_INTERFACE_FILESELECTOR_ID(ELM_INTERFACE_FILESELECTOR_SUB_ID_PATH_SET),
 _path_set),
-        
EO_OP_FUNC(ELM_INTERFACE_FILESELECTOR_ID(ELM_INTERFACE_FILESELECTOR_SUB_ID_PATH_GET),
 _path_get),
-        
EO_OP_FUNC(ELM_INTERFACE_FILESELECTOR_ID(ELM_INTERFACE_FILESELECTOR_SUB_ID_EXPANDABLE_SET),
 _expandable_set),
-        
EO_OP_FUNC(ELM_INTERFACE_FILESELECTOR_ID(ELM_INTERFACE_FILESELECTOR_SUB_ID_EXPANDABLE_GET),
 _expandable_get),
-        
EO_OP_FUNC(ELM_INTERFACE_FILESELECTOR_ID(ELM_INTERFACE_FILESELECTOR_SUB_ID_FOLDER_ONLY_SET),
 _folder_only_set),
-        
EO_OP_FUNC(ELM_INTERFACE_FILESELECTOR_ID(ELM_INTERFACE_FILESELECTOR_SUB_ID_FOLDER_ONLY_GET),
 _folder_only_get),
-        
EO_OP_FUNC(ELM_INTERFACE_FILESELECTOR_ID(ELM_INTERFACE_FILESELECTOR_SUB_ID_IS_SAVE_SET),
 _is_save_set),
-        
EO_OP_FUNC(ELM_INTERFACE_FILESELECTOR_ID(ELM_INTERFACE_FILESELECTOR_SUB_ID_IS_SAVE_GET),
 _is_save_get),
-
-        
EO_OP_FUNC(ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_SET),
 _window_title_set),
-        
EO_OP_FUNC(ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_GET),
 _window_title_get),
-        
EO_OP_FUNC(ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_SET),
 _window_size_set),
-        
EO_OP_FUNC(ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_GET),
 _window_size_get),
-        
EO_OP_FUNC(ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_SET),
 _inwin_mode_set),
-        
EO_OP_FUNC(ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_GET),
 _inwin_mode_get),
-        EO_OP_FUNC_SENTINEL
-   };
-   eo_class_funcs_set(klass, func_desc);
-
-   evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
-}
-
-static const Eo_Op_Description op_desc[] = {
-     EO_OP_DESCRIPTION(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_SET, 
"Set the title for a given file selector button widget's window."),
-     EO_OP_DESCRIPTION(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_GET, 
"Get the title for a given file selector button widget's window."),
-     EO_OP_DESCRIPTION(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_SET, 
"Set the size of a given file selector button widget's window, holding the file 
selector itself."),
-     EO_OP_DESCRIPTION(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_GET, 
"Get the size of a given file selector button widget's window, holding the file 
selector itself."),
-     EO_OP_DESCRIPTION(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_SET, "Set 
whether a given file selector button widget's internal file selector will raise 
an Elementary 'inner window', instead of a dedicated Elementary window."),
-     EO_OP_DESCRIPTION(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_GET, "Get 
whether a given file selector button widget's internal file selector will raise 
an Elementary 'inner window', instead of a dedicated Elementary window."),
-     EO_OP_DESCRIPTION_SENTINEL
-};
-
-static const Eo_Class_Description class_desc = {
-     EO_VERSION,
-     MY_CLASS_NAME,
-     EO_CLASS_TYPE_REGULAR,
-     EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_FILESELECTOR_BUTTON_BASE_ID, op_desc, 
ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_LAST),
-     NULL,
-     sizeof(Elm_Fileselector_Button_Smart_Data),
-     _class_constructor,
-     NULL
-};
-
-EO_DEFINE_CLASS(elm_obj_fileselector_button_class_get, &class_desc, 
ELM_OBJ_BUTTON_CLASS, ELM_INTERFACE_FILESELECTOR_CLASS, NULL);
+#include "elc_fileselector_button.eo.c"
diff --git a/src/lib/elc_fileselector_button.eo 
b/src/lib/elc_fileselector_button.eo
new file mode 100644
index 0000000..6a1a934
--- /dev/null
+++ b/src/lib/elc_fileselector_button.eo
@@ -0,0 +1,118 @@
+class Elc_Fileselector_Button (Elm_Button, Elm_Interface_Fileselector)
+{
+   legacy_prefix: elm_fileselector_button;
+   eo_prefix: elm_obj_fileselector_button;
+   properties {
+      inwin_mode {
+         set {
+            /*@
+            Set whether a given file selector button widget's internal file
+            selector will raise an Elementary "inner window", instead of a
+            dedicated Elementary window. By default, it depends on the current
+            profile.
+
+            @see elm_win_inwin_add() for more information on inner windows
+            @see elm_fileselector_button_inwin_mode_get()
+
+            @ingroup File_Selector_Button */
+         }
+         get {
+            /*@
+            Get whether a given file selector button widget's internal file
+            selector will raise an Elementary "inner window", instead of a
+            dedicated Elementary window.
+
+            @return @c EINA_TRUE if will use an inner window, @c EINA_TRUE
+            if it will use a dedicated window
+
+            @see elm_fileselector_button_inwin_mode_set() for more details
+
+            @ingroup File_Selector_Button */
+         }
+         values {
+            Eina_Bool value; /*@ @c EINA_TRUE to make it use an inner window, 
@c
+            EINA_FALSE to make it use a dedicated window */
+         }
+      }
+      window_size {
+         set {
+            /*@
+            Set the size of a given file selector button widget's window,
+            holding the file selector itself.
+
+            @note it will only take any effect if the file selector button
+            widget is @b not under "inwin mode". The default size for the
+            window (when applicable) is 400x400 pixels.
+
+            @see elm_fileselector_button_window_size_get()
+
+            @ingroup File_Selector_Button */
+         }
+         get {
+            /*@
+            Get the size of a given file selector button widget's window,
+            holding the file selector itself.
+
+            @note Use @c NULL pointers on the size values you're not
+            interested in: they'll be ignored by the function.
+
+            @see elm_fileselector_button_window_size_set(), for more details
+
+            @ingroup File_Selector_Button */
+         }
+         values {
+            Evas_Coord width; /*@ The window's width */
+            Evas_Coord height; /*@ The window's height */
+         }
+      }
+      window_title {
+         set {
+            /*@
+            Set the title for a given file selector button widget's window
+
+            This will change the popup window's title, when the file selector 
pops
+            out after a click on the button. Those windows have the default
+            (unlocalized) value of @c "Select a file" as titles.
+
+            @note It will only take effect if the file selector
+            button widget is @b not under "inwin mode".
+
+            @see elm_fileselector_button_window_title_get()
+
+            @ingroup File_Selector_Button */
+         }
+         get {
+            /*@
+            Get the title for a given file selector button widget's
+            window
+
+            @return Title of the file selector button's window
+
+            @see elm_fileselector_button_window_title_get() for more details
+
+            @ingroup File_Selector_Button */
+         }
+         values {
+            const char *title; /*@ The title string */
+         }
+      }
+   }
+   implements {
+      Eo_Base::constructor;
+      Evas_Smart::add;
+      Evas_Smart::del;
+      Elm_Widget::theme_apply;
+      Elm_Button::admits_autorepeat::get;
+      Elm_Interface_Fileselector::folder_only;
+      Elm_Interface_Fileselector::is_save;
+      Elm_Interface_Fileselector::path;
+      Elm_Interface_Fileselector::expandable;
+   }
+   events {
+      language,changed;
+      access,changed;
+      focused;
+      unfocused;
+   }
+
+}
diff --git a/src/lib/elc_fileselector_button_eo.h 
b/src/lib/elc_fileselector_button_eo.h
index 4fae451..92b74f8 100644
--- a/src/lib/elc_fileselector_button_eo.h
+++ b/src/lib/elc_fileselector_button_eo.h
@@ -1,3 +1,6 @@
+#include "elc_fileselector_button.eo.h"
+
+#if 0
 #define ELM_OBJ_FILESELECTOR_BUTTON_CLASS 
elm_obj_fileselector_button_class_get()
 
 const Eo_Class *elm_obj_fileselector_button_class_get(void) EINA_CONST;
@@ -109,3 +112,4 @@ enum
  * @ingroup File_Selector_Button
  */
 #define elm_obj_fileselector_button_inwin_mode_get(ret) 
ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_GET),
 EO_TYPECHECK(Eina_Bool *, ret)
+#endif
diff --git a/src/lib/elm_widget_fileselector_button.h 
b/src/lib/elm_widget_fileselector_button.h
index 14b3878..938df0a 100644
--- a/src/lib/elm_widget_fileselector_button.h
+++ b/src/lib/elm_widget_fileselector_button.h
@@ -20,9 +20,9 @@
 /**
  * Base button smart data extended with fileselector_button instance data.
  */
-typedef struct _Elm_Fileselector_Button_Smart_Data \
-  Elm_Fileselector_Button_Smart_Data;
-struct _Elm_Fileselector_Button_Smart_Data
+typedef struct _Elc_Fileselector_Button_Data \
+  Elc_Fileselector_Button_Data;
+struct _Elc_Fileselector_Button_Data
 {
    Evas_Object          *obj; // the object itself
    Evas_Object          *fs, *fsw;
@@ -45,7 +45,7 @@ struct _Elm_Fileselector_Button_Smart_Data
  */
 
 #define ELM_FILESELECTOR_BUTTON_DATA_GET(o, sd) \
-  Elm_Fileselector_Button_Smart_Data * sd = eo_data_scope_get(o, 
ELM_OBJ_FILESELECTOR_BUTTON_CLASS)
+  Elc_Fileselector_Button_Data * sd = eo_data_scope_get(o, 
ELM_OBJ_FILESELECTOR_BUTTON_CLASS)
 
 #define ELM_FILESELECTOR_BUTTON_DATA_GET_OR_RETURN(o, ptr) \
   ELM_FILESELECTOR_BUTTON_DATA_GET(o, ptr);                \

-- 


Reply via email to