diff --git a/legacy/elementary/src/lib/elc_fileselector.h b/legacy/elementary/src/lib/elc_fileselector.h
index 24d37e1638..8ad6ae930a 100644
--- a/legacy/elementary/src/lib/elc_fileselector.h
+++ b/legacy/elementary/src/lib/elc_fileselector.h
@@ -52,471 +52,18 @@
* @li @ref fileselector_example
*/
-#define ELM_OBJ_FILESELECTOR_CLASS elm_obj_fileselector_class_get()
-
-const Eo_Class *elm_obj_fileselector_class_get(void) EINA_CONST;
-
-extern EAPI Eo_Op ELM_OBJ_FILESELECTOR_BASE_ID;
-
-enum
-{
- ELM_OBJ_FILESELECTOR_SUB_ID_IS_SAVE_SET,
- ELM_OBJ_FILESELECTOR_SUB_ID_IS_SAVE_GET,
- ELM_OBJ_FILESELECTOR_SUB_ID_FOLDER_ONLY_SET,
- ELM_OBJ_FILESELECTOR_SUB_ID_FOLDER_ONLY_GET,
- ELM_OBJ_FILESELECTOR_SUB_ID_BUTTONS_OK_CANCEL_SET,
- ELM_OBJ_FILESELECTOR_SUB_ID_BUTTONS_OK_CANCEL_GET,
- ELM_OBJ_FILESELECTOR_SUB_ID_EXPANDABLE_SET,
- ELM_OBJ_FILESELECTOR_SUB_ID_EXPANDABLE_GET,
- ELM_OBJ_FILESELECTOR_SUB_ID_PATH_SET,
- ELM_OBJ_FILESELECTOR_SUB_ID_PATH_GET,
- ELM_OBJ_FILESELECTOR_SUB_ID_MODE_SET,
- ELM_OBJ_FILESELECTOR_SUB_ID_MODE_GET,
- ELM_OBJ_FILESELECTOR_SUB_ID_SELECTED_GET,
- ELM_OBJ_FILESELECTOR_SUB_ID_SELECTED_SET,
- ELM_OBJ_FILESELECTOR_SUB_ID_LAST
-};
-
-#define ELM_OBJ_FILESELECTOR_ID(sub_id) (ELM_OBJ_FILESELECTOR_BASE_ID + sub_id)
-
-
-/**
- * @def elm_obj_fileselector_is_save_set
- * @since 1.8
- *
- * Enable/disable the file name entry box where the user can type
- * in a name for a file, in a given file selector widget
- *
- * @param[in] is_save
- *
- * @see elm_fileselector_is_save_set
- */
-#define elm_obj_fileselector_is_save_set(is_save) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_IS_SAVE_SET), EO_TYPECHECK(Eina_Bool, is_save)
-
-/**
- * @def elm_obj_fileselector_is_save_get
- * @since 1.8
- *
- * Get whether the given file selector is in "saving dialog" mode
- *
- * @param[out] ret
- *
- * @see elm_fileselector_is_save_get
- */
-#define elm_obj_fileselector_is_save_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_IS_SAVE_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_fileselector_folder_only_set
- * @since 1.8
- *
- * Enable/disable folder-only view for a given file selector widget
- *
- * @param[in] only
- *
- * @see elm_fileselector_folder_only_set
- */
-#define elm_obj_fileselector_folder_only_set(only) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_FOLDER_ONLY_SET), EO_TYPECHECK(Eina_Bool, only)
-
-/**
- * @def elm_obj_fileselector_folder_only_get
- * @since 1.8
- *
- * Get whether folder-only view is set for a given file selector
- *
- * @param[out] ret
- *
- * @see elm_fileselector_folder_only_get
- */
-#define elm_obj_fileselector_folder_only_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_FOLDER_ONLY_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_fileselector_buttons_ok_cancel_set
- * @since 1.8
- *
- * Enable/disable the "ok" and "cancel" buttons on a given file
- *
- * @param[in] visible
- *
- * @see elm_fileselector_buttons_ok_cancel_set
- */
-#define elm_obj_fileselector_buttons_ok_cancel_set(visible) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_BUTTONS_OK_CANCEL_SET), EO_TYPECHECK(Eina_Bool, visible)
-
-/**
- * @def elm_obj_fileselector_buttons_ok_cancel_get
- * @since 1.8
- *
- * Get whether the "ok" and "cancel" buttons on a given file
- *
- * @param[out] ret
- *
- * @see elm_fileselector_buttons_ok_cancel_get
- */
-#define elm_obj_fileselector_buttons_ok_cancel_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_BUTTONS_OK_CANCEL_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_fileselector_expandable_set
- * @since 1.8
- *
- * Enable/disable a tree view in the given file selector widget,
- * if it's in @c #ELM_FILESELECTOR_LIST mode
- *
- * @param[in] expand
- *
- * @see elm_fileselector_expandable_set
- */
-#define elm_obj_fileselector_expandable_set(expand) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_EXPANDABLE_SET), EO_TYPECHECK(Eina_Bool, expand)
-
-/**
- * @def elm_obj_fileselector_expandable_get
- * @since 1.8
- *
- * Get whether tree view is enabled for the given file selector
- *
- * @param[out] ret
- *
- * @see elm_fileselector_expandable_get
- */
-#define elm_obj_fileselector_expandable_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_EXPANDABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_fileselector_path_set
- * @since 1.8
- *
- * Set, programmatically, the directory that a given file
- * selector widget will display contents from
- *
- * @param[in] _path
- *
- * @see elm_fileselector_path_set
- */
-#define elm_obj_fileselector_path_set(_path) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_PATH_SET), EO_TYPECHECK(const char *, _path)
-
-/**
- * @def elm_obj_fileselector_path_get
- * @since 1.8
- *
- * Get the parent directory's path that a given file selector
- * selector widget will display contents from
- *
- * @param[out] ret
- *
- * @see elm_fileselector_path_get
- */
-#define elm_obj_fileselector_path_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_PATH_GET), EO_TYPECHECK(const char **, ret)
-
-/**
- * @def elm_obj_fileselector_mode_set
- * @since 1.8
- *
- * Set the mode in which a given file selector widget will display
- * (layout) file system entries in its view
- *
- * @param[in] mode
- *
- * @see elm_fileselector_mode_set
- */
-#define elm_obj_fileselector_mode_set(mode) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_MODE_SET), EO_TYPECHECK(Elm_Fileselector_Mode, mode)
-
-/**
- * @def elm_obj_fileselector_mode_get
- * @since 1.8
- *
- * Get the mode in which a given file selector widget is displaying
- *
- * @param[out] ret
- *
- * @see elm_fileselector_mode_get
- */
-#define elm_obj_fileselector_mode_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_MODE_GET), EO_TYPECHECK(Elm_Fileselector_Mode *, ret)
-
-/**
- * @def elm_obj_fileselector_selected_get
- * @since 1.8
- *
- * Get the currently selected item's (full) path, in the given file
- * the given file selector widget
- *
- * @param[out] ret
- *
- * @see elm_fileselector_selected_get
- */
-#define elm_obj_fileselector_selected_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_SELECTED_GET), EO_TYPECHECK(const char **, ret)
-
-/**
- * @def elm_obj_fileselector_selected_set
- * @since 1.8
- *
- * Set, programmatically, the currently selected file/directory in
- * the given file selector widget
- *
- * @param[in] _path
- * @param[out] ret
- *
- * @see elm_fileselector_selected_set
- */
-#define elm_obj_fileselector_selected_set(_path, ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_SELECTED_SET), EO_TYPECHECK(const char *, _path), EO_TYPECHECK(Eina_Bool *, ret)
-
/**
* @addtogroup Fileselector
* @{
*/
-/**
- * Defines how a file selector widget is to layout its contents
- * (file system entries).
- */
-typedef enum
-{
- ELM_FILESELECTOR_LIST = 0, /**< layout as a list */
- ELM_FILESELECTOR_GRID, /**< layout as a grid */
- ELM_FILESELECTOR_LAST /**< sentinel (helper) value, not used */
-} Elm_Fileselector_Mode;
-
-/**
- * Add a new file selector widget to the given parent Elementary
- * (container) object
- *
- * @param parent The parent object
- * @return a new file selector widget handle or @c NULL, on errors
- *
- * This function inserts a new file selector widget on the canvas.
- *
- * @ingroup Fileselector
- */
-EAPI Evas_Object *elm_fileselector_add(Evas_Object *parent);
-
-/**
- * Enable/disable the file name entry box where the user can type
- * in a name for a file, in a given file selector widget
- *
- * @param obj The file selector object
- * @param is_save @c EINA_TRUE to make the file selector a "saving
- * dialog", @c EINA_FALSE otherwise
- *
- * Having the entry editable is useful on file saving dialogs on
- * applications, where one gives a file name to save contents to,
- * in a given directory in the system. This custom file name will
- * be reported on the @c "done" smart callback.
- *
- * @see elm_fileselector_is_save_get()
- *
- * @ingroup Fileselector
- */
-EAPI void elm_fileselector_is_save_set(Evas_Object *obj, Eina_Bool is_save);
-
-/**
- * Get whether the given file selector is in "saving dialog" mode
- *
- * @param obj The file selector object
- * @return @c EINA_TRUE, if the file selector is in "saving dialog"
- * mode, @c EINA_FALSE otherwise (and on errors)
- *
- * @see elm_fileselector_is_save_set() for more details
- *
- * @ingroup Fileselector
- */
-EAPI Eina_Bool elm_fileselector_is_save_get(const Evas_Object *obj);
-
-/**
- * Enable/disable folder-only view for a given file selector widget
- *
- * @param obj The file selector object
- * @param only @c EINA_TRUE to make @p obj only display
- * directories, @c EINA_FALSE to make files to be displayed in it
- * too
- *
- * If enabled, the widget's view will only display folder items,
- * naturally.
- *
- * @see elm_fileselector_folder_only_get()
- *
- * @ingroup Fileselector
- */
-EAPI void elm_fileselector_folder_only_set(Evas_Object *obj, Eina_Bool only);
-
-/**
- * Get whether folder-only view is set for a given file selector
- * widget
- *
- * @param obj The file selector object
- * @return only @c EINA_TRUE if @p obj is only displaying
- * directories, @c EINA_FALSE if files are being displayed in it
- * too (and on errors)
- *
- * @see elm_fileselector_folder_only_get()
- *
- * @ingroup Fileselector
- */
-EAPI Eina_Bool elm_fileselector_folder_only_get(const Evas_Object *obj);
-
-/**
- * Enable/disable the "ok" and "cancel" buttons on a given file
- * selector widget
- *
- * @param obj The file selector object
- * @param buttons @c EINA_TRUE to show buttons, @c EINA_FALSE to hide.
- *
- * @note A file selector without those buttons will never emit the
- * @c "done" smart event, and is only usable if one is just hooking
- * to the other two events.
- *
- * @see elm_fileselector_buttons_ok_cancel_get()
- *
- * @ingroup Fileselector
- */
-EAPI void elm_fileselector_buttons_ok_cancel_set(Evas_Object *obj, Eina_Bool buttons);
-
-/**
- * Get whether the "ok" and "cancel" buttons on a given file
- * selector widget are being shown.
- *
- * @param obj The file selector object
- * @return @c EINA_TRUE if they are being shown, @c EINA_FALSE
- * otherwise (and on errors)
- *
- * @see elm_fileselector_buttons_ok_cancel_set() for more details
- *
- * @ingroup Fileselector
- */
-EAPI Eina_Bool elm_fileselector_buttons_ok_cancel_get(const Evas_Object *obj);
-
-/**
- * Enable/disable a tree view in the given file selector widget,
- * if it's in @c #ELM_FILESELECTOR_LIST mode
- *
- * @param obj The file selector object
- * @param expand @c EINA_TRUE to enable tree view, @c EINA_FALSE to
- * disable
- *
- * In a tree view, arrows are created on the sides of directories,
- * allowing them to expand in place.
- *
- * @note If it's in other mode, the changes made by this function
- * will only be visible when one switches back to "list" mode.
- *
- * @see elm_fileselector_expandable_get()
- *
- * @ingroup Fileselector
- */
-EAPI void elm_fileselector_expandable_set(Evas_Object *obj, Eina_Bool expand);
-
-/**
- * Get whether tree view is enabled for the given file selector
- * widget
- *
- * @param obj The file selector object
- * @return @c EINA_TRUE if @p obj is in tree view, @c EINA_FALSE
- * otherwise (and or errors)
- *
- * @see elm_fileselector_expandable_set() for more details
- *
- * @ingroup Fileselector
- */
-EAPI Eina_Bool elm_fileselector_expandable_get(const Evas_Object *obj);
-
-/**
- * Set, programmatically, the @b directory that a given file
- * selector widget will display contents from
- *
- * @param obj The file selector object
- * @param path The path to display in @p obj
- *
- * This will change the @b directory that @p obj is displaying. It
- * will also clear the text entry area on the @p obj object, which
- * displays select files' names.
- *
- * @see elm_fileselector_path_get()
- *
- * @ingroup Fileselector
- */
-EAPI void elm_fileselector_path_set(Evas_Object *obj, const char *path);
-
-/**
- * Get the parent directory's path that a given file selector
- * widget is displaying
- *
- * @param obj The file selector object
- * @return The (full) path of the directory the file selector is
- * displaying, a @b stringshared string
- *
- * @see elm_fileselector_path_set()
- *
- * @ingroup Fileselector
- */
-EAPI const char *elm_fileselector_path_get(const Evas_Object *obj);
-
-/**
- * Set, programmatically, the currently selected file/directory in
- * the given file selector widget
- *
- * @param obj The file selector object
- * @param path The (full) path to a file or directory
- * @return @c EINA_TRUE on success, @c EINA_FALSE on failure. The
- * latter case occurs if the directory or file pointed to do not
- * exist.
- *
- * @see elm_fileselector_selected_get()
- *
- * @ingroup Fileselector
- */
-EAPI Eina_Bool elm_fileselector_selected_set(Evas_Object *obj, const char *path);
-
-/**
- * Get the currently selected item's (full) path, in the given file
- * selector widget
- *
- * @param obj The file selector object
- * @return The absolute path of the selected item, a @b
- * stringshared string
- *
- * @note Custom editions on @p obj object's text entry, if made,
- * will appear on the return string of this function, naturally.
- *
- * @see elm_fileselector_selected_set() for more details
- *
- * @ingroup Fileselector
- */
-EAPI const char *elm_fileselector_selected_get(const Evas_Object *obj);
-
-/**
- * Set the mode in which a given file selector widget will display
- * (layout) file system entries in its view
- *
- * @param obj The file selector object
- * @param mode The mode of the fileselector, being it one of #ELM_FILESELECTOR_LIST
- * (default) or #ELM_FILESELECTOR_GRID. The first one, naturally, will display
- * the files in a list. The latter will make the widget to display its entries
- * in a grid form.
- *
- * @note By using elm_fileselector_expandable_set(), the user may
- * trigger a tree view for that list.
- *
- * @note If Elementary is built with support of the Ethumb
- * thumbnailing library, the second form of view will display
- * preview thumbnails of files which it supports. You must have
- * elm_need_ethumb() called in your Elementary for thumbnailing to
- * work, though.
- *
- * @see elm_fileselector_expandable_set().
- * @see elm_fileselector_mode_get().
- *
- * @ingroup Fileselector
- */
-EAPI void elm_fileselector_mode_set(Evas_Object *obj, Elm_Fileselector_Mode mode);
-
-/**
- * Get the mode in which a given file selector widget is displaying
- * (layouting) file system entries in its view
- *
- * @param obj The fileselector object
- * @return The mode in which the fileselector is at
- *
- * @see elm_fileselector_mode_set() for more details
- *
- * @ingroup Fileselector
- */
-EAPI Elm_Fileselector_Mode elm_fileselector_mode_get(const Evas_Object *obj);
-
+#include "elc_fileselector_common.h"
+#ifdef EFL_EO_API_SUPPORT
+#include "elc_fileselector_eo.h"
+#endif
+#ifndef EFL_NOLEGACY_API_SUPPORT
+#include "elc_fileselector_legacy.h"
+#endif
/**
* @}
*/
diff --git a/legacy/elementary/src/lib/elc_fileselector_button.h b/legacy/elementary/src/lib/elc_fileselector_button.h
index 91662d8dbf..3f43c5b150 100644
--- a/legacy/elementary/src/lib/elc_fileselector_button.h
+++ b/legacy/elementary/src/lib/elc_fileselector_button.h
@@ -62,462 +62,12 @@
* @{
*/
-#define ELM_OBJ_FILESELECTOR_BUTTON_CLASS elm_obj_fileselector_button_class_get()
-
-const Eo_Class *elm_obj_fileselector_button_class_get(void) EINA_CONST;
-
-extern EAPI Eo_Op ELM_OBJ_FILESELECTOR_BUTTON_BASE_ID;
-
-enum
-{
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_SET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_GET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_SET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_GET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_PATH_SET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_PATH_GET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_EXPANDABLE_SET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_EXPANDABLE_GET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_FOLDER_ONLY_SET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_FOLDER_ONLY_GET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_IS_SAVE_SET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_IS_SAVE_GET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_SET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_GET,
- ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_LAST
-};
-
-#define ELM_OBJ_FILESELECTOR_BUTTON_ID(sub_id) (ELM_OBJ_FILESELECTOR_BUTTON_BASE_ID + sub_id)
-
-
-/**
- * @def elm_obj_fileselector_button_window_title_set
- * @since 1.8
- *
- * Set the title for a given file selector button widget's window
- *
- * @param[in] title
- *
- * @see elm_fileselector_button_window_title_set
- */
-#define elm_obj_fileselector_button_window_title_set(title) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_SET), EO_TYPECHECK(const char *, title)
-
-/**
- * @def elm_obj_fileselector_button_window_title_get
- * @since 1.8
- *
- * Get the title for a given file selector button widget's
- *
- * @param[out] ret
- *
- * @see elm_fileselector_button_window_title_get
- */
-#define elm_obj_fileselector_button_window_title_get(ret) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_GET), EO_TYPECHECK(const char **, ret)
-
-/**
- * @def elm_obj_fileselector_button_window_size_set
- * @since 1.8
- *
- * Set the size of a given file selector button widget's window,
- * holding the file selector itself.
- *
- * @param[in] width
- * @param[in] height
- *
- * @see elm_fileselector_button_window_size_set
- */
-#define elm_obj_fileselector_button_window_size_set(width, height) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_SET), EO_TYPECHECK(Evas_Coord, width), EO_TYPECHECK(Evas_Coord, height)
-
-/**
- * @def elm_obj_fileselector_button_window_size_get
- * @since 1.8
- *
- * Get the size of a given file selector button widget's window,
- * holding the file selector itself.
- *
- * @param[out] width
- * @param[out] height
- *
- * @see elm_fileselector_button_window_size_get
- */
-#define elm_obj_fileselector_button_window_size_get(width, height) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_GET), EO_TYPECHECK(Evas_Coord *, width), EO_TYPECHECK(Evas_Coord *, height)
-
-/**
- * @def elm_obj_fileselector_button_path_set
- * @since 1.8
- *
- * Set the initial file system path for a given file selector
- *
- * @param[in] path
- *
- * @see elm_fileselector_button_path_set
- */
-#define elm_obj_fileselector_button_path_set(path) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_PATH_SET), EO_TYPECHECK(const char *, path)
-
-/**
- * @def elm_obj_fileselector_button_path_get
- * @since 1.8
- *
- * Get the initial file system path set for a given file selector
- *
- * @param[out] ret
- *
- * @see elm_fileselector_button_path_get
- */
-#define elm_obj_fileselector_button_path_get(ret) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_PATH_GET), EO_TYPECHECK(const char **, ret)
-
-/**
- * @def elm_obj_fileselector_button_expandable_set
- * @since 1.8
- *
- * Enable/disable a tree view in the given file selector button
- *
- * @param[in] value
- *
- * @see elm_fileselector_button_expandable_set
- */
-#define elm_obj_fileselector_button_expandable_set(value) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_EXPANDABLE_SET), EO_TYPECHECK(Eina_Bool, value)
-
-/**
- * @def elm_obj_fileselector_button_expandable_get
- * @since 1.8
- *
- * Get whether tree view is enabled for the given file selector
- *
- * @param[out] ret
- *
- * @see elm_fileselector_button_expandable_get
- */
-#define elm_obj_fileselector_button_expandable_get(ret) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_EXPANDABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_fileselector_button_folder_only_set
- * @since 1.8
- *
- * Set whether a given file selector button widget's internal file
- * selector is to display folders only or the directory contents,
- * as well.
- *
- * @param[in] value
- *
- * @see elm_fileselector_button_folder_only_set
- */
-#define elm_obj_fileselector_button_folder_only_set(value) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_FOLDER_ONLY_SET), EO_TYPECHECK(Eina_Bool, value)
-
-/**
- * @def elm_obj_fileselector_button_folder_only_get
- * @since 1.8
- *
- * Get whether a given file selector button widget's internal file
- * selector is displaying folders only or the directory contents,
- * as well.
- *
- * @param[out] ret
- *
- * @see elm_fileselector_button_folder_only_get
- */
-#define elm_obj_fileselector_button_folder_only_get(ret) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_FOLDER_ONLY_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_fileselector_button_is_save_set
- * @since 1.8
- *
- * Enable/disable the file name entry box where the user can type
- *
- * @param[in] value
- *
- * @see elm_fileselector_button_is_save_set
- */
-#define elm_obj_fileselector_button_is_save_set(value) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_IS_SAVE_SET), EO_TYPECHECK(Eina_Bool, value)
-
-/**
- * @def elm_obj_fileselector_button_is_save_get
- * @since 1.8
- *
- * Get whether the given file selector button widget's internal
- * file selector is in "saving dialog" mode
- *
- * @param[out] ret
- *
- * @see elm_fileselector_button_is_save_get
- */
-#define elm_obj_fileselector_button_is_save_get(ret) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_IS_SAVE_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_fileselector_button_inwin_mode_set
- * @since 1.8
- *
- * 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 won't.
- *
- * @param[in] value
- *
- * @see elm_fileselector_button_inwin_mode_set
- */
-#define elm_obj_fileselector_button_inwin_mode_set(value) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_SET), EO_TYPECHECK(Eina_Bool, value)
-
-/**
- * @def elm_obj_fileselector_button_inwin_mode_get
- * @since 1.8
- *
- * Get whether a given file selector button widget's internal file
- * selector will raise an Elementary "inner window", instead of a
- * dedicated Elementary window.
- *
- * @param[out] ret
- *
- * @see elm_fileselector_button_inwin_mode_get
- */
-#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)
-
-/**
- * Add a new file selector button widget to the given parent
- * Elementary (container) object
- *
- * @param parent The parent object
- * @return a new file selector button widget handle or @c NULL, on
- * errors
- *
- * @ingroup File_Selector_Button
- */
-EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent);
-
-/**
- * Set the title for a given file selector button widget's window
- *
- * @param obj The file selector button widget
- * @param title The title string
- *
- * 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
- */
-EAPI void elm_fileselector_button_window_title_set(Evas_Object *obj, const char *title);
-
-/**
- * Get the title for a given file selector button widget's
- * window
- *
- * @param obj The file selector button widget
- * @return Title of the file selector button's window
- *
- * @see elm_fileselector_button_window_title_get() for more details
- *
- * @ingroup File_Selector_Button
- */
-EAPI const char *elm_fileselector_button_window_title_get(const Evas_Object *obj);
-
-/**
- * Set the size of a given file selector button widget's window,
- * holding the file selector itself.
- *
- * @param obj The file selector button widget
- * @param width The window's width
- * @param height The window's height
- *
- * @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
- */
-EAPI void elm_fileselector_button_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
-
-/**
- * Get the size of a given file selector button widget's window,
- * holding the file selector itself.
- *
- * @param obj The file selector button widget
- * @param width Pointer into which to store the width value
- * @param height Pointer into which to store the height value
- *
- * @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
- */
-EAPI void elm_fileselector_button_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
-
-/**
- * Set the initial file system path for a given file selector
- * button widget
- *
- * @param obj The file selector button widget
- * @param path The path string
- *
- * It must be a directory path, which will have the contents
- * displayed initially in the file selector's view, when invoked
- * from @p obj. The default initial path is the @c "HOME"
- * environment variable's value.
- *
- * @see elm_fileselector_button_path_get()
- *
- * @ingroup File_Selector_Button
- */
-EAPI void elm_fileselector_button_path_set(Evas_Object *obj, const char *path);
-
-/**
- * Get the initial file system path set for a given file selector
- * button widget
- *
- * @param obj The file selector button widget
- * @return path The path string
- *
- * @see elm_fileselector_button_path_set() for more details
- *
- * @ingroup File_Selector_Button
- */
-EAPI const char *elm_fileselector_button_path_get(const Evas_Object *obj);
-
-/**
- * Enable/disable a tree view in the given file selector button
- * widget's internal file selector
- *
- * @param obj The file selector button widget
- * @param value @c EINA_TRUE to enable tree view, @c EINA_FALSE to
- * disable
- *
- * This has the same effect as elm_fileselector_expandable_set(),
- * but now applied to a file selector button's internal file
- * selector.
- *
- * @note There's no way to put a file selector button's internal
- * file selector in "grid mode", as one may do with "pure" file
- * selectors.
- *
- * @see elm_fileselector_expandable_get()
- *
- * @ingroup File_Selector_Button
- */
-EAPI void elm_fileselector_button_expandable_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether tree view is enabled for the given file selector
- * button widget's internal file selector
- *
- * @param obj The file selector button widget
- * @return @c EINA_TRUE if @p obj widget's internal file selector
- * is in tree view, @c EINA_FALSE otherwise (and or errors)
- *
- * @see elm_fileselector_expandable_set() for more details
- *
- * @ingroup File_Selector_Button
- */
-EAPI Eina_Bool elm_fileselector_button_expandable_get(const Evas_Object *obj);
-
-/**
- * Set whether a given file selector button widget's internal file
- * selector is to display folders only or the directory contents,
- * as well.
- *
- * @param obj The file selector button widget
- * @param value @c EINA_TRUE to make @p obj widget's internal file
- * selector only display directories, @c EINA_FALSE to make files
- * to be displayed in it too
- *
- * This has the same effect as elm_fileselector_folder_only_set(),
- * but now applied to a file selector button's internal file
- * selector.
- *
- * @see elm_fileselector_folder_only_get()
- *
- * @ingroup File_Selector_Button
- */
-EAPI void elm_fileselector_button_folder_only_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether a given file selector button widget's internal file
- * selector is displaying folders only or the directory contents,
- * as well.
- *
- * @param obj The file selector button widget
- * @return @c EINA_TRUE if @p obj widget's internal file
- * selector is only displaying directories, @c EINA_FALSE if files
- * are being displayed in it too (and on errors)
- *
- * @see elm_fileselector_button_folder_only_set() for more details
- *
- * @ingroup File_Selector_Button
- */
-EAPI Eina_Bool elm_fileselector_button_folder_only_get(const Evas_Object *obj);
-
-/**
- * Enable/disable the file name entry box where the user can type
- * in a name for a file, in a given file selector button widget's
- * internal file selector.
- *
- * @param obj The file selector button widget
- * @param value @c EINA_TRUE to make @p obj widget's internal
- * file selector a "saving dialog", @c EINA_FALSE otherwise
- *
- * This has the same effect as elm_fileselector_is_save_set(),
- * but now applied to a file selector button's internal file
- * selector.
- *
- * @see elm_fileselector_is_save_get()
- *
- * @ingroup File_Selector_Button
- */
-EAPI void elm_fileselector_button_is_save_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether the given file selector button widget's internal
- * file selector is in "saving dialog" mode
- *
- * @param obj The file selector button widget
- * @return @c EINA_TRUE, if @p obj widget's internal file selector
- * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
- * errors)
- *
- * @see elm_fileselector_button_is_save_set() for more details
- *
- * @ingroup File_Selector_Button
- */
-EAPI Eina_Bool elm_fileselector_button_is_save_get(const Evas_Object *obj);
-
-/**
- * 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 won't.
- *
- * @param obj The file selector button widget
- * @param value @c EINA_TRUE to make it use an inner window, @c
- * EINA_TRUE to make it use a dedicated window
- *
- * @see elm_win_inwin_add() for more information on inner windows
- * @see elm_fileselector_button_inwin_mode_get()
- *
- * @ingroup File_Selector_Button
- */
-EAPI void elm_fileselector_button_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether a given file selector button widget's internal file
- * selector will raise an Elementary "inner window", instead of a
- * dedicated Elementary window.
- *
- * @param obj The file selector button widget
- * @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
- */
-EAPI Eina_Bool elm_fileselector_button_inwin_mode_get(const Evas_Object *obj);
-
+#ifdef EFL_EO_API_SUPPORT
+#include "elc_fileselector_button_eo.h"
+#endif
+#ifndef EFL_NOLEGACY_API_SUPPORT
+#include "elc_fileselector_button_legacy.h"
+#endif
/**
* @}
*/
diff --git a/legacy/elementary/src/lib/elc_fileselector_button_eo.h b/legacy/elementary/src/lib/elc_fileselector_button_eo.h
new file mode 100644
index 0000000000..bfa8d25d67
--- /dev/null
+++ b/legacy/elementary/src/lib/elc_fileselector_button_eo.h
@@ -0,0 +1,236 @@
+#define ELM_OBJ_FILESELECTOR_BUTTON_CLASS elm_obj_fileselector_button_class_get()
+
+const Eo_Class *elm_obj_fileselector_button_class_get(void) EINA_CONST;
+
+extern EAPI Eo_Op ELM_OBJ_FILESELECTOR_BUTTON_BASE_ID;
+
+enum
+{
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_SET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_GET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_SET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_GET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_PATH_SET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_PATH_GET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_EXPANDABLE_SET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_EXPANDABLE_GET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_FOLDER_ONLY_SET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_FOLDER_ONLY_GET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_IS_SAVE_SET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_IS_SAVE_GET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_SET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_GET,
+ ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_LAST
+};
+
+#define ELM_OBJ_FILESELECTOR_BUTTON_ID(sub_id) (ELM_OBJ_FILESELECTOR_BUTTON_BASE_ID + sub_id)
+
+
+/**
+ * @def elm_obj_fileselector_button_window_title_set
+ * @since 1.8
+ *
+ * Set the title for a given file selector button widget's window
+ *
+ * @param[in] title
+ *
+ * @see elm_fileselector_button_window_title_set
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_window_title_set(title) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_SET), EO_TYPECHECK(const char *, title)
+
+/**
+ * @def elm_obj_fileselector_button_window_title_get
+ * @since 1.8
+ *
+ * Get the title for a given file selector button widget's
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_button_window_title_get
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_window_title_get(ret) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_TITLE_GET), EO_TYPECHECK(const char **, ret)
+
+/**
+ * @def elm_obj_fileselector_button_window_size_set
+ * @since 1.8
+ *
+ * Set the size of a given file selector button widget's window,
+ * holding the file selector itself.
+ *
+ * @param[in] width
+ * @param[in] height
+ *
+ * @see elm_fileselector_button_window_size_set
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_window_size_set(width, height) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_SET), EO_TYPECHECK(Evas_Coord, width), EO_TYPECHECK(Evas_Coord, height)
+
+/**
+ * @def elm_obj_fileselector_button_window_size_get
+ * @since 1.8
+ *
+ * Get the size of a given file selector button widget's window,
+ * holding the file selector itself.
+ *
+ * @param[out] width
+ * @param[out] height
+ *
+ * @see elm_fileselector_button_window_size_get
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_window_size_get(width, height) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_WINDOW_SIZE_GET), EO_TYPECHECK(Evas_Coord *, width), EO_TYPECHECK(Evas_Coord *, height)
+
+/**
+ * @def elm_obj_fileselector_button_path_set
+ * @since 1.8
+ *
+ * Set the initial file system path for a given file selector
+ *
+ * @param[in] path
+ *
+ * @see elm_fileselector_button_path_set
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_path_set(path) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_PATH_SET), EO_TYPECHECK(const char *, path)
+
+/**
+ * @def elm_obj_fileselector_button_path_get
+ * @since 1.8
+ *
+ * Get the initial file system path set for a given file selector
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_button_path_get
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_path_get(ret) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_PATH_GET), EO_TYPECHECK(const char **, ret)
+
+/**
+ * @def elm_obj_fileselector_button_expandable_set
+ * @since 1.8
+ *
+ * Enable/disable a tree view in the given file selector button
+ *
+ * @param[in] value
+ *
+ * @see elm_fileselector_button_expandable_set
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_expandable_set(value) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_EXPANDABLE_SET), EO_TYPECHECK(Eina_Bool, value)
+
+/**
+ * @def elm_obj_fileselector_button_expandable_get
+ * @since 1.8
+ *
+ * Get whether tree view is enabled for the given file selector
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_button_expandable_get
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_expandable_get(ret) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_EXPANDABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_fileselector_button_folder_only_set
+ * @since 1.8
+ *
+ * Set whether a given file selector button widget's internal file
+ * selector is to display folders only or the directory contents,
+ * as well.
+ *
+ * @param[in] value
+ *
+ * @see elm_fileselector_button_folder_only_set
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_folder_only_set(value) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_FOLDER_ONLY_SET), EO_TYPECHECK(Eina_Bool, value)
+
+/**
+ * @def elm_obj_fileselector_button_folder_only_get
+ * @since 1.8
+ *
+ * Get whether a given file selector button widget's internal file
+ * selector is displaying folders only or the directory contents,
+ * as well.
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_button_folder_only_get
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_folder_only_get(ret) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_FOLDER_ONLY_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_fileselector_button_is_save_set
+ * @since 1.8
+ *
+ * Enable/disable the file name entry box where the user can type
+ *
+ * @param[in] value
+ *
+ * @see elm_fileselector_button_is_save_set
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_is_save_set(value) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_IS_SAVE_SET), EO_TYPECHECK(Eina_Bool, value)
+
+/**
+ * @def elm_obj_fileselector_button_is_save_get
+ * @since 1.8
+ *
+ * Get whether the given file selector button widget's internal
+ * file selector is in "saving dialog" mode
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_button_is_save_get
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_is_save_get(ret) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_IS_SAVE_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_fileselector_button_inwin_mode_set
+ * @since 1.8
+ *
+ * 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 won't.
+ *
+ * @param[in] value
+ *
+ * @see elm_fileselector_button_inwin_mode_set
+ *
+ * @ingroup File_Selector_Button
+ */
+#define elm_obj_fileselector_button_inwin_mode_set(value) ELM_OBJ_FILESELECTOR_BUTTON_ID(ELM_OBJ_FILESELECTOR_BUTTON_SUB_ID_INWIN_MODE_SET), EO_TYPECHECK(Eina_Bool, value)
+
+/**
+ * @def elm_obj_fileselector_button_inwin_mode_get
+ * @since 1.8
+ *
+ * Get whether a given file selector button widget's internal file
+ * selector will raise an Elementary "inner window", instead of a
+ * dedicated Elementary window.
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_button_inwin_mode_get
+ *
+ * @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)
diff --git a/legacy/elementary/src/lib/elc_fileselector_button_legacy.h b/legacy/elementary/src/lib/elc_fileselector_button_legacy.h
new file mode 100644
index 0000000000..86f5b28e4d
--- /dev/null
+++ b/legacy/elementary/src/lib/elc_fileselector_button_legacy.h
@@ -0,0 +1,246 @@
+/**
+ * Add a new file selector button widget to the given parent
+ * Elementary (container) object
+ *
+ * @param parent The parent object
+ * @return a new file selector button widget handle or @c NULL, on
+ * errors
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent);
+
+/**
+ * Set the title for a given file selector button widget's window
+ *
+ * @param obj The file selector button widget
+ * @param title The title string
+ *
+ * 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
+ */
+EAPI void elm_fileselector_button_window_title_set(Evas_Object *obj, const char *title);
+
+/**
+ * Get the title for a given file selector button widget's
+ * window
+ *
+ * @param obj The file selector button widget
+ * @return Title of the file selector button's window
+ *
+ * @see elm_fileselector_button_window_title_get() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI const char *elm_fileselector_button_window_title_get(const Evas_Object *obj);
+
+/**
+ * Set the size of a given file selector button widget's window,
+ * holding the file selector itself.
+ *
+ * @param obj The file selector button widget
+ * @param width The window's width
+ * @param height The window's height
+ *
+ * @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
+ */
+EAPI void elm_fileselector_button_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
+
+/**
+ * Get the size of a given file selector button widget's window,
+ * holding the file selector itself.
+ *
+ * @param obj The file selector button widget
+ * @param width Pointer into which to store the width value
+ * @param height Pointer into which to store the height value
+ *
+ * @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
+ */
+EAPI void elm_fileselector_button_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
+
+/**
+ * Set the initial file system path for a given file selector
+ * button widget
+ *
+ * @param obj The file selector button widget
+ * @param path The path string
+ *
+ * It must be a directory path, which will have the contents
+ * displayed initially in the file selector's view, when invoked
+ * from @p obj. The default initial path is the @c "HOME"
+ * environment variable's value.
+ *
+ * @see elm_fileselector_button_path_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_path_set(Evas_Object *obj, const char *path);
+
+/**
+ * Get the initial file system path set for a given file selector
+ * button widget
+ *
+ * @param obj The file selector button widget
+ * @return path The path string
+ *
+ * @see elm_fileselector_button_path_set() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI const char *elm_fileselector_button_path_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable a tree view in the given file selector button
+ * widget's internal file selector
+ *
+ * @param obj The file selector button widget
+ * @param value @c EINA_TRUE to enable tree view, @c EINA_FALSE to
+ * disable
+ *
+ * This has the same effect as elm_fileselector_expandable_set(),
+ * but now applied to a file selector button's internal file
+ * selector.
+ *
+ * @note There's no way to put a file selector button's internal
+ * file selector in "grid mode", as one may do with "pure" file
+ * selectors.
+ *
+ * @see elm_fileselector_expandable_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_expandable_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether tree view is enabled for the given file selector
+ * button widget's internal file selector
+ *
+ * @param obj The file selector button widget
+ * @return @c EINA_TRUE if @p obj widget's internal file selector
+ * is in tree view, @c EINA_FALSE otherwise (and or errors)
+ *
+ * @see elm_fileselector_expandable_set() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI Eina_Bool elm_fileselector_button_expandable_get(const Evas_Object *obj);
+
+/**
+ * Set whether a given file selector button widget's internal file
+ * selector is to display folders only or the directory contents,
+ * as well.
+ *
+ * @param obj The file selector button widget
+ * @param value @c EINA_TRUE to make @p obj widget's internal file
+ * selector only display directories, @c EINA_FALSE to make files
+ * to be displayed in it too
+ *
+ * This has the same effect as elm_fileselector_folder_only_set(),
+ * but now applied to a file selector button's internal file
+ * selector.
+ *
+ * @see elm_fileselector_folder_only_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_folder_only_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether a given file selector button widget's internal file
+ * selector is displaying folders only or the directory contents,
+ * as well.
+ *
+ * @param obj The file selector button widget
+ * @return @c EINA_TRUE if @p obj widget's internal file
+ * selector is only displaying directories, @c EINA_FALSE if files
+ * are being displayed in it too (and on errors)
+ *
+ * @see elm_fileselector_button_folder_only_set() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI Eina_Bool elm_fileselector_button_folder_only_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable the file name entry box where the user can type
+ * in a name for a file, in a given file selector button widget's
+ * internal file selector.
+ *
+ * @param obj The file selector button widget
+ * @param value @c EINA_TRUE to make @p obj widget's internal
+ * file selector a "saving dialog", @c EINA_FALSE otherwise
+ *
+ * This has the same effect as elm_fileselector_is_save_set(),
+ * but now applied to a file selector button's internal file
+ * selector.
+ *
+ * @see elm_fileselector_is_save_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_is_save_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether the given file selector button widget's internal
+ * file selector is in "saving dialog" mode
+ *
+ * @param obj The file selector button widget
+ * @return @c EINA_TRUE, if @p obj widget's internal file selector
+ * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
+ * errors)
+ *
+ * @see elm_fileselector_button_is_save_set() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI Eina_Bool elm_fileselector_button_is_save_get(const Evas_Object *obj);
+
+/**
+ * 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 won't.
+ *
+ * @param obj The file selector button widget
+ * @param value @c EINA_TRUE to make it use an inner window, @c
+ * EINA_TRUE to make it use a dedicated window
+ *
+ * @see elm_win_inwin_add() for more information on inner windows
+ * @see elm_fileselector_button_inwin_mode_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether a given file selector button widget's internal file
+ * selector will raise an Elementary "inner window", instead of a
+ * dedicated Elementary window.
+ *
+ * @param obj The file selector button widget
+ * @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
+ */
+EAPI Eina_Bool elm_fileselector_button_inwin_mode_get(const Evas_Object *obj);
diff --git a/legacy/elementary/src/lib/elc_fileselector_common.h b/legacy/elementary/src/lib/elc_fileselector_common.h
new file mode 100644
index 0000000000..b6831d223a
--- /dev/null
+++ b/legacy/elementary/src/lib/elc_fileselector_common.h
@@ -0,0 +1,11 @@
+/**
+ * Defines how a file selector widget is to layout its contents
+ * (file system entries).
+ */
+typedef enum
+{
+ ELM_FILESELECTOR_LIST = 0, /**< layout as a list */
+ ELM_FILESELECTOR_GRID, /**< layout as a grid */
+ ELM_FILESELECTOR_LAST /**< sentinel (helper) value, not used */
+} Elm_Fileselector_Mode;
+
diff --git a/legacy/elementary/src/lib/elc_fileselector_entry.h b/legacy/elementary/src/lib/elc_fileselector_entry.h
index 92303167bb..88cdd6c53b 100644
--- a/legacy/elementary/src/lib/elc_fileselector_entry.h
+++ b/legacy/elementary/src/lib/elc_fileselector_entry.h
@@ -74,517 +74,12 @@
* @{
*/
-#define ELM_OBJ_FILESELECTOR_ENTRY_CLASS elm_obj_fileselector_entry_class_get()
-
-const Eo_Class *elm_obj_fileselector_entry_class_get(void) EINA_CONST;
-
-extern EAPI Eo_Op ELM_OBJ_FILESELECTOR_ENTRY_BASE_ID;
-
-enum
-{
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_SELECTED_SET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_SELECTED_GET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_TITLE_SET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_TITLE_GET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_SIZE_SET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_SIZE_GET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_PATH_SET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_PATH_GET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_EXPANDABLE_SET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_EXPANDABLE_GET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_FOLDER_ONLY_SET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_FOLDER_ONLY_GET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_IS_SAVE_SET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_IS_SAVE_GET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_INWIN_MODE_SET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_INWIN_MODE_GET,
- ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_LAST
-};
-
-#define ELM_OBJ_FILESELECTOR_ENTRY_ID(sub_id) (ELM_OBJ_FILESELECTOR_ENTRY_BASE_ID + sub_id)
-
-
-/**
- * @def elm_obj_fileselector_entry_selected_set
- * @since 1.8
- *
- * Set the initial file system path for a given file selector entry
- *
- * @param[in] path
- *
- * @see elm_fileselector_entry_selected_set
- */
-#define elm_obj_fileselector_entry_selected_set(path) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_SELECTED_SET), EO_TYPECHECK(const char *, path)
-
-/**
- * @def elm_obj_fileselector_entry_selected_get
- * @since 1.8
- *
- * Get the parent directory's path to the latest file selection on
- * a given filer selector entry widget
- *
- * @param[out] ret
- *
- * @see elm_fileselector_entry_selected_get
- */
-#define elm_obj_fileselector_entry_selected_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_SELECTED_GET), EO_TYPECHECK(const char **, ret)
-
-/**
- * @def elm_obj_fileselector_entry_window_title_set
- * @since 1.8
- *
- * Set the title for a given file selector entry widget's window
- *
- * @param[in] title
- *
- * @see elm_fileselector_entry_window_title_set
- */
-#define elm_obj_fileselector_entry_window_title_set(title) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_TITLE_SET), EO_TYPECHECK(const char *, title)
-
-/**
- * @def elm_obj_fileselector_entry_window_title_get
- * @since 1.8
- *
- * Get the title set for a given file selector entry widget's
- * window
- *
- * @param[out] ret
- *
- * @see elm_fileselector_entry_window_title_get
- */
-#define elm_obj_fileselector_entry_window_title_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_TITLE_GET), EO_TYPECHECK(const char **, ret)
-
-/**
- * @def elm_obj_fileselector_entry_window_size_set
- * @since 1.8
- *
- * Set the size of a given file selector entry widget's window,
- * holding the file selector itself.
- *
- * @param[in] width
- * @param[in] height
- *
- * @see elm_fileselector_entry_window_size_set
- */
-#define elm_obj_fileselector_entry_window_size_set(width, height) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_SIZE_SET), EO_TYPECHECK(Evas_Coord, width), EO_TYPECHECK(Evas_Coord, height)
-
-/**
- * @def elm_obj_fileselector_entry_window_size_get
- * @since 1.8
- *
- * Get the size of a given file selector entry widget's window,
- * holding the file selector itself.
- *
- * @param[out] width
- * @param[out] height
- *
- * @see elm_fileselector_entry_window_size_get
- */
-#define elm_obj_fileselector_entry_window_size_get(width, height) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_SIZE_GET), EO_TYPECHECK(Evas_Coord *, width), EO_TYPECHECK(Evas_Coord *, height)
-
-/**
- * @def elm_obj_fileselector_entry_path_set
- * @since 1.8
- *
- * Set the initial file system path and the entry's path string for
- * a given file selector entry widget
- *
- * @param[in] path
- *
- * @see elm_fileselector_entry_path_set
- */
-#define elm_obj_fileselector_entry_path_set(path) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_PATH_SET), EO_TYPECHECK(const char *, path)
-
-/**
- * @def elm_obj_fileselector_entry_path_get
- * @since 1.8
- *
- * Get the entry's path string for a given file selector entry
- * widget
- *
- * @param[out] ret
- *
- * @see elm_fileselector_entry_path_get
- */
-#define elm_obj_fileselector_entry_path_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_PATH_GET), EO_TYPECHECK(const char **, ret)
-
-/**
- * @def elm_obj_fileselector_entry_expandable_set
- * @since 1.8
- *
- * Enable/disable a tree view in the given file selector entry
- *
- * @param[in] value
- *
- * @see elm_fileselector_entry_expandable_set
- */
-#define elm_obj_fileselector_entry_expandable_set(value) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_EXPANDABLE_SET), EO_TYPECHECK(Eina_Bool, value)
-
-/**
- * @def elm_obj_fileselector_entry_expandable_get
- * @since 1.8
- *
- * Get whether tree view is enabled for the given file selector
- *
- * @param[out] ret
- *
- * @see elm_fileselector_entry_expandable_get
- */
-#define elm_obj_fileselector_entry_expandable_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_EXPANDABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_fileselector_entry_folder_only_set
- * @since 1.8
- *
- * Set whether a given file selector entry widget's internal file
- * selector is to display folders only or the directory contents,
- * as well.
- *
- * @param[in] value
- *
- * @see elm_fileselector_entry_folder_only_set
- */
-#define elm_obj_fileselector_entry_folder_only_set(value) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_FOLDER_ONLY_SET), EO_TYPECHECK(Eina_Bool, value)
-
-/**
- * @def elm_obj_fileselector_entry_folder_only_get
- * @since 1.8
- *
- * Get whether a given file selector entry widget's internal file
- * selector is displaying folders only or the directory contents,
- * as well.
- *
- * @param[out] ret
- *
- * @see elm_fileselector_entry_folder_only_get
- */
-#define elm_obj_fileselector_entry_folder_only_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_FOLDER_ONLY_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_fileselector_entry_is_save_set
- * @since 1.8
- *
- * Enable/disable the file name entry box where the user can type
- *
- * @param[in] value
- *
- * @see elm_fileselector_entry_is_save_set
- */
-#define elm_obj_fileselector_entry_is_save_set(value) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_IS_SAVE_SET), EO_TYPECHECK(Eina_Bool, value)
-
-/**
- * @def elm_obj_fileselector_entry_is_save_get
- * @since 1.8
- *
- * Get whether the given file selector entry widget's internal
- *
- * @param[out] ret
- *
- * @see elm_fileselector_entry_is_save_get
- */
-#define elm_obj_fileselector_entry_is_save_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_IS_SAVE_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_fileselector_entry_inwin_mode_set
- * @since 1.8
- *
- * Set whether a given file selector entry widget's internal file
- *
- * @param[in] value
- *
- * @see elm_fileselector_entry_inwin_mode_set
- */
-#define elm_obj_fileselector_entry_inwin_mode_set(value) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_INWIN_MODE_SET), EO_TYPECHECK(Eina_Bool, value)
-
-/**
- * @def elm_obj_fileselector_entry_inwin_mode_get
- * @since 1.8
- *
- * Get whether a given file selector entry widget's internal file
- *
- * @param[out] ret
- *
- * @see elm_fileselector_entry_inwin_mode_get
- */
-#define elm_obj_fileselector_entry_inwin_mode_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_INWIN_MODE_GET), EO_TYPECHECK(Eina_Bool *, ret)
-/**
- * Add a new file selector entry widget to the given parent
- * Elementary (container) object
- *
- * @param parent The parent object
- * @return a new file selector entry widget handle or @c NULL, on
- * errors
- *
- * @ingroup File_Selector_Entry
- */
-EAPI Evas_Object *elm_fileselector_entry_add(Evas_Object *parent);
-
-/**
- * Set the title for a given file selector entry widget's window
- *
- * @param obj The file selector entry widget
- * @param title The title string
- *
- * This will change the window's title, when the file selector pops
- * out after a click on the entry's button. Those windows have the
- * default (unlocalized) value of @c "Select a file" as titles.
- *
- * @note It will only take any effect if the file selector
- * entry widget is @b not under "inwin mode".
- *
- * @see elm_fileselector_entry_window_title_get()
- *
- * @ingroup File_Selector_Entry
- */
-EAPI void elm_fileselector_entry_window_title_set(Evas_Object *obj, const char *title);
-
-/**
- * Get the title set for a given file selector entry widget's
- * window
- *
- * @param obj The file selector entry widget
- * @return Title of the file selector entry's window
- *
- * @see elm_fileselector_entry_window_title_get() for more details
- *
- * @ingroup File_Selector_Entry
- */
-EAPI const char *elm_fileselector_entry_window_title_get(const Evas_Object *obj);
-
-/**
- * Set the size of a given file selector entry widget's window,
- * holding the file selector itself.
- *
- * @param obj The file selector entry widget
- * @param width The window's width
- * @param height The window's height
- *
- * @note it will only take any effect if the file selector entry
- * widget is @b not under "inwin mode". The default size for the
- * window (when applicable) is 400x400 pixels.
- *
- * @see elm_fileselector_entry_window_size_get()
- *
- * @ingroup File_Selector_Entry
- */
-EAPI void elm_fileselector_entry_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
-
-/**
- * Get the size of a given file selector entry widget's window,
- * holding the file selector itself.
- *
- * @param obj The file selector entry widget
- * @param width Pointer into which to store the width value
- * @param height Pointer into which to store the height value
- *
- * @note Use @c NULL pointers on the size values you're not
- * interested in: they'll be ignored by the function.
- *
- * @see elm_fileselector_entry_window_size_set(), for more details
- *
- * @ingroup File_Selector_Entry
- */
-EAPI void elm_fileselector_entry_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
-
-/**
- * Set the initial file system path and the entry's path string for
- * a given file selector entry widget
- *
- * @param obj The file selector entry widget
- * @param path The path string
- *
- * It must be a directory path, which will have the contents
- * displayed initially in the file selector's view, when invoked
- * from @p obj. The default initial path is the @c "HOME"
- * environment variable's value.
- *
- * @see elm_fileselector_entry_path_get()
- *
- * @ingroup File_Selector_Entry
- */
-EAPI void elm_fileselector_entry_path_set(Evas_Object *obj, const char *path);
-
-/**
- * Get the entry's path string for a given file selector entry
- * widget
- *
- * @param obj The file selector entry widget
- * @return path The path string
- *
- * @see elm_fileselector_entry_path_set() for more details
- *
- * @ingroup File_Selector_Entry
- */
-EAPI const char *elm_fileselector_entry_path_get(const Evas_Object *obj);
-
-/**
- * Enable/disable a tree view in the given file selector entry
- * widget's internal file selector
- *
- * @param obj The file selector entry widget
- * @param value @c EINA_TRUE to enable tree view, @c EINA_FALSE to disable
- *
- * This has the same effect as elm_fileselector_expandable_set(),
- * but now applied to a file selector entry's internal file
- * selector.
- *
- * @note There's no way to put a file selector entry's internal
- * file selector in "grid mode", as one may do with "pure" file
- * selectors.
- *
- * @see elm_fileselector_expandable_get()
- *
- * @ingroup File_Selector_Entry
- */
-EAPI void elm_fileselector_entry_expandable_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether tree view is enabled for the given file selector
- * entry widget's internal file selector
- *
- * @param obj The file selector entry widget
- * @return @c EINA_TRUE if @p obj widget's internal file selector
- * is in tree view, @c EINA_FALSE otherwise (and or errors)
- *
- * @see elm_fileselector_expandable_set() for more details
- *
- * @ingroup File_Selector_Entry
- */
-EAPI Eina_Bool elm_fileselector_entry_expandable_get(const Evas_Object *obj);
-
-/**
- * Set whether a given file selector entry widget's internal file
- * selector is to display folders only or the directory contents,
- * as well.
- *
- * @param obj The file selector entry widget
- * @param value @c EINA_TRUE to make @p obj widget's internal file
- * selector only display directories, @c EINA_FALSE to make files
- * to be displayed in it too
- *
- * This has the same effect as elm_fileselector_folder_only_set(),
- * but now applied to a file selector entry's internal file
- * selector.
- *
- * @see elm_fileselector_folder_only_get()
- *
- * @ingroup File_Selector_Entry
- */
-EAPI void elm_fileselector_entry_folder_only_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether a given file selector entry widget's internal file
- * selector is displaying folders only or the directory contents,
- * as well.
- *
- * @param obj The file selector entry widget
- * @return @c EINA_TRUE if @p obj widget's internal file
- * selector is only displaying directories, @c EINA_FALSE if files
- * are being displayed in it too (and on errors)
- *
- * @see elm_fileselector_entry_folder_only_set() for more details
- *
- * @ingroup File_Selector_Entry
- */
-EAPI Eina_Bool elm_fileselector_entry_folder_only_get(const Evas_Object *obj);
-
-/**
- * Enable/disable the file name entry box where the user can type
- * in a name for a file, in a given file selector entry widget's
- * internal file selector.
- *
- * @param obj The file selector entry widget
- * @param value @c EINA_TRUE to make @p obj widget's internal
- * file selector a "saving dialog", @c EINA_FALSE otherwise
- *
- * This has the same effect as elm_fileselector_is_save_set(),
- * but now applied to a file selector entry's internal file
- * selector.
- *
- * @see elm_fileselector_is_save_get()
- *
- * @ingroup File_Selector_Entry
- */
-EAPI void elm_fileselector_entry_is_save_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether the given file selector entry widget's internal
- * file selector is in "saving dialog" mode
- *
- * @param obj The file selector entry widget
- * @return @c EINA_TRUE, if @p obj widget's internal file selector
- * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
- * errors)
- *
- * @see elm_fileselector_entry_is_save_set() for more details
- *
- * @ingroup File_Selector_Entry
- */
-EAPI Eina_Bool elm_fileselector_entry_is_save_get(const Evas_Object *obj);
-
-/**
- * Set whether a given file selector entry widget's internal file
- * selector will raise an Elementary "inner window", instead of a
- * dedicated Elementary window. By default, it won't.
- *
- * @param obj The file selector entry widget
- * @param value @c EINA_TRUE to make it use an inner window, @c
- * EINA_FALSE to make it use a dedicated window
- *
- * @see elm_win_inwin_add() for more information on inner windows
- * @see elm_fileselector_entry_inwin_mode_get()
- *
- * @ingroup File_Selector_Entry
- */
-EAPI void elm_fileselector_entry_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether a given file selector entry widget's internal file
- * selector will raise an Elementary "inner window", instead of a
- * dedicated Elementary window.
- *
- * @param obj The file selector entry widget
- * @return @c EINA_TRUE if will use an inner window, @c EINA_TRUE
- * if it will use a dedicated window
- *
- * @see elm_fileselector_entry_inwin_mode_set() for more details
- *
- * @ingroup File_Selector_Entry
- */
-EAPI Eina_Bool elm_fileselector_entry_inwin_mode_get(const Evas_Object *obj);
-
-/**
- * Set the initial file system path for a given file selector entry
- * widget
- *
- * @param obj The file selector entry widget
- * @param path The path string
- *
- * It must be a directory path, which will have the contents
- * displayed initially in the file selector's view, when invoked
- * from @p obj. The default initial path is the @c "HOME"
- * environment variable's value.
- *
- * @see elm_fileselector_entry_path_get()
- *
- * @ingroup File_Selector_Entry
- */
-EAPI void elm_fileselector_entry_selected_set(Evas_Object *obj, const char *path);
-
-/**
- * Get the parent directory's path to the latest file selection on
- * a given filer selector entry widget
- *
- * @param obj The file selector object
- * @return The (full) path of the directory of the last selection
- * on @p obj widget, a @b stringshared string
- *
- * @see elm_fileselector_entry_path_set()
- *
- * @ingroup File_Selector_Entry
- */
-EAPI const char *elm_fileselector_entry_selected_get(const Evas_Object *obj);
-
+#ifdef EFL_EO_API_SUPPORT
+#include "elc_fileselector_entry_eo.h"
+#endif
+#ifndef EFL_NOLEGACY_API_SUPPORT
+#include "elc_fileselector_entry_legacy.h"
+#endif
/**
* @}
*/
diff --git a/legacy/elementary/src/lib/elc_fileselector_entry_eo.h b/legacy/elementary/src/lib/elc_fileselector_entry_eo.h
new file mode 100644
index 0000000000..459e07a0cb
--- /dev/null
+++ b/legacy/elementary/src/lib/elc_fileselector_entry_eo.h
@@ -0,0 +1,265 @@
+#define ELM_OBJ_FILESELECTOR_ENTRY_CLASS elm_obj_fileselector_entry_class_get()
+
+const Eo_Class *elm_obj_fileselector_entry_class_get(void) EINA_CONST;
+
+extern EAPI Eo_Op ELM_OBJ_FILESELECTOR_ENTRY_BASE_ID;
+
+enum
+{
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_SELECTED_SET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_SELECTED_GET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_TITLE_SET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_TITLE_GET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_SIZE_SET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_SIZE_GET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_PATH_SET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_PATH_GET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_EXPANDABLE_SET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_EXPANDABLE_GET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_FOLDER_ONLY_SET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_FOLDER_ONLY_GET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_IS_SAVE_SET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_IS_SAVE_GET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_INWIN_MODE_SET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_INWIN_MODE_GET,
+ ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_LAST
+};
+
+#define ELM_OBJ_FILESELECTOR_ENTRY_ID(sub_id) (ELM_OBJ_FILESELECTOR_ENTRY_BASE_ID + sub_id)
+
+
+/**
+ * @def elm_obj_fileselector_entry_selected_set
+ * @since 1.8
+ *
+ * Set the initial file system path for a given file selector entry
+ *
+ * @param[in] path
+ *
+ * @see elm_fileselector_entry_selected_set
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_selected_set(path) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_SELECTED_SET), EO_TYPECHECK(const char *, path)
+
+/**
+ * @def elm_obj_fileselector_entry_selected_get
+ * @since 1.8
+ *
+ * Get the parent directory's path to the latest file selection on
+ * a given filer selector entry widget
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_entry_selected_get
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_selected_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_SELECTED_GET), EO_TYPECHECK(const char **, ret)
+
+/**
+ * @def elm_obj_fileselector_entry_window_title_set
+ * @since 1.8
+ *
+ * Set the title for a given file selector entry widget's window
+ *
+ * @param[in] title
+ *
+ * @see elm_fileselector_entry_window_title_set
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_window_title_set(title) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_TITLE_SET), EO_TYPECHECK(const char *, title)
+
+/**
+ * @def elm_obj_fileselector_entry_window_title_get
+ * @since 1.8
+ *
+ * Get the title set for a given file selector entry widget's
+ * window
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_entry_window_title_get
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_window_title_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_TITLE_GET), EO_TYPECHECK(const char **, ret)
+
+/**
+ * @def elm_obj_fileselector_entry_window_size_set
+ * @since 1.8
+ *
+ * Set the size of a given file selector entry widget's window,
+ * holding the file selector itself.
+ *
+ * @param[in] width
+ * @param[in] height
+ *
+ * @see elm_fileselector_entry_window_size_set
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_window_size_set(width, height) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_SIZE_SET), EO_TYPECHECK(Evas_Coord, width), EO_TYPECHECK(Evas_Coord, height)
+
+/**
+ * @def elm_obj_fileselector_entry_window_size_get
+ * @since 1.8
+ *
+ * Get the size of a given file selector entry widget's window,
+ * holding the file selector itself.
+ *
+ * @param[out] width
+ * @param[out] height
+ *
+ * @see elm_fileselector_entry_window_size_get
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_window_size_get(width, height) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_WINDOW_SIZE_GET), EO_TYPECHECK(Evas_Coord *, width), EO_TYPECHECK(Evas_Coord *, height)
+
+/**
+ * @def elm_obj_fileselector_entry_path_set
+ * @since 1.8
+ *
+ * Set the initial file system path and the entry's path string for
+ * a given file selector entry widget
+ *
+ * @param[in] path
+ *
+ * @see elm_fileselector_entry_path_set
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_path_set(path) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_PATH_SET), EO_TYPECHECK(const char *, path)
+
+/**
+ * @def elm_obj_fileselector_entry_path_get
+ * @since 1.8
+ *
+ * Get the entry's path string for a given file selector entry
+ * widget
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_entry_path_get
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_path_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_PATH_GET), EO_TYPECHECK(const char **, ret)
+
+/**
+ * @def elm_obj_fileselector_entry_expandable_set
+ * @since 1.8
+ *
+ * Enable/disable a tree view in the given file selector entry
+ *
+ * @param[in] value
+ *
+ * @see elm_fileselector_entry_expandable_set
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_expandable_set(value) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_EXPANDABLE_SET), EO_TYPECHECK(Eina_Bool, value)
+
+/**
+ * @def elm_obj_fileselector_entry_expandable_get
+ * @since 1.8
+ *
+ * Get whether tree view is enabled for the given file selector
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_entry_expandable_get
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_expandable_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_EXPANDABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_fileselector_entry_folder_only_set
+ * @since 1.8
+ *
+ * Set whether a given file selector entry widget's internal file
+ * selector is to display folders only or the directory contents,
+ * as well.
+ *
+ * @param[in] value
+ *
+ * @see elm_fileselector_entry_folder_only_set
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_folder_only_set(value) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_FOLDER_ONLY_SET), EO_TYPECHECK(Eina_Bool, value)
+
+/**
+ * @def elm_obj_fileselector_entry_folder_only_get
+ * @since 1.8
+ *
+ * Get whether a given file selector entry widget's internal file
+ * selector is displaying folders only or the directory contents,
+ * as well.
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_entry_folder_only_get
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_folder_only_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_FOLDER_ONLY_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_fileselector_entry_is_save_set
+ * @since 1.8
+ *
+ * Enable/disable the file name entry box where the user can type
+ *
+ * @param[in] value
+ *
+ * @see elm_fileselector_entry_is_save_set
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_is_save_set(value) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_IS_SAVE_SET), EO_TYPECHECK(Eina_Bool, value)
+
+/**
+ * @def elm_obj_fileselector_entry_is_save_get
+ * @since 1.8
+ *
+ * Get whether the given file selector entry widget's internal
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_entry_is_save_get
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_is_save_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_IS_SAVE_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_fileselector_entry_inwin_mode_set
+ * @since 1.8
+ *
+ * Set whether a given file selector entry widget's internal file
+ *
+ * @param[in] value
+ *
+ * @see elm_fileselector_entry_inwin_mode_set
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_inwin_mode_set(value) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_INWIN_MODE_SET), EO_TYPECHECK(Eina_Bool, value)
+
+/**
+ * @def elm_obj_fileselector_entry_inwin_mode_get
+ * @since 1.8
+ *
+ * Get whether a given file selector entry widget's internal file
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_entry_inwin_mode_get
+ *
+ * @ingroup File_Selector_Entry
+ */
+#define elm_obj_fileselector_entry_inwin_mode_get(ret) ELM_OBJ_FILESELECTOR_ENTRY_ID(ELM_OBJ_FILESELECTOR_ENTRY_SUB_ID_INWIN_MODE_GET), EO_TYPECHECK(Eina_Bool *, ret)
diff --git a/legacy/elementary/src/lib/elc_fileselector_entry_legacy.h b/legacy/elementary/src/lib/elc_fileselector_entry_legacy.h
new file mode 100644
index 0000000000..a01855afc9
--- /dev/null
+++ b/legacy/elementary/src/lib/elc_fileselector_entry_legacy.h
@@ -0,0 +1,278 @@
+
+/**
+ * Add a new file selector entry widget to the given parent
+ * Elementary (container) object
+ *
+ * @param parent The parent object
+ * @return a new file selector entry widget handle or @c NULL, on
+ * errors
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI Evas_Object *elm_fileselector_entry_add(Evas_Object *parent);
+
+/**
+ * Set the title for a given file selector entry widget's window
+ *
+ * @param obj The file selector entry widget
+ * @param title The title string
+ *
+ * This will change the window's title, when the file selector pops
+ * out after a click on the entry's button. Those windows have the
+ * default (unlocalized) value of @c "Select a file" as titles.
+ *
+ * @note It will only take any effect if the file selector
+ * entry widget is @b not under "inwin mode".
+ *
+ * @see elm_fileselector_entry_window_title_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_window_title_set(Evas_Object *obj, const char *title);
+
+/**
+ * Get the title set for a given file selector entry widget's
+ * window
+ *
+ * @param obj The file selector entry widget
+ * @return Title of the file selector entry's window
+ *
+ * @see elm_fileselector_entry_window_title_get() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI const char *elm_fileselector_entry_window_title_get(const Evas_Object *obj);
+
+/**
+ * Set the size of a given file selector entry widget's window,
+ * holding the file selector itself.
+ *
+ * @param obj The file selector entry widget
+ * @param width The window's width
+ * @param height The window's height
+ *
+ * @note it will only take any effect if the file selector entry
+ * widget is @b not under "inwin mode". The default size for the
+ * window (when applicable) is 400x400 pixels.
+ *
+ * @see elm_fileselector_entry_window_size_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
+
+/**
+ * Get the size of a given file selector entry widget's window,
+ * holding the file selector itself.
+ *
+ * @param obj The file selector entry widget
+ * @param width Pointer into which to store the width value
+ * @param height Pointer into which to store the height value
+ *
+ * @note Use @c NULL pointers on the size values you're not
+ * interested in: they'll be ignored by the function.
+ *
+ * @see elm_fileselector_entry_window_size_set(), for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
+
+/**
+ * Set the initial file system path and the entry's path string for
+ * a given file selector entry widget
+ *
+ * @param obj The file selector entry widget
+ * @param path The path string
+ *
+ * It must be a directory path, which will have the contents
+ * displayed initially in the file selector's view, when invoked
+ * from @p obj. The default initial path is the @c "HOME"
+ * environment variable's value.
+ *
+ * @see elm_fileselector_entry_path_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_path_set(Evas_Object *obj, const char *path);
+
+/**
+ * Get the entry's path string for a given file selector entry
+ * widget
+ *
+ * @param obj The file selector entry widget
+ * @return path The path string
+ *
+ * @see elm_fileselector_entry_path_set() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI const char *elm_fileselector_entry_path_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable a tree view in the given file selector entry
+ * widget's internal file selector
+ *
+ * @param obj The file selector entry widget
+ * @param value @c EINA_TRUE to enable tree view, @c EINA_FALSE to disable
+ *
+ * This has the same effect as elm_fileselector_expandable_set(),
+ * but now applied to a file selector entry's internal file
+ * selector.
+ *
+ * @note There's no way to put a file selector entry's internal
+ * file selector in "grid mode", as one may do with "pure" file
+ * selectors.
+ *
+ * @see elm_fileselector_expandable_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_expandable_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether tree view is enabled for the given file selector
+ * entry widget's internal file selector
+ *
+ * @param obj The file selector entry widget
+ * @return @c EINA_TRUE if @p obj widget's internal file selector
+ * is in tree view, @c EINA_FALSE otherwise (and or errors)
+ *
+ * @see elm_fileselector_expandable_set() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI Eina_Bool elm_fileselector_entry_expandable_get(const Evas_Object *obj);
+
+/**
+ * Set whether a given file selector entry widget's internal file
+ * selector is to display folders only or the directory contents,
+ * as well.
+ *
+ * @param obj The file selector entry widget
+ * @param value @c EINA_TRUE to make @p obj widget's internal file
+ * selector only display directories, @c EINA_FALSE to make files
+ * to be displayed in it too
+ *
+ * This has the same effect as elm_fileselector_folder_only_set(),
+ * but now applied to a file selector entry's internal file
+ * selector.
+ *
+ * @see elm_fileselector_folder_only_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_folder_only_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether a given file selector entry widget's internal file
+ * selector is displaying folders only or the directory contents,
+ * as well.
+ *
+ * @param obj The file selector entry widget
+ * @return @c EINA_TRUE if @p obj widget's internal file
+ * selector is only displaying directories, @c EINA_FALSE if files
+ * are being displayed in it too (and on errors)
+ *
+ * @see elm_fileselector_entry_folder_only_set() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI Eina_Bool elm_fileselector_entry_folder_only_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable the file name entry box where the user can type
+ * in a name for a file, in a given file selector entry widget's
+ * internal file selector.
+ *
+ * @param obj The file selector entry widget
+ * @param value @c EINA_TRUE to make @p obj widget's internal
+ * file selector a "saving dialog", @c EINA_FALSE otherwise
+ *
+ * This has the same effect as elm_fileselector_is_save_set(),
+ * but now applied to a file selector entry's internal file
+ * selector.
+ *
+ * @see elm_fileselector_is_save_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_is_save_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether the given file selector entry widget's internal
+ * file selector is in "saving dialog" mode
+ *
+ * @param obj The file selector entry widget
+ * @return @c EINA_TRUE, if @p obj widget's internal file selector
+ * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
+ * errors)
+ *
+ * @see elm_fileselector_entry_is_save_set() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI Eina_Bool elm_fileselector_entry_is_save_get(const Evas_Object *obj);
+
+/**
+ * Set whether a given file selector entry widget's internal file
+ * selector will raise an Elementary "inner window", instead of a
+ * dedicated Elementary window. By default, it won't.
+ *
+ * @param obj The file selector entry widget
+ * @param value @c EINA_TRUE to make it use an inner window, @c
+ * EINA_FALSE to make it use a dedicated window
+ *
+ * @see elm_win_inwin_add() for more information on inner windows
+ * @see elm_fileselector_entry_inwin_mode_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether a given file selector entry widget's internal file
+ * selector will raise an Elementary "inner window", instead of a
+ * dedicated Elementary window.
+ *
+ * @param obj The file selector entry widget
+ * @return @c EINA_TRUE if will use an inner window, @c EINA_TRUE
+ * if it will use a dedicated window
+ *
+ * @see elm_fileselector_entry_inwin_mode_set() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI Eina_Bool elm_fileselector_entry_inwin_mode_get(const Evas_Object *obj);
+
+/**
+ * Set the initial file system path for a given file selector entry
+ * widget
+ *
+ * @param obj The file selector entry widget
+ * @param path The path string
+ *
+ * It must be a directory path, which will have the contents
+ * displayed initially in the file selector's view, when invoked
+ * from @p obj. The default initial path is the @c "HOME"
+ * environment variable's value.
+ *
+ * @see elm_fileselector_entry_path_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_selected_set(Evas_Object *obj, const char *path);
+
+/**
+ * Get the parent directory's path to the latest file selection on
+ * a given filer selector entry widget
+ *
+ * @param obj The file selector object
+ * @return The (full) path of the directory of the last selection
+ * on @p obj widget, a @b stringshared string
+ *
+ * @see elm_fileselector_entry_path_set()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI const char *elm_fileselector_entry_selected_get(const Evas_Object *obj);
diff --git a/legacy/elementary/src/lib/elc_fileselector_eo.h b/legacy/elementary/src/lib/elc_fileselector_eo.h
new file mode 100644
index 0000000000..3e9b14d21a
--- /dev/null
+++ b/legacy/elementary/src/lib/elc_fileselector_eo.h
@@ -0,0 +1,203 @@
+#define ELM_OBJ_FILESELECTOR_CLASS elm_obj_fileselector_class_get()
+
+const Eo_Class *elm_obj_fileselector_class_get(void) EINA_CONST;
+
+extern EAPI Eo_Op ELM_OBJ_FILESELECTOR_BASE_ID;
+
+enum
+{
+ ELM_OBJ_FILESELECTOR_SUB_ID_IS_SAVE_SET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_IS_SAVE_GET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_FOLDER_ONLY_SET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_FOLDER_ONLY_GET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_BUTTONS_OK_CANCEL_SET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_BUTTONS_OK_CANCEL_GET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_EXPANDABLE_SET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_EXPANDABLE_GET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_PATH_SET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_PATH_GET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_MODE_SET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_MODE_GET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_SELECTED_GET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_SELECTED_SET,
+ ELM_OBJ_FILESELECTOR_SUB_ID_LAST
+};
+
+#define ELM_OBJ_FILESELECTOR_ID(sub_id) (ELM_OBJ_FILESELECTOR_BASE_ID + sub_id)
+
+
+/**
+ * @def elm_obj_fileselector_is_save_set
+ * @since 1.8
+ *
+ * Enable/disable the file name entry box where the user can type
+ * in a name for a file, in a given file selector widget
+ *
+ * @param[in] is_save
+ *
+ * @see elm_fileselector_is_save_set
+ */
+#define elm_obj_fileselector_is_save_set(is_save) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_IS_SAVE_SET), EO_TYPECHECK(Eina_Bool, is_save)
+
+/**
+ * @def elm_obj_fileselector_is_save_get
+ * @since 1.8
+ *
+ * Get whether the given file selector is in "saving dialog" mode
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_is_save_get
+ */
+#define elm_obj_fileselector_is_save_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_IS_SAVE_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_fileselector_folder_only_set
+ * @since 1.8
+ *
+ * Enable/disable folder-only view for a given file selector widget
+ *
+ * @param[in] only
+ *
+ * @see elm_fileselector_folder_only_set
+ */
+#define elm_obj_fileselector_folder_only_set(only) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_FOLDER_ONLY_SET), EO_TYPECHECK(Eina_Bool, only)
+
+/**
+ * @def elm_obj_fileselector_folder_only_get
+ * @since 1.8
+ *
+ * Get whether folder-only view is set for a given file selector
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_folder_only_get
+ */
+#define elm_obj_fileselector_folder_only_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_FOLDER_ONLY_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_fileselector_buttons_ok_cancel_set
+ * @since 1.8
+ *
+ * Enable/disable the "ok" and "cancel" buttons on a given file
+ *
+ * @param[in] visible
+ *
+ * @see elm_fileselector_buttons_ok_cancel_set
+ */
+#define elm_obj_fileselector_buttons_ok_cancel_set(visible) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_BUTTONS_OK_CANCEL_SET), EO_TYPECHECK(Eina_Bool, visible)
+
+/**
+ * @def elm_obj_fileselector_buttons_ok_cancel_get
+ * @since 1.8
+ *
+ * Get whether the "ok" and "cancel" buttons on a given file
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_buttons_ok_cancel_get
+ */
+#define elm_obj_fileselector_buttons_ok_cancel_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_BUTTONS_OK_CANCEL_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_fileselector_expandable_set
+ * @since 1.8
+ *
+ * Enable/disable a tree view in the given file selector widget,
+ * if it's in @c #ELM_FILESELECTOR_LIST mode
+ *
+ * @param[in] expand
+ *
+ * @see elm_fileselector_expandable_set
+ */
+#define elm_obj_fileselector_expandable_set(expand) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_EXPANDABLE_SET), EO_TYPECHECK(Eina_Bool, expand)
+
+/**
+ * @def elm_obj_fileselector_expandable_get
+ * @since 1.8
+ *
+ * Get whether tree view is enabled for the given file selector
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_expandable_get
+ */
+#define elm_obj_fileselector_expandable_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_EXPANDABLE_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_fileselector_path_set
+ * @since 1.8
+ *
+ * Set, programmatically, the directory that a given file
+ * selector widget will display contents from
+ *
+ * @param[in] _path
+ *
+ * @see elm_fileselector_path_set
+ */
+#define elm_obj_fileselector_path_set(_path) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_PATH_SET), EO_TYPECHECK(const char *, _path)
+
+/**
+ * @def elm_obj_fileselector_path_get
+ * @since 1.8
+ *
+ * Get the parent directory's path that a given file selector
+ * selector widget will display contents from
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_path_get
+ */
+#define elm_obj_fileselector_path_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_PATH_GET), EO_TYPECHECK(const char **, ret)
+
+/**
+ * @def elm_obj_fileselector_mode_set
+ * @since 1.8
+ *
+ * Set the mode in which a given file selector widget will display
+ * (layout) file system entries in its view
+ *
+ * @param[in] mode
+ *
+ * @see elm_fileselector_mode_set
+ */
+#define elm_obj_fileselector_mode_set(mode) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_MODE_SET), EO_TYPECHECK(Elm_Fileselector_Mode, mode)
+
+/**
+ * @def elm_obj_fileselector_mode_get
+ * @since 1.8
+ *
+ * Get the mode in which a given file selector widget is displaying
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_mode_get
+ */
+#define elm_obj_fileselector_mode_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_MODE_GET), EO_TYPECHECK(Elm_Fileselector_Mode *, ret)
+
+/**
+ * @def elm_obj_fileselector_selected_get
+ * @since 1.8
+ *
+ * Get the currently selected item's (full) path, in the given file
+ * the given file selector widget
+ *
+ * @param[out] ret
+ *
+ * @see elm_fileselector_selected_get
+ */
+#define elm_obj_fileselector_selected_get(ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_SELECTED_GET), EO_TYPECHECK(const char **, ret)
+
+/**
+ * @def elm_obj_fileselector_selected_set
+ * @since 1.8
+ *
+ * Set, programmatically, the currently selected file/directory in
+ * the given file selector widget
+ *
+ * @param[in] _path
+ * @param[out] ret
+ *
+ * @see elm_fileselector_selected_set
+ */
+#define elm_obj_fileselector_selected_set(_path, ret) ELM_OBJ_FILESELECTOR_ID(ELM_OBJ_FILESELECTOR_SUB_ID_SELECTED_SET), EO_TYPECHECK(const char *, _path), EO_TYPECHECK(Eina_Bool *, ret)
diff --git a/legacy/elementary/src/lib/elc_fileselector_legacy.h b/legacy/elementary/src/lib/elc_fileselector_legacy.h
new file mode 100644
index 0000000000..505b787988
--- /dev/null
+++ b/legacy/elementary/src/lib/elc_fileselector_legacy.h
@@ -0,0 +1,244 @@
+/**
+ * Add a new file selector widget to the given parent Elementary
+ * (container) object
+ *
+ * @param parent The parent object
+ * @return a new file selector widget handle or @c NULL, on errors
+ *
+ * This function inserts a new file selector widget on the canvas.
+ *
+ * @ingroup Fileselector
+ */
+EAPI Evas_Object *elm_fileselector_add(Evas_Object *parent);
+
+/**
+ * Enable/disable the file name entry box where the user can type
+ * in a name for a file, in a given file selector widget
+ *
+ * @param obj The file selector object
+ * @param is_save @c EINA_TRUE to make the file selector a "saving
+ * dialog", @c EINA_FALSE otherwise
+ *
+ * Having the entry editable is useful on file saving dialogs on
+ * applications, where one gives a file name to save contents to,
+ * in a given directory in the system. This custom file name will
+ * be reported on the @c "done" smart callback.
+ *
+ * @see elm_fileselector_is_save_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_is_save_set(Evas_Object *obj, Eina_Bool is_save);
+
+/**
+ * Get whether the given file selector is in "saving dialog" mode
+ *
+ * @param obj The file selector object
+ * @return @c EINA_TRUE, if the file selector is in "saving dialog"
+ * mode, @c EINA_FALSE otherwise (and on errors)
+ *
+ * @see elm_fileselector_is_save_set() for more details
+ *
+ * @ingroup Fileselector
+ */
+EAPI Eina_Bool elm_fileselector_is_save_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable folder-only view for a given file selector widget
+ *
+ * @param obj The file selector object
+ * @param only @c EINA_TRUE to make @p obj only display
+ * directories, @c EINA_FALSE to make files to be displayed in it
+ * too
+ *
+ * If enabled, the widget's view will only display folder items,
+ * naturally.
+ *
+ * @see elm_fileselector_folder_only_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_folder_only_set(Evas_Object *obj, Eina_Bool only);
+
+/**
+ * Get whether folder-only view is set for a given file selector
+ * widget
+ *
+ * @param obj The file selector object
+ * @return only @c EINA_TRUE if @p obj is only displaying
+ * directories, @c EINA_FALSE if files are being displayed in it
+ * too (and on errors)
+ *
+ * @see elm_fileselector_folder_only_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI Eina_Bool elm_fileselector_folder_only_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable the "ok" and "cancel" buttons on a given file
+ * selector widget
+ *
+ * @param obj The file selector object
+ * @param buttons @c EINA_TRUE to show buttons, @c EINA_FALSE to hide.
+ *
+ * @note A file selector without those buttons will never emit the
+ * @c "done" smart event, and is only usable if one is just hooking
+ * to the other two events.
+ *
+ * @see elm_fileselector_buttons_ok_cancel_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_buttons_ok_cancel_set(Evas_Object *obj, Eina_Bool buttons);
+
+/**
+ * Get whether the "ok" and "cancel" buttons on a given file
+ * selector widget are being shown.
+ *
+ * @param obj The file selector object
+ * @return @c EINA_TRUE if they are being shown, @c EINA_FALSE
+ * otherwise (and on errors)
+ *
+ * @see elm_fileselector_buttons_ok_cancel_set() for more details
+ *
+ * @ingroup Fileselector
+ */
+EAPI Eina_Bool elm_fileselector_buttons_ok_cancel_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable a tree view in the given file selector widget,
+ * if it's in @c #ELM_FILESELECTOR_LIST mode
+ *
+ * @param obj The file selector object
+ * @param expand @c EINA_TRUE to enable tree view, @c EINA_FALSE to
+ * disable
+ *
+ * In a tree view, arrows are created on the sides of directories,
+ * allowing them to expand in place.
+ *
+ * @note If it's in other mode, the changes made by this function
+ * will only be visible when one switches back to "list" mode.
+ *
+ * @see elm_fileselector_expandable_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_expandable_set(Evas_Object *obj, Eina_Bool expand);
+
+/**
+ * Get whether tree view is enabled for the given file selector
+ * widget
+ *
+ * @param obj The file selector object
+ * @return @c EINA_TRUE if @p obj is in tree view, @c EINA_FALSE
+ * otherwise (and or errors)
+ *
+ * @see elm_fileselector_expandable_set() for more details
+ *
+ * @ingroup Fileselector
+ */
+EAPI Eina_Bool elm_fileselector_expandable_get(const Evas_Object *obj);
+
+/**
+ * Set, programmatically, the @b directory that a given file
+ * selector widget will display contents from
+ *
+ * @param obj The file selector object
+ * @param path The path to display in @p obj
+ *
+ * This will change the @b directory that @p obj is displaying. It
+ * will also clear the text entry area on the @p obj object, which
+ * displays select files' names.
+ *
+ * @see elm_fileselector_path_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_path_set(Evas_Object *obj, const char *path);
+
+/**
+ * Get the parent directory's path that a given file selector
+ * widget is displaying
+ *
+ * @param obj The file selector object
+ * @return The (full) path of the directory the file selector is
+ * displaying, a @b stringshared string
+ *
+ * @see elm_fileselector_path_set()
+ *
+ * @ingroup Fileselector
+ */
+EAPI const char *elm_fileselector_path_get(const Evas_Object *obj);
+
+/**
+ * Set the mode in which a given file selector widget will display
+ * (layout) file system entries in its view
+ *
+ * @param obj The file selector object
+ * @param mode The mode of the fileselector, being it one of #ELM_FILESELECTOR_LIST
+ * (default) or #ELM_FILESELECTOR_GRID. The first one, naturally, will display
+ * the files in a list. The latter will make the widget to display its entries
+ * in a grid form.
+ *
+ * @note By using elm_fileselector_expandable_set(), the user may
+ * trigger a tree view for that list.
+ *
+ * @note If Elementary is built with support of the Ethumb
+ * thumbnailing library, the second form of view will display
+ * preview thumbnails of files which it supports. You must have
+ * elm_need_ethumb() called in your Elementary for thumbnailing to
+ * work, though.
+ *
+ * @see elm_fileselector_expandable_set().
+ * @see elm_fileselector_mode_get().
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_mode_set(Evas_Object *obj, Elm_Fileselector_Mode mode);
+
+/**
+ * Get the mode in which a given file selector widget is displaying
+ * (layouting) file system entries in its view
+ *
+ * @param obj The fileselector object
+ * @return The mode in which the fileselector is at
+ *
+ * @see elm_fileselector_mode_set() for more details
+ *
+ * @ingroup Fileselector
+ */
+EAPI Elm_Fileselector_Mode elm_fileselector_mode_get(const Evas_Object *obj);
+
+/**
+ * Set, programmatically, the currently selected file/directory in
+ * the given file selector widget
+ *
+ * @param obj The file selector object
+ * @param path The (full) path to a file or directory
+ * @return @c EINA_TRUE on success, @c EINA_FALSE on failure. The
+ * latter case occurs if the directory or file pointed to do not
+ * exist.
+ *
+ * @see elm_fileselector_selected_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI Eina_Bool elm_fileselector_selected_set(Evas_Object *obj, const char *path);
+
+/**
+ * Get the currently selected item's (full) path, in the given file
+ * selector widget
+ *
+ * @param obj The file selector object
+ * @return The absolute path of the selected item, a @b
+ * stringshared string
+ *
+ * @note Custom editions on @p obj object's text entry, if made,
+ * will appear on the return string of this function, naturally.
+ *
+ * @see elm_fileselector_selected_set() for more details
+ *
+ * @ingroup Fileselector
+ */
+EAPI const char *elm_fileselector_selected_get(const Evas_Object *obj);